Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Cloud Organization
  • Начало работы
  • Управление организациями
    • Создать организацию
    • Изменить данные организации
    • Переключиться на другую организацию
  • Управление пользователями
    • Обзор
    • Добавить пользователя
    • Получить идентификатор или почту пользователя
    • Назначить права доступа
    • Удалить аккаунт пользователя
  • Управление группами пользователей
  • Управление федерациями удостоверений
    • Настроить федерацию удостоверений
    • Аутентификация с помощью Active Directory
    • Аутентификация с помощью Google Workspace
    • Аутентификация с помощью Azure Active Directory
    • Аутентификация с помощью Keycloak
    • Аутентификация с помощью SAML-совместимой федерации удостоверений
  • Управление облаками и сервисами
  • Справочник API
    • Аутентификация
    • gRPC (англ.)
      • Overview
      • GroupService
      • OrganizationService
      • UserService
      • CertificateService
      • FederationService
      • OperationService
    • REST (англ.)
      • Overview
      • Group
        • Overview
        • create
        • delete
        • get
        • list
        • listAccessBindings
        • listMembers
        • listOperations
        • setAccessBindings
        • update
        • updateAccessBindings
        • updateMembers
      • Organization
        • Overview
        • get
        • list
        • listAccessBindings
        • listOperations
        • setAccessBindings
        • update
        • updateAccessBindings
      • User
        • Overview
        • deleteMembership
        • listMembers
      • Federation
        • Overview
        • list
        • get
        • listUserAccounts
        • delete
        • addUserAccounts
        • update
        • listOperations
        • create
      • Certificate
        • Overview
        • list
        • get
        • delete
        • update
        • listOperations
        • create
  • Правила тарификации
  1. Управление пользователями
  2. Назначить права доступа

Назначение прав доступа

Статья создана
Yandex Cloud
  • Сервисные роли
    • Назначить пользователя администратором организации
    • Назначить роль пользователю
    • Отозвать роль у пользователя

Управление доступом в Yandex Cloud построено на политике Role Based Access Control (RBAC). Чтобы предоставить пользователю определенные права или доступ к ресурсу, нужно назначить ему соответствующие роли.

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

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

Подробнее об управлении доступом в Yandex Cloud читайте в документации Yandex Identity and Access Management в разделе Как устроено управление доступом в Yandex Cloud.

Сервисные роли

  • organization-manager.admin — роль администратора организации.

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

  • organization-manager.organizations.owner — роль владельца организации.

    Роль дает возможность назначать владельцев организации, а также пользоваться всеми полномочиями администратора.

    По умолчанию владелец организации — это пользователь, который ее создал.

  • organization-manager.viewer — роль дает возможность просматривать настройки организации, но не редактировать их.

  • organization-manager.groups.memberAdmin — роль дает возможность просматривать информацию о группе, добавлять и удалять участников.

Назначить пользователя администратором организации

Чтобы дать пользователю права на управление организацией, назначьте ему одну из ролей:

  • organization-manager.admin;
  • organization-manager.organizations.owner.

Назначить роль пользователю

Назначать роли в Yandex Cloud Organization могут администраторы и владельцы организации. Вы можете назначать пользователям не только роли для управления организацией, но и роли для доступа к ресурсам облаков, подключенных к вашей организации.

О том, какие роли доступны в Yandex Cloud и какие разрешения в них входят, читайте в документации Yandex Identity and Access Management в разделе Роли.

Интерфейс Organization
CLI
API
Terraform
  1. Войдите в аккаунт администратора или владельца организации.

  2. Перейдите в сервис Yandex Cloud Organization.

  3. На левой панели выберите раздел Пользователи .

  4. Выберите пользователя из списка или воспользуйтесь строкой поиска вверху страницы.

  5. В правом столбце нажмите значок и выберите Настроить доступ.

  6. В окне Настройка прав доступа нажмите кнопку Добавить роль и введите название роли или выберите роль в списке.

    Описание доступных ролей можно найти в документации Yandex Identity and Access Management в разделе Роли.

  7. Нажмите кнопку Сохранить.

  1. Выберите роль, которую хотите назначить. Описание ролей можно найти в документации Yandex Identity and Access Management в разделе Роли.

  2. Получите идентификатор пользователя.

  3. Назначьте роль с помощью команды:

    yc <SERVICE-NAME> <RESOURCE> add-access-binding <RESOURCE-NAME>|<RESOURCE-ID> \
        --role <ROLE-ID> \
        --subject userAccount:<USER-ACCOUNT-ID>
    
    • <SERVICE-NAME> — имя сервиса, на чей ресурс назначается роль, например organization-manager.
    • <RESOURCE> — категория ресурса. Для организации всегда имеет значение organization.
    • <RESOURCE-NAME> — имя ресурса. Для организации в качестве имени используйте техническое название.
    • <RESOURCE-ID> — идентификатор ресурса.
    • <ROLE-ID> — идентификатор роли, например organization-manager.admin.
    • <USER-ACCOUNT-ID> — идентификатор аккаунта пользователя, которому назначается роль.

    Например, назначьте роль администратора для организации с идентификатором bpf3crucp1v28b74p3rk:

    yc organization-manager organization add-access-binding bpf3crucp1v28b74p3rk \
        --role organization-manager.admin \
        --subject userAccount:aje6o61dvog2h6g9a33s
    

Воспользуйтесь методом updateAccessBindings для соответствующего ресурса.

  1. Выберите роль, которую хотите назначить. Описание ролей можно найти в документации Yandex Identity and Access Management в разделе Роли.

  2. Получите идентификатор пользователя.

  3. Сформируйте тело запроса, например в файле body.json. В свойстве action укажите ADD, а в свойстве subject - тип userAccount и идентификатор пользователя:

    Пример файла body.json:

    {
      "accessBindingDeltas": [{
        "action": "ADD",
        "accessBinding": {
          "roleId": "organization-manager.admin",
          "subject": {
            "id": "gfei8n54hmfhuk5nogse",
            "type": "userAccount"
          }
        }
      }]
    }
    
  4. Назначьте роль. Например, для организации с идентификатором bpf3crucp1v28b74p3rk:

export ORGANIZATION_ID=bpf3crucp1v28b74p3rk
export IAM_TOKEN=CggaATEVAgA...
curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${IAM_TOKEN}" \
    -d '@body.json' \	"https://organization-manager.api.cloud.yandex.net/organization-manager/v1/organizations/${ORGANIZATION_ID}:updateAccessBindings"

Вы можете ознакомиться с подробной инструкцией назначения роли для соответствующего ресурса в документации Yandex Identity and Access Management и Yandex Resource Manager:

  • Настройка прав доступа к сервисному аккаунту
  • Настройка прав доступа к облаку
  • Настройка прав доступа к каталогу

Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.

  1. Опишите в конфигурационном файле параметры назначаемых ролей:

    • organization_id — идентификатор организации.
    • role — роль, которую хотите назначить. Описание ролей можно найти в документации Yandex Identity and Access Management в разделе Роли. Для каждой роли можно использовать только один yandex_organization manager_organization_iam_binding.
    • members — массив идентификаторов пользователей, которым будет назначена роль:
      • userAccount:{user_id} — идентификатор аккаунта пользователя на Яндексе.
      • serviceAccount:{service_account_id} — идентификатор сервисного аккаунта.
      • federatedUser:{federated_user_id} — идентификатор федеративного пользователя.

    Пример структуры конфигурационного файла:

    resource "yandex_organizationmanager_organization_iam_binding" "editor" {
      organization_id = "<ID организации>"
      role = "editor"
      members = [
       "federatedUser:<ID пользователя>",
      ]
    }
    

    Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.

  2. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в папку, где вы создали конфигурационный файл.
    2. Выполните проверку с помощью команды:
    $ terraform plan
    

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

  3. Назначьте роли.

    Если в конфигурации нет ошибок, выполните команду:

    $ terraform apply
    

    После этого в указанной организации будут назначены роли.

Отозвать роль у пользователя

Если вы хотите запретить пользователю доступ к ресурсу, отзовите у него соответствующие роли на этот ресурс и на ресурсы, от которых наследуются права доступа. Подробнее об управлении доступом в Yandex Cloud читайте в документации Yandex Identity and Access Management.

Отозвать роль может пользователь с ролью администратора organization-manager.admin или владельца organization-manager.organizations.owner организации. Как назначить роль пользователю, читайте в разделе Роли.

Интерфейс Organization
CLI
API
  1. Войдите в аккаунт администратора или владельца организации.

  2. Перейдите в сервис Yandex Cloud Organization.

  3. На левой панели выберите раздел Пользователи .

  4. Выберите пользователя из списка или воспользуйтесь строкой поиска вверху страницы.

  5. В правом столбце нажмите значок и выберите Настроить доступ.

  6. Нажмите значок рядом с ролью, чтобы удалить ее.

  7. Нажмите кнопку Сохранить.

Чтобы отозвать роль у субъекта, удалите соответствующую привязку прав доступа для соответствующего ресурса:

  1. Посмотрите, кому и какие роли назначены на ресурс:

    yc <SERVICE-NAME> <RESOURCE> list-access-bindings <RESOURCE-NAME>|<RESOURCE-ID>
    
    • <SERVICE-NAME> — имя сервиса, которому принадлежит ресурс, например organization-manager.
    • <RESOURCE> — категория ресурса. Для организации всегда имеет значение organization.
    • <RESOURCE-NAME> — имя ресурса. Для организации в качестве имени используйте техническое название.
    • <RESOURCE-ID> — идентификатор ресурса.

    Например, посмотрите, кому и какие роли назначены в организации с идентификатором bpf3crucp1v28b74p3rk:

    yc organization-manager organization list-access-bindings bpf3crucp1v28b74p3rk
    

    Результат:

    +------------------------------------------+--------------+----------------------+
    |                 ROLE ID                  | SUBJECT TYPE |      SUBJECT ID      |
    +------------------------------------------+--------------+----------------------+
    | organization-manager.organizations.owner | userAccount  | aje3r40rsemj2f5b5jkk |
    | organization-manager.admin               | userAccount  | aje6o61dvog2h6g9a33s |
    +------------------------------------------+--------------+----------------------+
    
  2. Чтобы удалить привязку прав доступа, выполните команду:

    yc <SERVICE-NAME> <RESOURCE> remove-access-binding <RESOURCE-NAME>|<RESOURCE-ID> \
        --role <ROLE-ID> \
        --subject <SUBJECT-TYPE>:<SUBJECT-ID>
    
    • <ROLE-ID> — идентификатор роли, которую надо отозвать, например organization-manager.admin.
    • <SUBJECT-TYPE> — тип субъекта, у которого отзывается роль.
    • <SUBJECT-ID> — идентификатор субъекта.

    Например, чтобы отозвать роль у пользователя с идентификатором aje6o61dvog2h6g9a33s:

    yc organization-manager organization remove-access-binding bpf3crucp1v28b74p3rk \
        --role organization-manager.admin \
        --subject userAccount:aje6o61dvog2h6g9a33s
    

Чтобы отозвать роль у субъекта на ресурс, удалите соответствующую привязку прав доступа:

  1. Посмотрите, кому и какие роли назначены на ресурс с помощью метода listAccessBindings. Например, чтобы посмотреть роли в организации с идентификатором bpf3crucp1v28b74p3rk:

    export ORGANIZATION_ID=bpf3crucp1v28b74p3rk
    export IAM_TOKEN=CggaATEVAgA...
    curl -H "Authorization: Bearer ${IAM_TOKEN}" "https://organization-manager.api.cloud.yandex.net/organization-manager/v1/organizations/${ORGANIZATION_ID}:listAccessBindings"
    

    Результат:

    {
    "accessBindings": [
    {
      "subject": {
      "id": "aje6o61dvog2h6g9a33s",
      "type": "userAccount"
      },
      "roleId": "organization-manager.admin"
    }
    ]
    }
    
  2. Сформируйте тело запроса, например в файле body.json. В теле запроса укажите, какую привязку прав доступа необходимо удалить. Например, отзовите у пользователя aje6o61dvog2h6g9a33s роль organization-manager.admin:

    Пример файла body.json:

    {
      "accessBindingDeltas": [{
        "action": "REMOVE",
        "accessBinding": {
          "roleId": "organization-manager.admin",
          "subject": {
            "id": "aje6o61dvog2h6g9a33s",
            "type": "userAccount"
          }
        }
      }]
    }
    
  3. Отзовите роль, удалив указанную привязку прав доступа:

export ORGANIZATION_ID=bpf3crucp1v28b74p3rk
export IAM_TOKEN=CggaATEVAgA...
curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${IAM_TOKEN}" \
    -d '@body.json' \	"https://organization-manager.api.cloud.yandex.net/organization-manager/v1/organizations/${ORGANIZATION_ID}:updateAccessBindings"

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Сервисные роли
  • Назначить пользователя администратором организации
  • Назначить роль пользователю
  • Отозвать роль у пользователя