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

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

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

Вы можете создавать пользовательские политики, чтобы дополнять системно-определенные политики и реализовывать более тонкий контроль доступа.

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

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

В этом разделе описывается, как создавать пользовательские политики на странице Permissions > Policies/Roles. Вы также можете создавать пользовательские политики во время авторизации (см. Figure 1).

Figure 1 Creating a policy during authorization


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

  1. Войдите в консоль IAM.
  2. В консоли IAM выберите Permissions > Policies/Roles в панели навигации и нажмите Create Custom Policy в правом верхнем углу.

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


  3. Введите имя политики.

    Figure 3 Ввод имени политики


  4. Выберите область действия в зависимости от типа сервисов, связанных с этой политикой. Для получения дополнительной информации о типах сервисов см. "Permissions".

    • Global services: Выберите эту опцию, если сервисы, к которым относится политика, должны быть развернуты в глобальном регионе. При создании пользовательских политик для глобально развернутых сервисов укажите область действия как Global services. Пользовательские политики этой области должны быть привязаны к группам пользователей для глобальных сервисов.
    • Project-level services: Выберите эту опцию, если сервисы, к которым относится политика, должны быть развернуты в определённых регионах. При создании пользовательских политик для сервисов, развернутых по регионам, укажите область как Project-level services. Пользовательские политики этой области должны быть привязаны к группам пользователей для конкретных проектов, за исключением глобальных сервисов.

    Например, при создании пользовательской политики, содержащей действие evs:volumes:create для EVS, укажите область как Project-level services.

    Note

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

  5. Выберите Visual editor для Policy View.
  6. Установите содержимое политики.

    1. Выберите Allow или Deny.
    2. Выберите облачный сервис.
      Note
      • Для каждого блока разрешений можно выбрать только один облачный сервис. Чтобы настроить разрешения для нескольких облачных сервисов, нажмите Add Permissions или переключитесь в режим JSON (см. Creating a Custom Policy in JSON View).
      • Пользовательская политика может содержать разрешения либо для глобальных, либо для сервисов уровня проекта. Чтобы определить разрешения, необходимые для доступа как к глобальным, так и к сервисам уровня проекта, разместите разрешения в двух отдельных пользовательских политиках для более точного контроля доступа.
    3. Выберите действия.
    4. (Опционально) Выберите все ресурсы или выберите конкретные ресурсы, указав их пути.

      Table 1 Тип ресурса

      Параметр

      Описание

      Конкретный

      Разрешения для конкретных ресурсов. Например, чтобы задать разрешения для бакетов, имена которых начинаются с TestBucket, укажите путь к ресурсу бакета как OBS:*:*:bucket:TestBucket*.

      ПРИМЕЧАНИЕ:
      • Указание ресурсов бакетов

      Формат: "OBS:*:*:bucket:Bucket name".

      Для ресурсов бакетов IAM автоматически генерирует префикс пути к ресурсу: obs:*:*:bucket:. Чтобы указать путь к конкретному бакету, добавьте в конец bucket name. Также можно использовать символ подстановки (*) для обозначения любого бакета. Например, obs:*:*:bucket:* указывает любой OBS‑бакет.

      • Указание ресурсов объектов

      Формат: "OBS:*:*:object:Bucket name/object name".

      Для ресурсов объектов IAM автоматически генерирует префикс пути к ресурсу: obs:*:*:object:. Чтобы указать путь к конкретному объекту, добавьте в конец пути ресурса bucket name/object name. Также можно использовать символ подстановки (*) для обозначения любого объекта в бакете. Например, obs:*:*:object:my-bucket/my-object/* указывает любой объект в каталоге my-object бакета my-bucket.

      Все

      Разрешения для всех ресурсов.

    5. (Необязательно) Добавьте условия запроса, указав ключи условий, операторы и значения.
      Table 2 Параметры условий

      Имя

      Описание

      Ключ условия

      Ключ в элементе Condition заявления. Существуют глобальные и специфичные для сервиса ключи условий. Global condition keys (начинающиеся с g:) доступны для операций всех сервисов, тогда как специфичные для сервиса ключи условий (начинающиеся с аббревиатуры сервиса, например obs:) доступны только для операций соответствующего сервиса. Для получения подробной информации см. руководство пользователя соответствующего облачного сервиса. Ключи условий нечувствительны к регистру.

      Operator

      Используется вместе с ключом условия и значением условия для формирования полного условия заявления.

      Value

      Используется вместе с ключом условия и оператором, требующим ключевого слова, для формирования полного условия заявления.

      Figure 4 Добавление условия запроса


      Table 3 Global condition keys

      Global Condition Key

      Type

      Description

      g:CurrentTime

      Time

      Время получения запроса аутентификации. Время указано в формате ISO 8601, например, 2012-11-11T23:59:59Z.

      g:DomainName

      String

      Имя учетной записи.

      g:MFAPresent

      Boolean

      Нужно ли получать токен через MFA authentication.

      g:MFAAge

      Number

      Срок действия токена, полученного через MFA authentication. Это условие должно использоваться вместе с g:MFAPresent.

      g:ProjectName

      String

      Имя проекта.

      g:UserId

      String

      IAM ID пользователя.

      g:UserName

      String

      Имя пользователя IAM.

  7. (Optional) Перейдите в представление JSON и измените содержимое политики в формате JSON.

    Note

    Если изменённое содержимое политики некорректно, проверьте и измените содержимое ещё раз, или нажмите Reset, чтобы отменить изменения.

  8. (Optional) Чтобы добавить ещё один блок разрешений для политики, нажмите Add Permissions. В качестве альтернативы нажмите значок плюс (+) справа от существующего блока разрешений, чтобы клонировать его разрешения.
  9. (Optional) Введите краткое описание политики.
  10. Нажмите OK.
  11. Присоедините политику к группе пользователей. Пользователи в группе затем наследуют разрешения, определённые в этой политике.

    Note

    Вы можете присоединять пользовательские политики к группе пользователей так же, как присоединяете системно-определённые политики. Подробности см. в Creating a User Group and Assigning Permissions.

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

  1. Войдите в консоль IAM.
  2. В консоли IAM выберите Permissions > Policies/Roles в панели навигации и нажмите Create Custom Policy в правом верхнем углу.

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


  3. Введите имя политики.

    Figure 6 Ввод имени политики


  4. Выберите область действия в зависимости от типа сервисов, связанных с этой политикой. Для получения дополнительной информации о типах сервисов см. «Permissions».

    • Global services: Выберите эту опцию, если сервисы, к которым относится политика, должны быть развернуты в глобальном регионе. При создании пользовательских политик для глобально развернутых сервисов укажите область как Global services. Пользовательские политики этой области должны быть привязаны к группам пользователей для глобальных сервисов.
    • Project-level services: Выберите эту опцию, если сервисы, к которым относится политика, должны быть развернуты в конкретных регионах. При создании пользовательских политик для регионально развернутых сервисов укажите область как Project-level services. Пользовательские политики этой области должны быть привязаны к группам пользователей для конкретных проектов, за исключением глобальных сервисов.

    Например, при создании пользовательской политики, содержащей действие evs:volumes:create для EVS, укажите область как Project-level services.

    Note

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

  5. Выберите JSON для Policy View.
  6. (Optional) Нажмите Select Existing Policy/Role и выберите политику/роль, чтобы использовать её в качестве шаблона, например, выберите EVS Admin.

    Note

    Если вы выбираете несколько политик, все они должны иметь одну и ту же область, то есть либо Global services, либо Project-level services. Чтобы определить разрешения, необходимые для доступа как к глобальным, так и к проектным сервисам, разместите разрешения в двух отдельных пользовательских политиках для уточнённого управления доступом.

  7. Нажмите OK.
  8. Измените оператор в шаблоне.

    • Effect: Установите значение Allow или Deny.
    • Action: Введите действия, перечисленные в таблице API actions (см. Figure 7) сервиса EVS, например, evs:volumes:create.

      Figure 7 API actions


      Note

      Версия каждой пользовательской политики фиксирована на уровне 1.1.

  9. (Необязательно) Введите краткое описание политики.
  10. Нажмите OK. Если отображается список политик, политика успешно создана. Если отображается сообщение, указывающее на некорректное содержание политики, измените политику.
  11. Присоедините policy к user group. Пользователи в группе затем наследуют permissions, определённые в этой policy.

    Note

    Вы можете присоединить custom policies к user group так же, как присоединяете system-defined policies. Для получения подробностей см. Creating a User Group and Assigning Permissions.