Облачная платформаAdvanced

Использование ролей IAM или политик для предоставления доступа к DLI

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Модель авторизации на основе ролей/политик, предоставляемая Identity and Access Management (IAM), позволяет контролировать доступ к ресурсам DLI. С IAM вы можете:

  • Исходя из организационной структуры вашего предприятия, создайте IAM users в вашем master account для сотрудников из разных отделов компании. Это гарантирует, что каждый сотрудник имеет уникальные учетные данные безопасности и может использовать ресурсы DLI.
  • Предоставьте пользователям минимальные разрешения, необходимые для выполнения конкретных задач в соответствии с их должностными обязанностями.
  • Доверьте аккаунт или облачную службу выполнять профессиональное, эффективное O&M ваших ресурсов DLI.

Если вашему аккаунту не нужны отдельные IAM users, вы можете пропустить этот раздел.

Process Flow показывает процесс авторизации на основе ролей/политик.

Требования

Прежде чем предоставлять разрешения группе пользователей, ознакомьтесь с разрешениями DLI, которые могут быть добавлены в группу пользователей, и выбирайте их по мере необходимости.

Для получения подробной информации о системных разрешениях других сервисов см. Permissions.

Схема процесса

Figure 1 Процесс предоставления разрешений DLI


Table 1 Процедура

№.

Шаг

Описание

1

Создайте группу пользователей и предоставьте ей разрешения.

Создайте группу пользователей в консоли IAM и предоставьте ей разрешение DLI ReadOnlyAccess.

2

Создайте пользователя и добавьте его в группу пользователей.

Создайте пользователя в консоли IAM и добавьте его в созданную группу пользователей.

3

Войдите как пользователь IAM и проверьте разрешения.

Войдите в консоль, используя только что созданного пользователя, переключитесь на авторизованный регион и проверьте разрешения.

  • Выберите Service List > Data Lake Insight. Если вы можете просмотреть список эластичных пулов ресурсов на странице Resources > Resource Pool, но не можете приобрести эластичный пул ресурсов, нажав Buy Resource Pool в правом верхнем углу (при условии, что текущие разрешения включают только DLI ReadOnlyAccess), то разрешение DLI ReadOnlyAccess уже вступило в силу.
  • Выберите любой другой сервис в Service List. Если появится сообщение, указывающее, что у вас недостаточно разрешений для доступа к сервису, то разрешение DLI ReadOnlyAccess уже вступило в силу.

4

Создайте пользовательскую политику и привяжите её к группе пользователей.

Если предопределённые разрешения DLI в системе не удовлетворяют вашим требованиям к авторизации, вы можете создать пользовательские политики.

Подробную информацию о том, как создать пользовательскую политику, см. Creating a Custom Policy.

Создание пользовательской политики DLI

Если предопределённые разрешения DLI в системе не удовлетворяют вашим требованиям к авторизации, вы можете создать пользовательские политики. Для действий, которые можно добавить в пользовательские политики, обратитесь к разделу «Permission Policies and Supported Actions» в Data Lake Insight API Reference.

Вы можете создавать пользовательские политики одним из следующих двух способов:

  • Visual editor: Выберите облачные сервисы, действия, ресурсы и условия запроса. Это не требует знания синтаксиса политики.
  • JSON: Создайте политику JSON или отредактируйте существующую.

Поля политики

В следующем примере пользователю IAM предоставлено разрешение создавать таблицы во всех базах данных во всех регионах.

{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dli:database:createTable"
],
"Resource": [
"dli:*:*:database:*"
]
}
]
}
  • Версия

    Version: 1.1. Policy: Тонко настроенная стратегия авторизации, определяющая разрешения, необходимые для выполнения действий над конкретным облачным ресурсом при определённых условиях.

  • Effect

    Функция. Значение может быть Allow и Deny. Если в заявлениях присутствуют как Allow, так и Deny, то Deny переопределяет Allow.

  • Action

    Конкретное действие над ресурсом. Допускается не более 100 действий.

    Note
    • Формат Service name:Resource type:Action, например, dli:queue:submit_job.
    • Service name: имя продукта, например dli, evs или vpc. Разрешены только строчные буквы. Типы ресурсов и действия не чувствительны к регистру. Вы можете использовать символ * для представления всех действий.
    • Resource type: Подробности см. в Table 5.
    • Action: действие, зарегистрированное в IAM.
  • Condition

    Определяет, когда политика вступает в силу. Условие состоит из ключа условия и оператора условия.

    Ключ в элементе Condition оператора. Существуют глобальные и специфичные для сервиса ключи условий.

    • Ключ условия глобального уровня: префикс g:, который применяется ко всем действиям. Для получения подробностей см. описание ключа условия в Policy Syntax.
    • Ключ условия уровня сервиса: применяется только к действиям конкретного сервиса.

    Оператор должен использоваться вместе с ключом условия для формирования полного условного выражения. Для получения подробностей см. Table 2.

    IAM предоставляет набор предопределённых ключей условий DLI. В следующей таблице перечислены предопределённые ключи условий DLI.

    Table 2 условия запросов 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:* указывает все очереди.

Создание пользовательской политики

Вы можете задавать действия и ресурсы на разных уровнях в зависимости от сценариев.

  1. Определите действие.

    Формат Service name:Resource type:Action. Вы можете использовать символы подстановки *. Пример:

    Table 3 Action

    Action

    Description

    dli:queue:submit_job

    Операции отправки в очередь DLI

    dli:queue:*

    Все операции в очереди DLI

    dli:*:*

    Все операции со всеми типами ресурсов DLI

  2. Определить ресурс.

    Формат Service name:Region:Domain ID:Resource type:Resource path. Символ подстановки (*) указывает все ресурсы. Вы можете гибко задавать эти пять полей. Поле Resource path может быть задано с различными уровнями контроля доступа в зависимости от конкретного сценария. Если необходимо задать разрешения для всех ресурсов данного сервиса, это поле можно оставить неуказанным.

    Подробности о том, как определить ресурс, см. Table 4.

    Подробности о типах ресурсов и путях ресурсов см. Table 5.

    Table 4 Resource

    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

    Table 5 ресурсы DLI и их пути

    Тип

    Ресурс

    Путь

    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

  3. Объедините все перечисленные выше поля в строку JSON, чтобы создать полную политику. Вы можете задать несколько действий и ресурсов, а также у вас есть возможность создавать политики через консоль IAM. Например:

    Создайте политику, которая предоставляет пользователям разрешение создавать и удалять базы данных, отправлять задания в любую очередь и удалять таблицы в любой учетной записи в любом регионе 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:*"
    ]
    }
    ]
    }

Примеры пользовательских политик

  • Пример 1: Политики разрешения
    • Разрешите пользователям создавать таблицы во всех базах данных во всех регионах.
      {
      "Version": "1.1",
      "Statement": [
      {
      "Effect": "Allow",
      "Action": [
      "dli:database:createTable"
      ],
      "Resource": [
      "dli:*:*:database:*"
      ]
      }
      ]
      }
    • Разрешите пользователям выполнять запрос к столбцу col в таблице tb базы данных db.
      {
      "Version": "1.1",
      "Statement": [
      {
      "Effect": "Allow",
      "Action": [
      "dli:column:select"
      ],
      "Resource": [
      "dli:*:*:column:databases.db.tables.tb.columns.col"
      ]
      }
      ]
      }
  • Пример 2: Политики запрета

    Политику запрета необходимо использовать совместно с другими политиками. Пользователям сначала необходимо предоставить некоторые политики разрешений операций, прежде чем можно будет установить политику запрета в рамках этих разрешений. В противном случае, если у пользователя вообще нет разрешений, политика запрета не будет иметь практического эффекта.

    В политиках, предоставленных пользователю, если действие имеет как Allow, так и Deny, то Deny имеет приоритет.

    • Запретить пользователям создавать или удалять базы данных, отправлять задания (за исключением очереди default), или удалять таблицы.
      {
      "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:*"
      ]
      }
      ]
      }
    • Deny users to submit jobs on the demo queue.
      {
      "Version": "1.1",
      "Statement": [
      {
      "Effect": "Deny",
      "Action": [
      "dli:queue:submitJob"
      ],
      "Resource": [
      "dli:*:*:queue:queues.demo"
      ]
      }
      ]
      }

Ресурсы DLI

Ресурсы — это объекты, существующие внутри сервиса. В DLI ресурсы включают следующее, и вы можете выбирать конкретные ресурсы при создании пользовательских политик, указывая путь к ресурсу.

Table 6 Ресурсы 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

DLI Request Condition

Условия запросов полезны для определения, когда действует пользовательская политика. Условие запроса состоит из ключей условий и операторов. Ключи условий могут быть глобальными или уровня сервиса и используются в элементе Condition заявления политики. Глобальные ключи условий (начинаются с g:) доступны для операций всех сервисов, тогда как ключи условий уровня сервиса (начинаются с имени сервиса, например dli) доступны только для операций конкретного сервиса. Оператор должен использоваться вместе с ключом условия для формирования полного условия.

IAM предоставляет набор предопределённых ключей условий DLI. В следующей таблице перечислены предопределённые ключи условий DLI.

Table 7 DLI request conditions

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

Домен, в который вы вошли