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

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

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

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

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

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

Примечание

Для доступа пользователя к консоли управления, назначьте ему роль на облако или организацию. Для безопасности вы можете назначить одну из ролей с минимальными привилегиями, например resource-manager.clouds.member, но также можно назначить и другие роли, если вы знаете, какие права вы хотите предоставить приглашенным пользователям.

Чтобы дать эти права сразу всем пользователям в организации, назначьте роль системной группе All users in organization X. При работе с CLI или API назначение дополнительных ролей не требуется.

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

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

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

  1. Посмотрите описание команды для назначения роли на каталог:

    yc resource-manager folder add-access-binding --help
    
  2. Выберите каталог, например my-folder:

    yc resource-manager folder list
    

    Результат:

    +----------------------+-----------+--------+--------+
    |          ID          |   NAME    | LABELS | STATUS |
    +----------------------+-----------+--------+--------+
    | b1gd129pp9ha******** | my-folder |        | ACTIVE |
    +----------------------+-----------+--------+--------+
    
  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-folder. В субъекте укажите тип userAccount и ID пользователя:

    yc resource-manager folder add-access-binding my-folder \
      --role editor \
      --subject userAccount:gfei8n54hmfh********
    

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

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

Внимание

Не создавайте ресурс совместно с ресурсом yandex_resourcemanager_folder_iam_policy. Они будут конфликтовать.

Чтобы назначить роль на каталог, созданный с помощью Terraform:

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

    • folder_id — идентификатор каталога, на который назначаются права. Обязательный параметр.

    • role — назначаемая роль. Обязательный параметр.

      Примечание

      Для каждой роли можно использовать только один ресурс yandex_resourcemanager_folder_iam_member.

    • member — пользователь, которому будет присвоена роль. Обязательный параметр. Может иметь одно из следующих значений:

      • userAccount:<идентификатор_пользователя> — ID пользователя.
      • serviceAccount:<идентификатор_сервисного_аккаунта> — ID сервисного аккаунта.
      • federatedUser:<идентификатор_пользовательского_аккаунта> — ID пользовательского аккаунта.
      • system:group:organization:<идентификатор_организации>:users — идентификатор организации, чтобы назначить роль системной группе All users in organization X.
      • system:group:federation:<идентификатор_федерации>:users — идентификатор федерации удостоверений, чтобы назначить роль системной группе All users in federation N.
    Пример назначения роли на каталог с помощью Terraform
    ...
    data "yandex_resourcemanager_folder" "project1" {
      folder_id = "<идентификатор_каталога>"
    }
    
    resource "yandex_resourcemanager_folder_iam_member" "editor" {
      folder_id = "${data.yandex_resourcemanager_folder_iam_member.project1.id}"
      role      = "editor"
      member    = "userAccount:<login@yandex.ru>"
    }
    ...
    

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

  2. Проверьте конфигурацию командой:

    terraform validate
    

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

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

    terraform plan
    

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

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

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

    Проверить изменение каталога можно в консоли управления или с помощью команды CLI:

    yc resource-manager folder list-access-bindings <имя_или_идентификатор_каталога>
    

Воспользуйтесь методом REST API updateAccessBindings для ресурса Folder или вызовом gRPC API FolderService/UpdateAccessBindings. Вам понадобится ID каталога и ID пользователя, которому назначается роль на каталог.

  1. Узнайте ID каталога с помощью метода REST API list:

    curl \
      --header "Authorization: Bearer <IAM-токен>" \
      https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders?cloudId=b1gg8sgd16g7********
    

    Результат:

    {
     "folders": [
      {
       "id": "b1g66mft1vop********",
       "cloudId": "b1gd129pp9ha********",
       "createdAt": "2018-10-17T12:44:31Z",
       "name": "my-folder",
       "status": "ACTIVE"
      }
     ]
    }
    
  2. Узнайте ID пользователя по логину с помощью метода 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-folder. В свойстве action укажите ADD, а в свойстве subject - тип userAccount и ID пользователя:

    curl \
      --request POST \
      --header 'Content-Type: application/json' \
      --header "Authorization: Bearer <IAM-токен>" \
      --data '{
      "accessBindingDeltas": [{
          "action": "ADD",
          "accessBinding": {
              "roleId": "editor",
              "subject": {
                  "id": "gfei8n54hmfh********",
                  "type": "userAccount"
      }}}]}' \
      https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders/b1gd129pp9ha********:updateAccessBindings
    

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

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

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

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

Внимание

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

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

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

    yc resource-manager folder set-access-bindings my-folder \
      --access-binding role=editor,subject=userAccount:gfei8n54hmfh********
      --access-binding role=viewer,subject=userAccount:helj89sfj80a********
    

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

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

Внимание

Не создавайте ресурс совместно с ресурсом yandex_resourcemanager_folder_iam_policy. Они будут конфликтовать.

Чтобы назначить несколько ролей на каталог, созданный с помощью Terraform:

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

    • folder_id — идентификатор каталога, на который назначаются права. Обязательный параметр.

    • role — назначаемая роль. Обязательный параметр.

      Примечание

      Для каждой роли можно использовать только один ресурс yandex_resourcemanager_folder_iam_member.

    • member — пользователь, которому будет присвоена роль. Чтобы добавить пользователя в список, создайте запись в формате userAccount:<идентификатор_пользователя>, где <идентификатор_пользователя> — email-адрес аккаунта Яндекс (например, ivan@yandex.ru). Обязательный параметр.

    Пример назначения роли на каталог с помощью Terraform
    ...
    data "yandex_resourcemanager_folder" "project1" {
      folder_id = "<идентификатор_каталога>"
    }
    
    resource "yandex_resourcemanager_folder_iam_member" "editor" {
      folder_id = "${data.yandex_resourcemanager_folder.project1.id}"
      role      = "editor"
      member    = "userAccount:<login1@yandex.ru>"
    }
    resource "yandex_resourcemanager_folder_iam_member" "operator" {
      folder_id = "${data.yandex_resourcemanager_folder.project1.id}"
      role      = "operator"
      member    = "userAccount:<login1@yandex.ru>"
    }
    ...
    

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

  2. Проверьте конфигурацию командой:

    terraform validate
    

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

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

    terraform plan
    

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

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

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

    Проверить изменение каталога можно в консоли управления или с помощью команды CLI:

    yc resource-manager folder list-access-bindings <имя_или_идентификатор_каталога>
    

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

curl \
  --request POST \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer <IAM-токен>" \
  --data '{
  "accessBindingDeltas": [{
      "action": "ADD",
      "accessBinding": {
          "roleId": "editor",
          "subject": {
              "id": "gfei8n54hmfh********",
              "type": "userAccount"
          }
      }
  },{
      "action": "ADD",
      "accessBinding": {
          "roleId": "viewer",
          "subject": {
              "id": "helj89sfj80a********",
              "type": "userAccount"
  }}}]}' \
  https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders/b1gd129pp9ha********:updateAccessBindings

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

Внимание

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

curl \
  --request POST \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer <IAM-токен>" \
  --data '{
  "accessBindings": [{
      "roleId": "editor",
      "subject": { "id": "ajei8n54hmfh********", "type": "userAccount" }
  },{
      "roleId": "viewer",
      "subject": { "id": "helj89sfj80a********", "type": "userAccount" }
  }]}' \
  https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders/b1gd129pp9ha********:setAccessBindings

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

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

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

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

  2. Узнайте идентификатор сервисного аккаунта по его имени:

    yc iam service-account get my-robot
    

    Результат:

    id: aje6o61dvog2********
    folder_id: b1gvmob95yys********
    created_at: "2018-10-15T18:01:25Z"
    name: my-robot
    

    Если вы не знаете имя сервисного аккаунта, получите список сервисных аккаунтов с их идентификаторами:

    yc iam service-account list
    

    Результат:

    +----------------------+------------------+-----------------+
    |          ID          |       NAME       |   DESCRIPTION   |
    +----------------------+------------------+-----------------+
    | aje6o61dvog2******** | my-robot         | my description  |
    +----------------------+------------------+-----------------+
    
  3. Назначьте роль viewer сервисному аккаунту my-robot, используя его идентификатор:

    yc resource-manager folder add-access-binding my-folder \
      --role viewer \
      --subject serviceAccount:aje6o61dvog2********
    

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

Внимание

Не создавайте ресурс совместно с ресурсом yandex_resourcemanager_folder_iam_policy. Они будут конфликтовать.

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

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

    • folder_id — идентификатор каталога, на который назначаются права. Обязательный параметр.

    • role — назначаемая роль. Обязательный параметр.

      Примечание

      Для каждой роли можно использовать только один ресурс yandex_resourcemanager_folder_iam_member.

    • member — пользователь, которому будет присвоена роль. Чтобы добавить пользователя в список, создайте запись в формате serviceAccount:<идентификатор_сервисного_аккаунта>, где <идентификатор_сервисного_аккаунта> — идентификатор сервисного аккаунта. Вы можете перечислить несколько сервисных аккаунтов. Обязательный параметр.

    Пример назначения роли на каталог с помощью Terraform
    ...
    data "yandex_resourcemanager_folder" "project1" {
      folder_id = "<идентификатор_каталога>"
    }
    
    resource "yandex_resourcemanager_folder_iam_member" "editor" {
      folder_id = "${data.yandex_resourcemanager_folder.project1.id}"
      role      = "editor"
      member   = "serviceAccount:<идентификатор_сервисного_аккаунта>"
    }
    ...
    

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

  2. Проверьте конфигурацию командой:

    terraform validate
    

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

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

    terraform plan
    

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

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

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

    Проверить изменение каталога можно в консоли управления или с помощью команды CLI:

    yc resource-manager folder list-access-bindings <имя_или_идентификатор_каталога>
    

Чтобы назначить сервисному аккаунту роль на облако или каталог, воспользуйтесь методом REST API updateAccessBindings для ресурса Cloud или Folder:

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

  2. Узнайте ID каталога с сервисными аккаунтами.

  3. Получите IAM-токен для авторизации в API Yandex Cloud.

  4. Получите список сервисных аккаунтов в каталоге, чтобы узнать их идентификаторы:

    export FOLDER_ID=b1gvmob95yys********
    export IAM_TOKEN=CggaATEVAgA...
    curl \
      --header "Authorization: Bearer ${IAM_TOKEN}" \
      "https://iam.api.cloud.yandex.net/iam/v1/serviceAccounts?folderId=${FOLDER_ID}"
    

    Результат:

    {
     "serviceAccounts": [
      {
       "id": "ajebqtreob2d********",
       "folderId": "b1gvmob95yys********",
       "createdAt": "2018-10-18T13:42:40Z",
       "name": "my-robot",
       "description": "my description"
      }
     ]
    }
    
  5. Сформируйте тело запроса, например в файле body.json. В свойстве action укажите ADD, в свойстве roleId — нужную роль, например editor, а в свойстве subject — тип serviceAccount и идентификатор сервисного аккаунта:

    body.json:

    {
      "accessBindingDeltas": [{
        "action": "ADD",
        "accessBinding": {
          "roleId": "editor",
          "subject": {
            "id": "ajebqtreob2d********",
            "type": "serviceAccount"
          }
        }
      }]
    }
    
  6. Назначьте роль сервисному аккаунту. Например, на каталог с идентификатором b1gvmob95yys********:

    export FOLDER_ID=b1gvmob95yys********
    export IAM_TOKEN=CggaAT********
    curl \
      --request POST \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer ${IAM_TOKEN}" \
      --data '@body.json' \
      "https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders/${FOLDER_ID}:updateAccessBindings"
    

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

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

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

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

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

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

    yc resource-manager folder add-access-binding <имя_или_идентификатор_каталога> \
        --role <идентификатор_роли> \
        --subject federatedUser:<идентификатор_пользователя>
    

    Где:

    • <имя_или_идентификатор_каталога> — имя или идентификатор каталога.
    • --role — идентификатор роли, например editor.
    • --subject — идентификатор аккаунта пользователя, которому назначается роль.

    Например, назначьте федеративному пользователю с идентификатором aje6o61dvog2******** роль editor на каталог my-folder:

    yc resource-manager folder add-access-binding my-folder \
        --role editor \
        --subject federatedUser:aje6o61dvog2********
    

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

  • Изменение каталога
  • Иерархия ресурсов Yandex Cloud

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

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