Модель авторизации на основе ролей/политик, предоставляемая Identity and Access Management (IAM), позволяет контролировать доступ к ресурсам DLI. С IAM вы можете:
Если вашему аккаунту не нужны отдельные IAM users, вы можете пропустить этот раздел.
Process Flow показывает процесс авторизации на основе ролей/политик.
Прежде чем предоставлять разрешения группе пользователей, ознакомьтесь с разрешениями DLI, которые могут быть добавлены в группу пользователей, и выбирайте их по мере необходимости.
Для получения подробной информации о системных разрешениях других сервисов см. Permissions.
Figure 1 Процесс предоставления разрешений DLI

№. | Шаг | Описание |
|---|---|---|
1 | Создайте группу пользователей и предоставьте ей разрешения. | Создайте группу пользователей в консоли IAM и предоставьте ей разрешение DLI ReadOnlyAccess. |
2 | Создайте пользователя и добавьте его в группу пользователей. | Создайте пользователя в консоли IAM и добавьте его в созданную группу пользователей. |
3 | Войдите как пользователь IAM и проверьте разрешения. | Войдите в консоль, используя только что созданного пользователя, переключитесь на авторизованный регион и проверьте разрешения.
|
4 | Создайте пользовательскую политику и привяжите её к группе пользователей. | Если предопределённые разрешения DLI в системе не удовлетворяют вашим требованиям к авторизации, вы можете создать пользовательские политики. Подробную информацию о том, как создать пользовательскую политику, см. Creating a Custom Policy. |
Если предопределённые разрешения DLI в системе не удовлетворяют вашим требованиям к авторизации, вы можете создать пользовательские политики. Для действий, которые можно добавить в пользовательские политики, обратитесь к разделу «Permission Policies and Supported Actions» в Data Lake Insight API Reference.
Вы можете создавать пользовательские политики одним из следующих двух способов:
В следующем примере пользователю IAM предоставлено разрешение создавать таблицы во всех базах данных во всех регионах.
{"Version": "1.1","Statement": [{"Effect": "Allow","Action": ["dli:database:createTable"],"Resource": ["dli:*:*:database:*"]}]}
Version: 1.1. Policy: Тонко настроенная стратегия авторизации, определяющая разрешения, необходимые для выполнения действий над конкретным облачным ресурсом при определённых условиях.
Функция. Значение может быть Allow и Deny. Если в заявлениях присутствуют как Allow, так и Deny, то Deny переопределяет Allow.
Конкретное действие над ресурсом. Допускается не более 100 действий.
Определяет, когда политика вступает в силу. Условие состоит из ключа условия и оператора условия.
Ключ в элементе Condition оператора. Существуют глобальные и специфичные для сервиса ключи условий.
Оператор должен использоваться вместе с ключом условия для формирования полного условного выражения. Для получения подробностей см. Table 2.
IAM предоставляет набор предопределённых ключей условий DLI. В следующей таблице перечислены предопределённые ключи условий DLI.
Ключ условия | Тип | Оператор | Описание |
|---|---|---|---|
g:CurrentTime | Глобальный | Дата и время | Время получения запроса аутентификации ПРИМЕЧАНИЕ: Время выражается в формате, определённом ISO 8601, например, 2012-11-11T23:59:59Z. |
g:MFAPresent | Global | Boolean | Используется ли многофакторная аутентификация при входе пользователя |
g:UserId | Global | String | ID текущего пользователя, вошедшего в систему |
g:UserName | Global | String | Имя пользователя текущего входа |
g:ProjectName | Глобальный | Строка | Проект, в который вы вошли |
g:DomainName | Глобальный | Строка | Домен, в который вы вошли |
Формат Service name:Region:Domain ID:Resource type:Resource path. Символ подстановки (*) указывает все варианты. Для получения подробной информации о типах ресурсов и пути см. Table 5.
Пример:
dli:*:*:queue:* указывает все очереди.
Вы можете задавать действия и ресурсы на разных уровнях в зависимости от сценариев.
Формат Service name:Resource type:Action. Вы можете использовать символы подстановки *. Пример:
Action | Description |
|---|---|
dli:queue:submit_job | Операции отправки в очередь DLI |
dli:queue:* | Все операции в очереди DLI |
dli:*:* | Все операции со всеми типами ресурсов DLI |
Формат Service name:Region:Domain ID:Resource type:Resource path. Символ подстановки (*) указывает все ресурсы. Вы можете гибко задавать эти пять полей. Поле Resource path может быть задано с различными уровнями контроля доступа в зависимости от конкретного сценария. Если необходимо задать разрешения для всех ресурсов данного сервиса, это поле можно оставить неуказанным.
Подробности о том, как определить ресурс, см. Table 4.
Подробности о типах ресурсов и путях ресурсов см. Table 5.
Resource | Описание |
|---|---|
DLI:*:*:table:databases.dbname.tables.* | DLI, любой регион, любой идентификатор учётной записи, все ресурсы таблиц базы данных dbname |
DLI:*:*:database:databases.dbname | DLI, любой регион, любой идентификатор учётной записи, ресурс базы данных dbname |
DLI:*:*:queue:queues.* | DLI, любой регион, любой идентификатор учётной записи, любой ресурс очереди |
DLI:*:*:jobs:jobs.flink.1 | DLI, любой регион, любой идентификатор учётной записи, Flink job, у которой ID равен 1 |
Тип | Ресурс | Путь |
|---|---|---|
elasticresourcepool | DLI elastic resource pool | elasticresourcepools.name |
очередь | DLI очередь | queues.queuename |
база данных | DLI база данных | databases.dbname |
таблица | DLI таблица | databases.dbname.tables.tbname |
столбец | DLI столбец | databases.dbname.tables.tbname.columns.colname |
джобы | DLI Flink Джоба | jobs.flink.jobid |
resource | DLI package | resources.resourcename |
group | DLI package group | groups.groupname |
datasourceauth | DLI datasource authentication information | datasourceauth.name |
edsconnections | Enhanced datasource connection | edsconnections.Connection ID |
variable | DLI global variable | variables.name |
sqldefendrule | правило проверки SQL | sqldefendes.* |
каталог | DLI data catalog | catalogs.name |
Создайте политику, которая предоставляет пользователям разрешение создавать и удалять базы данных, отправлять задания в любую очередь и удалять таблицы в любой учетной записи в любом регионе DLI.
{"Version": "1.1","Statement": [{"Effect": " Allow","Action": ["dli:database:createDatabase","dli:database:dropDatabase","dli:queue:submitJob","dli:table:dropTable"],"Resource": ["dli:*:*:database:*","dli:*:*:queue:*","dli:*:*:table:*"]}]}
{"Version": "1.1","Statement": [{"Effect": "Allow","Action": ["dli:database:createTable"],"Resource": ["dli:*:*:database:*"]}]}
{"Version": "1.1","Statement": [{"Effect": "Allow","Action": ["dli:column:select"],"Resource": ["dli:*:*:column:databases.db.tables.tb.columns.col"]}]}
Политику запрета необходимо использовать совместно с другими политиками. Пользователям сначала необходимо предоставить некоторые политики разрешений операций, прежде чем можно будет установить политику запрета в рамках этих разрешений. В противном случае, если у пользователя вообще нет разрешений, политика запрета не будет иметь практического эффекта.
В политиках, предоставленных пользователю, если действие имеет как Allow, так и Deny, то Deny имеет приоритет.
{"Version": "1.1","Statement": [{"Effect": "Deny","Action": ["dli:database:createDatabase","dli:database:dropDatabase","dli:queue:submitJob","dli:table:dropTable"],"Resource": ["dli:*:*:database:*","dli:*:*:queue:*","dli:*:*:table:*"]}]}
{"Version": "1.1","Statement": [{"Effect": "Deny","Action": ["dli:queue:submitJob"],"Resource": ["dli:*:*:queue:queues.demo"]}]}
Ресурсы — это объекты, существующие внутри сервиса. В DLI ресурсы включают следующее, и вы можете выбирать конкретные ресурсы при создании пользовательских политик, указывая путь к ресурсу.
Тип | Ресурс | Путь |
|---|---|---|
elasticresourcepool | DLI elastic resource pool | elasticresourcepools.name |
queue | DLI queue | queues.queuename |
база данных | DLI база данных | databases.dbname |
таблица | DLI таблица | databases.dbname.tables.tbname |
столбец | DLI столбец | databases.dbname.tables.tbname.columns.colname |
джобы | DLI Flink джоба | jobs.flink.jobid |
ресурс | DLI пакет | resources.resourcename |
group | DLI package group | groups.groupname |
datasourceauth | DLI datasource authentication information | datasourceauth.name |
edsconnections | Enhanced datasource connection | edsconnections.Connection ID |
variable | DLI global variable | variables.name |
sqldefendrule | SQL inspection rule | sqldefendes.* |
каталог | DLI data catalog | catalogs.name |
Условия запросов полезны для определения, когда действует пользовательская политика. Условие запроса состоит из ключей условий и операторов. Ключи условий могут быть глобальными или уровня сервиса и используются в элементе Condition заявления политики. Глобальные ключи условий (начинаются с g:) доступны для операций всех сервисов, тогда как ключи условий уровня сервиса (начинаются с имени сервиса, например dli) доступны только для операций конкретного сервиса. Оператор должен использоваться вместе с ключом условия для формирования полного условия.
IAM предоставляет набор предопределённых ключей условий DLI. В следующей таблице перечислены предопределённые ключи условий DLI.
Condition Key | Type | Operator | Description |
|---|---|---|---|
g:CurrentTime | Global | Дата и время | Время получения запроса аутентификации ПРИМЕЧАНИЕ: Время указывается в формате, определённом ISO 8601, например, 2012-11-11T23:59:59Z. |
g:MFAPresent | Глобальный | Boolean | Используется ли многофакторная аутентификация при входе пользователя |
g:UserId | Глобальный | String | ID текущего пользователя, вошедшего в систему |
g:UserName | Глобальный | String | Имя пользователя текущего входа |
g:ProjectName | Global | String | Проект, в который вы вошли |
g:DomainName | Global | String | Домен, в который вы вошли |