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 a role from the list. - Click Save.
If you do not have the Yandex Cloud command line interface yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder using 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.