Назначить роль на ресурс
Чтобы предоставить доступ к ресурсу, назначьте субъекту роль на сам ресурс или на ресурс, от которого наследуются права доступа, например на каталог или облако. Актуальный список ресурсов, на которые можно назначать роли, доступен в разделе На какие ресурсы можно назначить роль.
- В консоли управления
выберите каталог, в котором нужно назначить роль на ресурс. - В списке сервисов выберите Container Registry.
- Выберите реестр или репозиторий в нем.
- Перейдите на вкладку Права доступа.
- Нажмите кнопку Назначить роли.
- В открывшемся окне выберите группу, пользователя или сервисный аккаунт.
- Нажмите кнопку
Добавить роль и выберите роль из списка. - Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Выполните команду, чтобы назначить роль на ресурс:
-
пользователю:
yc container <ресурс> add-access-binding <имя_или_идентификатор_ресурса> \ --role <роль> \ --user-account-id <идентификатор_пользователя>
-
yc container <ресурс> add-access-binding <имя_или_идентификатор_ресурса> \ --role <роль> \ --service-account-id <идентификатор_сервисного_аккаунта>
-
всем авторизованным пользователям (публичная группа
All authenticated users
):yc container <ресурс> add-access-binding <имя_или_идентификатор_ресурса> \ --role <роль> \ --all-authenticated-users
Где:
<ресурс>
— тип ресурсаregistry
(реестр) илиrepository
(репозиторий);<имя_или_идентификатор_ресурса>
— имя или идентификатор ресурса, на который назначается роль;<роль>
— роль, которую необходимо назначить.
Пример
В примере ниже пользователю назначается роль container-registry.admin
на реестр my-first-registry
.
yc container registry add-access-binding my-first-registry \
--role container-registry.admin \
--user-account-id ajeugsk5ubk6********
Результат:
done (4s)
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле:
-
Параметры ресурса
yandex_container_registry_iam_binding
, чтобы назначить роль на реестр:resource "yandex_container_registry_iam_binding" "имя_реестра" { registry_id = "<идентификатор_реестра>" role = "<роль>" members = [ "userAccount:<идентификатор_пользователя>", ] }
Где:
registry_id
— идентификатор реестра, на который назначается роль. Чтобы узнать идентификатор реестра, получите список реестров в каталоге.role
— роль, которую необходимо назначить.members
— идентификатор пользователя, группы или сервисного аккаунта, которому назначается роль.
-
Параметры ресурса
yandex_container_repository_iam_binding
, чтобы назначить роль на репозиторий:resource "yandex_container_repository_iam_binding" "имя_репозитория" { repository_id = "<идентификатор_репозитория>" role = "<роль>" members = [ "serviceAccount:<идентификатор_сервисного_аккаунта>", ] }
Где:
repository_id
— идентификатор репозитория, на который назначается роль. Чтобы узнать идентификатор репозитория, получите список репозиториев в каталоге.role
— роль, которую необходимо назначить.members
— идентификатор пользователя, группы или сервисного аккаунта, которому назначается роль.
Более подробную информацию о ресурсе
yandex_container_repository_iam_binding
, см. в документации провайдера . -
-
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Проверить назначение роли можно в консоли управления
-
Для реестра:
yc container registry list-access-bindings <имя_или_идентификатор_реестра>
-
Для репозитория:
yc container repository list-access-bindings <имя_или_идентификатор_репозитория>
Воспользуйтесь методом REST API updateAccessBindings для ресурса Registry или вызовом gRPC API RegistryService/UpdateAccessBindings.
Воспользуйтесь методом REST API updateAccessBindings для ресурса Repository или вызовом gRPC API RepositoryService/UpdateAccessBindings.