Assigning a role for a resource
To grant access to a resource, assign the subject a role for the resource itself or a resource from which access permissions are inherited, e.g., a folder or cloud. For the current list of resources you can assign roles for, see Which resources you can assign a role for.
- In the management console
, select the folder where you want to assign a role for a resource. - In the list of services, select Container Registry.
- Select a registry or repository in it.
- Go to the Access bindings tab.
- Click Assign bindings.
- In the window that opens, select a group, user, or service account.
- Click
Add role and select the role from the list. - Click Save.
If you do not have the Yandex Cloud CLI yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder through the --folder-name
or --folder-id
parameter.
To assign a role for a resource, run the following command:
-
To a user:
yc container <resource> add-access-binding <resource_name_or_ID> \ --role <role> \ --user-account-id <user_ID>
-
yc container <resource> add-access-binding <resource_name_or_ID> \ --role <role> \ --service-account-id <service_account_ID>
-
To all authenticated users (the
All authenticated users
public group):yc container <resource> add-access-binding <resource_name_or_ID> \ --role <role> \ --all-authenticated-users
Where:
<resource>
:registry
orrepository
resource type.<resource_name_or_ID>
: Name or ID of the resource to assign the role for.<role>
: Role you want to assign.
Example
In the example below, we are assigning the container-registry.admin
role for my-first-registry
to a user.
yc container registry add-access-binding my-first-registry \
--role container-registry.admin \
--user-account-id ajeugsk5ubk6********
Result:
done (4s)
If you don't have Terraform, install it and configure the Yandex Cloud provider.
-
Describe the following in a configuration file:
-
The
yandex_container_registry_iam_binding
resource parameters to assign the role for the registry:resource "yandex_container_registry_iam_binding" "registry_name" { registry_id = "<registry_ID>" role = "<role>" members = [ "userAccount:<user_ID>", ] }
Where:
registry_id
: ID of the registry for which a role is being assigned. To find out the registry ID, get a list of registries in the folder.role
: Role you want to assign.members
: ID of the user, group, or service account to which you are assigning the role.
-
The
yandex_container_repository_iam_binding
resource parameters to assign the role for the repository:resource "yandex_container_repository_iam_binding" "repository_name" { repository_id = "<repository_ID>" role = "<role>" members = [ "serviceAccount:<service_account_ID>", ] }
Where:
repository_id
: ID of the repository for which you are assigning the role. To find out the ID of a repository, get a list of repositories in the folder.role
: Role you want to assign.members
: ID of the user, group, or service account to which you are assigning the role.
For more information about
yandex_container_repository_iam_binding
, see the provider documentation . -
-
-
In the terminal, change to the folder where you edited the configuration file.
-
Make sure the configuration file is correct using the command:
terraform validate
If the configuration is correct, the following message is returned:
Success! The configuration is valid.
-
Run the command:
terraform plan
The terminal will display a list of resources with parameters. No changes are made at this step. If the configuration contains errors, Terraform will point them out.
-
Apply the configuration changes:
terraform apply
-
Confirm the changes: type
yes
in the terminal and press Enter.
-
You can check that the role has been assigned using the management console
-
Registry:
yc container registry list-access-bindings <registry_name_or_ID>
-
Repository:
yc container repository list-access-bindings <repository_name_or_ID>
Use the updateAccessBindings REST API method for the Registry resource or the RegistryService/UpdateAccessBindings gRPC API call.
Use the updateAccessBindings REST API method for the Repository resource or the RepositoryService/UpdateAccessBindings gRPC API call.