Назначить роль на ресурс
Чтобы предоставить доступ к ресурсу, назначьте субъекту роль на сам ресурс или на ресурс, от которого наследуются права доступа, например, на каталог или облако. Подробнее читайте в разделе Как устроено управление доступом в Yandex Cloud.
- В консоли управления
выберите каталог, в котором нужно назначить роль на ресурс. - В списке сервисов выберите Container Registry.
- Назначьте роль на ресурс.
- Назначить на реестр:
- Справа от имени нужного реестра нажмите значок
и выберите ACL реестра. - В открывшемся окне выберите группу, пользователя или сервисный аккаунт и нажмите кнопку Добавить.
- В выпадающем списке Разрешения отметьте нужные роли.
- Нажмите кнопку Сохранить.
- Справа от имени нужного реестра нажмите значок
- Назначить на репозиторий:
- Выберите нужный репозиторий.
- Справа от имени нужного репозитория нажмите значок
и выберите Настроить ACL. - В открывшемся окне выберите группу, пользователя или сервисный аккаунт и нажмите кнопку Добавить.
- В выпадающем списке Разрешения отметьте нужные роли.
- Нажмите кнопку Сохранить.
- Назначить на реестр:
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Выберите роль из списка.
-
Назначьте роль:
-
Чтобы добавить роль к имеющимся разрешениям, выполните команду:
yc <имя_сервиса> <ресурс> add-access-binding <имя_или_идентификатор_ресурса> \ --role <идентификатор_роли> \ --subject userAccount:<идентификатор_пользователя>
-
Чтобы установить роль, удалив все имеющиеся разрешения, выполните команду:
yc <имя_сервиса> <ресурс> set-access-bindings <имя_или_идентификатор_ресурса> \ --role <идентификатор_роли> \ --subject userAccount:<идентификатор_пользователя>
Где:
<имя_сервиса>
— имя сервисаcontainer
.<ресурс>
— категория ресурсаregistry
илиrepository
.<имя_или_идентификатор_ресурса>
— имя или идентификатор ресурса, на который назначается роль.--role
— идентификатор роли.--subject
— идентификатор группы, пользователя или сервисного аккаунта, которому назначается роль.
Пример. Добавьте роль
container-registry.admin
на реестр с идентификаторомcrp0pmf1n68d********
для пользователя с идентификаторомkolhpriseeio********
:yc container registry add-access-binding crp0pmf1n68d******** \ --role container-registry.admin \ --subject userAccount:kolhpriseeio********
-
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле:
-
Параметры ресурса
yandex_container_registry_iam_binding
, чтобы назначить роль на реестр:registry_id
— идентификатор реестра, на который назначается роль. Вы можете получить идентификатор реестра из списка реестров в каталоге.role
— идентификатор роли.members
— идентификатор пользователя, группы или сервисного аккаунта, которому назначается роль.
Пример структуры конфигурационного файла:
resource "yandex_container_registry_iam_binding" "puller" { registry_id = "<идентификатор_реестра>" role = "<идентификатор_роли>" members = [ "userAccount:<идентификатор_пользователя>", ] }
Более подробную информацию о ресурсе
yandex_container_registry_iam_binding
, см. в документации провайдера . -
Параметры ресурса
yandex_container_repository_iam_binding
, чтобы назначить роль на репозиторий:repository_id
— идентификатор репозитория, на который назначается роль.role
— идентификатор роли.members
— идентификатор пользователя, группы или сервисного аккаунта, которому назначается роль.
Пример структуры конфигурационного файла:
resource "yandex_container_repository_iam_binding" "pusher" { repository_id = "<идентификатор_репозитория>" role = "<идентификатор_роли>" members = [ "userAccount:<идентификатор_пользователя>", ] }
Более подробную информацию о ресурсе
yandex_container_repository_iam_binding
, см. в документации провайдера .
-
-
Выполните проверку с помощью команды:
terraform plan
В терминале будет выведен список ресурсов с параметрами. Это проверочный этап: ресурсы не будут созданы. Если в конфигурации есть ошибки, Terraform на них укажет.
Внимание
Все созданные с помощью Terraform ресурсы тарифицируются. Внимательно проверьте план.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения ресурсов: введите в терминал слово
yes
и нажмите Enter.Проверить назначение роли можно в консоли управления
или с помощью команды CLI:-
Для реестра:
yc container registry list-access-bindings <имя_или_идентификатор_реестра>
-
Для репозитория:
yc container repository list-access-bindings <имя_или_идентификатор_репозитория>
-
Чтобы назначить роль пользователю, сервисному аккаунту или группе для доступа к ресурсу, воспользуйтесь методом updateAccessBindings
для ресурсов registry
и repository
.
Подробнее об управлении ролями читайте в документации Yandex Identity and Access Management.