Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Resource Manager
  • Начало работы
    • Все инструкции
    • Управление метками
      • Создание облака
      • Переименование облака
      • Удаление облака
      • Отмена удаления облака
      • Настройка прав доступа
      • Получение идентификатора облака
      • Переключение на другое облако
      • Изменение организации для облака
      • Получение уведомлений сервисов в облаке
    • Посмотреть операции с ресурсами сервиса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Назначить роль на облако
  • Назначить несколько ролей
  • Доступ к облаку для сервисного аккаунта
  • Что дальше
  1. Пошаговые инструкции
  2. Облако
  3. Настройка прав доступа

Настройка прав доступа к облаку

Статья создана
Yandex Cloud
Обновлена 6 марта 2025 г.
  • Назначить роль на облако
  • Назначить несколько ролей
  • Доступ к облаку для сервисного аккаунта
  • Что дальше

Чтобы предоставить пользователю доступ к ресурсам в облаке, назначьте ему роль на это облако.

Назначить роль на облакоНазначить роль на облако

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите облако.
  2. Перейдите на вкладку Права доступа.
  3. Нажмите кнопку Настроить доступ.
  4. В открывшемся окне выберите раздел Пользовательские аккаунты.
  5. Выберите пользователя из списка или воспользуйтесь поиском по пользователям.
  6. Нажмите кнопку Добавить роль и выберите роль из списка или воспользуйтесь поиском.
  7. Нажмите кнопку Сохранить.
  1. Посмотрите описание команды для назначения роли на облако:

    yc resource-manager cloud add-access-binding --help
    
  2. Получите список доступных облаков:

    yc resource-manager cloud list
    

    Результат:

    +----------------------+----------+
    |          ID          |   NAME   |
    +----------------------+----------+
    | b1gg8sgd16g7******** | my-cloud |
    +----------------------+----------+
    
  3. Получите список доступных ролей:

    yc iam role list
    

    Результат:

    +--------------------------------+-------------+
    |               ID               | DESCRIPTION |
    +--------------------------------+-------------+
    | admin                          |             |
    | compute.images.user            |             |
    | editor                         |             |
    | ...                            |             |
    +--------------------------------+-------------+
    
  4. Узнайте идентификатор пользователя по логину или адресу электронной почты.

    yc iam user-account get test-user
    

    Результат:

    id: gfei8n54hmfh********
    yandex_passport_user_account:
        login: test-user
        default_email: test-user@yandex.ru
    
  5. Назначьте пользователю test-user роль editor на облако my-cloud. В субъекте укажите тип userAccount и идентификатор пользователя:

    yc resource-manager cloud add-access-binding my-cloud \
      --role editor \
      --subject userAccount:<идентификатор_пользователя>
    

Чтобы назначить роль не пользователю, а сервисному аккаунту, группе пользователей или системной группе, воспользуйтесь примерами.

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

  1. Опишите в конфигурационном файле параметры прав доступа к облаку:

    • cloud_id — идентификатор облака. Получить список доступных облаков можно с помощью команды CLI: yc resource-manager cloud list.
    • role — роль, которую нужно назначить. Перечень ролей можно получить с помощью команды CLI: yc iam role list. В одном ресурсе yandex_resourcemanager_cloud_iam_member можно назначить только одну роль.
    • member — пользователь или группа, которым нужно назначить роль. Каждый ресурс yandex_resourcemanager_cloud_iam_member может иметь одно из следующих значений:
      • userAccount:<идентификатор_пользователя> — идентификатор пользователя.
      • serviceAccount:<идентификатор_сервисного_аккаунта> — идентификатор сервисного аккаунта.
      • federatedUser:<идентификатор_федеративного_аккаунта> — идентификатор федеративного аккаунта.
      • system:group:organization:<идентификатор_организации>:users — идентификатор организации, чтобы назначить роль системной группе All users in organization X.
      • system:group:federation:<идентификатор_федерации>:users — идентификатор федерации удостоверений, чтобы назначить роль системной группе All users in federation N.

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

    data "yandex_resourcemanager_cloud" "project1" {
      name = "Project 1"
    }
    
    resource "yandex_resourcemanager_cloud_iam_member" "editor" {
      cloud_id = "${data.yandex_resourcemanager_cloud.project1.id}"
      role     = "editor"
      member   = "userAccount:<идентификатор_пользователя>"
    }
    

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

  2. В командной строке перейдите в папку, где вы создали конфигурационный файл.

  3. Проверьте корректность конфигурационного файла с помощью команды:

    terraform validate
    

    Если конфигурация является корректной, появится сообщение:

    Success! The configuration is valid.
    
  4. Выполните команду:

    terraform plan
    

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

  5. Примените изменения конфигурации:

    terraform apply
    
  6. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

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

Воспользуйтесь методом REST API updateAccessBindings для ресурса Cloud или вызовом gRPC API CloudService/UpdateAccessBindings.

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

  1. Узнайте идентификатор облака с помощью метода REST API list:

    curl \
      --header "Authorization: Bearer <IAM-токен>" \
      https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds
    

    Результат:

    {
     "clouds": [
      {
       "id": "b1gg8sgd16g7********",
       "createdAt": "2018-09-23T12:14:45Z",
       "name": "cloud-b1gg8sgd16g7qc"
      }
     ]
    }
    
  2. Узнайте идентификатор пользователя по логину с помощью метода REST API getByLogin:

    curl \
      --header "Authorization: Bearer <IAM-токен>" \
      https://iam.api.cloud.yandex.net/iam/v1/yandexPassportUserAccounts:byLogin?login=test-user
    

    Результат:

    {
     "id": "gfei8n54hmfh********",
     "yandexPassportUserAccount": {
      "login": "test-user",
      "defaultEmail": "test-user@yandex.ru"
     }
    }
    
  3. Назначьте пользователю роль editor на облако my-cloud. В свойстве action укажите ADD, а в свойстве subject - тип userAccount и идентификатор пользователя:

    curl \
      --request POST \
      --header 'Content-Type: application/json' \
      --header "Authorization: Bearer <IAM-токен>" \
      --data '{
      "accessBindingDeltas": [{
          "action": "ADD",
          "accessBinding": {
              "roleId": "editor",
              "subject": {
                  "id": "<идентификатор_пользователя>",
                  "type": "userAccount"
      }}}]}' \
      https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds/b1gg8sgd16g7********:updateAccessBindings
    

Назначить несколько ролейНазначить несколько ролей

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите облако.
  2. Перейдите на вкладку Права доступа.
  3. Нажмите кнопку Назначить роли.
  4. В окне Настройка прав доступа нажмите кнопку Выбрать пользователя.
  5. Выберите пользователя из списка или воспользуйтесь поиском по пользователям.
  6. Нажмите кнопку Добавить роль.
  7. Выберите роль в облаке.
  8. Добавьте еще роль через кнопку Добавить роль.
  9. Нажмите кнопку Сохранить.

Команда add-access-binding позволяет добавить только одну роль. Вы можете назначить несколько ролей с помощью команды set-access-binding.

Внимание

Команда set-access-binding полностью перезаписывает права доступа к ресурсу! Все текущие роли на ресурс будут удалены.

  1. Убедитесь, что на ресурс не назначены роли, которые вы не хотите потерять:

    yc resource-manager cloud list-access-binding my-cloud
    
  2. Например, назначьте роль нескольким пользователям:

    yc resource-manager cloud set-access-bindings my-cloud \
      --access-binding role=editor,subject=userAccount:<идентификатор_первого_пользователя>
      --access-binding role=viewer,subject=userAccount:<идентификатор_второго_пользователя>
    

Чтобы назначить роль не пользователю, а сервисному аккаунту, группе пользователей или системной группе, воспользуйтесь примерами.

  1. Опишите в конфигурационном файле параметры прав доступа к облаку. Назначьте одному пользователю роль editor, а другому viewer:

    data "yandex_resourcemanager_cloud" "project1" {
      name = "Project 1"
    }
    
    resource "yandex_resourcemanager_cloud_iam_member" "editor" {
      cloud_id = "${data.yandex_resourcemanager_cloud.project1.id}"
      role     = "editor"
      member   = "userAccount:<идентификатор_первого_пользователя>"
    }
    
    resource "yandex_resourcemanager_cloud_iam_member" "viewer" {
      cloud_id = "${data.yandex_resourcemanager_cloud.project1.id}"
      role     = "viewer"
      member   = "userAccount:<идентификатор_второго_пользователя>"
    }
    
  2. В командной строке перейдите в папку, где вы создали конфигурационный файл.

  3. Проверьте корректность конфигурационного файла с помощью команды:

    terraform validate
    

    Если конфигурация является корректной, появится сообщение:

    Success! The configuration is valid.
    
  4. Выполните команду:

    terraform plan
    

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

  5. Примените изменения конфигурации:

    terraform apply
    
  6. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

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

Назначьте одному пользователю роль editor, а другому viewer:

curl \
  --request POST \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer <IAM-токен>" \
  --data '{
  "accessBindingDeltas": [{
      "action": "ADD",
      "accessBinding": {
          "roleId": "editor",
          "subject": {
              "id": "<идентификатор_первого_пользователя>",
              "type": "userAccount"
          }
      }
  },{
      "action": "ADD",
      "accessBinding": {
          "roleId": "viewer",
          "subject": {
              "id": "<идентификатор_второго_пользователя>",
              "type": "userAccount"
  }}}]}' \
  https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds/b1gg8sgd16g7********:updateAccessBindings

Вы также можете назначать роли с помощью метода REST API setAccessBindings для ресурса Cloud или вызова gRPC API CloudService/SetAccessBindings.

Внимание

Метод setAccessBindings полностью перезаписывает права доступа к ресурсу! Все текущие роли на ресурс будут удалены.

curl \
  --request POST \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer <IAM-токен>" \
  --data '{
  "accessBindings": [{
      "roleId": "editor",
      "subject": { "id": "<идентификатор_первого_пользователя>", "type": "userAccount" }
  },{
      "roleId": "viewer",
      "subject": { "id": "<идентификатор_второго_пользователя>", "type": "userAccount" }
  }]}' \
  https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds/b1gg8sgd16g7********:setAccessBindings

Доступ к облаку для сервисного аккаунтаДоступ к облаку для сервисного аккаунта

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

Разрешите сервисному аккаунту test-sa управлять облаком my-cloud и ресурсами в нем:

Консоль управления
CLI
Terraform
API

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

Чтобы назначить сервисному аккаунту роль на облако:

  1. В консоли управления слева выберите облако.
  2. Перейдите на вкладку Права доступа.
  3. Нажмите кнопку Настроить доступ.
  4. В открывшемся окне выберите раздел Сервисные аккаунты.
  5. Выберите сервисный аккаунт из списка или воспользуйтесь поиском.
  6. Нажмите кнопку Добавить роль и выберите роль.
  7. Нажмите кнопку Сохранить.
  1. Узнайте идентификатор сервисного аккаунта test-sa, которому вы хотите назначить роль. Чтобы узнать идентификатор, получите список доступных сервисных аккаунтов:

    yc iam service-account list
    

    Результат:

    +----------------------+----------+------------------+
    |          ID          |   NAME   |   DESCRIPTION    |
    +----------------------+----------+------------------+
    | ajebqtreob2d******** | test-sa  | test-description |
    +----------------------+----------+------------------+
    
  2. Назначьте роль editor сервисному аккаунту test-sa, указав его идентификатор. В типе субъекта укажите serviceAccount:

    yc resource-manager cloud add-access-binding my-cloud \
      --role editor \
      --subject serviceAccount:<идентификатор_сервисного_аккаунта>
    
  1. Назначьте роль editor сервисному аккаунту:

    data "yandex_resourcemanager_cloud" "project1" {
      name = "Project 1"
    }
    
    resource "yandex_resourcemanager_cloud_iam_member" "editor" {
      cloud_id = "${data.yandex_resourcemanager_cloud.project1.id}"
      role     = "editor"
      member   = "serviceAccount:<идентификатор_сервисного_аккаунта>"
    }
    
  2. В командной строке перейдите в папку, где вы создали конфигурационный файл.

  3. Проверьте корректность конфигурационного файла с помощью команды:

    terraform validate
    

    Если конфигурация является корректной, появится сообщение:

    Success! The configuration is valid.
    
  4. Выполните команду:

    terraform plan
    

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

  5. Примените изменения конфигурации:

    terraform apply
    
  6. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

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

  1. Узнайте идентификатор сервисного аккаунта test-sa, которому вы хотите назначить роль. Чтобы узнать идентификатор, получите список доступных сервисных аккаунтов:

    curl \
      --header "Authorization: Bearer <IAM-токен>" \
      https://iam.api.cloud.yandex.net/iam/v1/serviceAccounts?folderId=b1gvmob95yys********
    

    Результат:

    {
     "serviceAccounts": [
      {
       "id": "ajebqtreob2d********",
       "folderId": "b1gvmob95yys********",
       "createdAt": "2018-10-18T13:42:40Z",
       "name": "test-sa",
       "description": "test-description"
      }
     ]
    }
    
  2. Назначьте сервисному аккаунту test-sa роль editor на облако my-cloud. В свойстве subject укажите тип serviceAccount и идентификатор test-sa. В URL запроса в качестве ресурса укажите идентификатор my-cloud:

    curl \
      --request POST \
      --header 'Content-Type: application/json' \
      --header "Authorization: Bearer <IAM-токен>" \
      --data '{
      "accessBindingDeltas": [{
          "action": "ADD",
          "accessBinding": {
              "roleId": "editor",
              "subject": {
                  "id": "<идентификатор_сервисного_аккаунта>",
                  "type": "serviceAccount"
      }}}]}' \
      https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds/b1gg8sgd16g7********:updateAccessBindings
    

Что дальшеЧто дальше

  • Создание каталога
  • Настройка прав доступа к каталогу
  • Иерархия ресурсов Yandex Cloud

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

Предыдущая
Отмена удаления облака
Следующая
Получение идентификатора облака
Проект Яндекса
© 2025 ООО «Яндекс.Облако»