Yandex Cloud
Search
Discuss with expertTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • System Status
  • Marketplace
    • Featured
    • Infrastructure & Network
    • Data Platform
    • AI for business
    • Security
    • DevOps tools
    • Serverless
    • Monitoring & Resources
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
    • Price calculator
    • Pricing plans
  • Customer Stories
  • Documentation
  • Blog
© 2026 Direct Cursus Technology L.L.C.
Yandex Resource Manager
  • Getting started
    • All guides
    • Managing labels
      • Creating a cloud
      • Creating a cloud in another region
      • Renaming a cloud
      • Deleting a cloud
      • Canceling cloud deletion
      • Managing access policies
      • Setting up access rights
      • Getting a cloud ID
      • Switch clouds
      • Changing an organization for a cloud
      • Getting notifications from services in a cloud
    • Viewing service resource operations
  • Access management
  • Pricing policy
  • Terraform reference
  • Audit Trails events
  • Release notes
  • FAQ

In this article:

  • Assigning a role for a cloud
  • Assigning multiple roles
  • Cloud access for service accounts
  • What's next
  1. Step-by-step guides
  2. Cloud
  3. Setting up access rights

Setting up cloud access permissions

Written by
Yandex Cloud
Improved by
ilya
Updated at September 1, 2026
View in Markdown
  • Assigning a role for a cloud
  • Assigning multiple roles
  • Cloud access for service accounts
  • What's next

Warning

Even if an operation with resources pertaining to Yandex Cloud services is allowed by a role, it may still be blocked if the organization, cloud, or folder is subject to an access policy prohibiting this operation.

To grant a user access to cloud resources, assign the user a role for the cloud.

Assigning a role for a cloudAssigning a role for a cloud

Management console
CLI
Terraform
API
  1. In the management console, select a cloud.
  2. Go to the Access bindings tab.
  3. Click Configure access.
  4. In the window that opens, select User accounts.
  5. Select a user from the list or search by user.
  6. Click Add role and select the role from the list or use the search bar.
  7. Click Save.

If you do not have the Yandex Cloud CLI yet, install and initialize it.

The folder used by default is the one specified when creating the CLI profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also specify a different folder for any command using --folder-name or --folder-id.

If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

  1. View a description of the command to assign a role for a cloud:

    yc resource-manager cloud add-access-binding --help
    
  2. Get a list of available clouds:

    yc resource-manager cloud list
    

    Result:

    +----------------------+----------+
    |          ID          |   NAME   |
    +----------------------+----------+
    | b1gg8sgd16g7******** | my-cloud |
    +----------------------+----------+
    
  3. Get a list of available roles:

    yc iam role list
    

    Result:

    +--------------------------------+-------------+
    |               ID               | DESCRIPTION |
    +--------------------------------+-------------+
    | admin                          |             |
    | compute.images.user            |             |
    | editor                         |             |
    | ...                            |             |
    +--------------------------------+-------------+
    
  4. Find out the user ID from the login or email address.

    yc iam user-account get test-user
    

    Result:

    id: gfei8n54hmfh********
    yandex_passport_user_account:
        login: test-user
        default_email: test-user@yandex.ru
    
  5. Assign the user a role for the cloud. In the subject, specify the userAccount type and user ID:

    yc resource-manager cloud add-access-binding my-cloud \
      --role editor \
      --subject userAccount:<user_ID>
    

    Where:

    • --role: ID of the role you need to assign, e.g., resource-manager.clouds.owner.

    • --subject: Subject getting the role.

      Subject designations

      To indicate a subject, use the --subject parameter in <subject_type>:<ID> format. For some subject types, the Yandex Cloud CLI provides separate parameters instead of --subject, where you only need to specify the subject name or ID without the type. Possible subject designations and the corresponding CLI parameters:

      Subject type

      Subject designation

      Yandex Cloud CLI parameter

      userAccount

      userAccount:<user_ID>

      --user-account-id or --user-yandex-login

      serviceAccount

      serviceAccount:<service_account_ID>

      --service-account-id or --service-account-name

      federatedUser

      federatedUser:<user_ID>

      --user-account-id

      group

      group:<group_ID>

      --group-members

      system

      system:allAuthenticatedUsers

      (All authenticated users group)

      --all-authenticated-users

      system:allUsers

      (All users group)

      —

      system:group:organization:<organization_ID>:users

      (All users in organization X group)

      --organization-users

      system:group:federation:<federation_ID>:users

      (All users in federation N group)

      --federation-users

      system:group:userpool:<pool_ID>:users

      (All users in userpool P group)

      —

To assign a role to a service account, user group, or system group instead of a user, see these examples.

If you do not have Terraform yet, install it and configure the Yandex Cloud provider.

To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), authenticate using the appropriate method.

  1. Describe the roles you are assigning in the configuration file:

    Here is an example of the configuration file structure:

    data "yandex_resourcemanager_cloud" "project1" {
      name = "Project 1"
    }
    
    resource "yandex_resourcemanager_cloud_iam_member" "editor" {
      cloud_id = "${data.yandex_resourcemanager_cloud.project1.id}"
      role     = "<role>"
      member   = "userAccount:<user_ID>"
    }
    

    Where:

    • cloud_id: Cloud ID. You can get a list of available clouds using the CLI command: yc resource-manager cloud list. This is a required setting.

    • role: Role you need to assign. You can get a list of roles using the CLI command: yc iam role list. In one yandex_resourcemanager_cloud_iam_member resource, only one role can be assigned. This is a required setting.

    • member: Subject getting the role. This is a required setting.

      Subject designations

      To indicate a subject, use a combination of its type and unique ID, i.e., <subject_type>:<ID>. How you can designate a subject:

      Subject type

      Subject designation

      userAccount

      userAccount:<user_ID>

      serviceAccount

      serviceAccount:<service_account_ID>

      federatedUser

      federatedUser:<user_ID>

      group

      group:<group_ID>

      system

      system:allAuthenticatedUsers

      (All authenticated users group)

      system:allUsers

      (All users group)

      system:group:organization:<organization_ID>:users

      (All users in organization X group)

      system:group:federation:<federation_ID>:users

      (All users in federation N group)

      system:group:userpool:<pool_ID>:users

      (All users in userpool P group)

    For more on the properties of the yandex_resourcemanager_cloud_iam_member in Terraform, see this provider guide.

  2. Create the resources:

    1. In the terminal, navigate to the configuration file directory.

    2. Make sure the configuration is correct using this command:

      terraform validate
      

      If the configuration is valid, you will get this message:

      Success! The configuration is valid.
      
    3. Run this command:

      terraform plan
      

      You will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.

    4. Apply the configuration changes:

      terraform apply
      
    5. Type yes and press Enter to confirm the changes.

    This will assign access permissions for the cloud.

Use the updateAccessBindings REST API method for the Cloud resource or the CloudService/UpdateAccessBindings gRPC API call.

You will need the cloud ID and the ID of the user who is assigned the role for the cloud.

  1. Find out the cloud ID using the list REST API method:

    curl \
      --header "Authorization: Bearer <IAM_token>" \
      https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds
    

    Result:

    {
     "clouds": [
      {
       "id": "b1gg8sgd16g7********",
       "createdAt": "2018-09-23T12:14:45Z",
       "name": "cloud-b1gg8sgd16g7qc"
      }
     ]
    }
    
  2. Find out the user ID by login using the getByLogin REST API method:

    curl \
      --header "Authorization: Bearer <IAM_token>" \
      https://iam.api.cloud.yandex.net/iam/v1/yandexPassportUserAccounts:byLogin?login=test-user
    

    Result:

    {
     "id": "gfei8n54hmfh********",
     "yandexPassportUserAccount": {
      "login": "test-user",
      "defaultEmail": "test-user@yandex.ru"
     }
    }
    
  3. Assign the user a role for the cloud. In the action property, enter ADD and specify the userAccount type and user ID under subject.

    curl \
      --request POST \
      --header 'Content-Type: application/json' \
      --header "Authorization: Bearer <IAM_token>" \
      --data '{
        "accessBindingDeltas": [
          {
            "action": "ADD",
            "accessBinding": {
              "roleId": "<role>",
              "subject": {
                "id": "<user_ID>",
                "type": "userAccount"
              }
            }
          }
        ]
      }' \
      https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds/<cloud_ID>:updateAccessBindings
    

    Where:

    • roleId: Role.

    • subject: Subject getting the role.

      Subject designations

      To indicate a subject, use a combination of its type and unique ID in the subject.type and subject.id fields of the request. Possible combinations:

      subject.type

      subject.id

      userAccount

      <user_ID>

      serviceAccount

      <service_account_ID>

      federatedUser

      <user_ID>

      group

      <group_ID>

      system

      allAuthenticatedUsers

      (All authenticated users group)

      allUsers

      (All users group)

      group:organization:<organization_ID>:users

      (All users in organization X group)

      group:federation:<federation_ID>:users

      (All users in federation N group)

      group:userpool:<pool_ID>:users

      (All users in userpool P group)

Assigning multiple rolesAssigning multiple roles

Management console
CLI
Terraform
API
  1. In the management console, select a cloud.
  2. Click the Access bindings tab.
  3. Click Assign bindings.
  4. In the Configure access bindings window, click Select user.
  5. Select a user from the list or search for a user.
  6. Click Add role.
  7. Select a role in the cloud.
  8. Use the Add role button to add another role.
  9. Click Save.

The add-access-binding command allows you to add only one role. You can assign multiple roles using the set-access-bindings command.

Alert

The set-access-bindings command for assigning multiple roles completely rewrites access permissions for the resource. All current resource roles will be deleted.

If you do not have the Yandex Cloud CLI yet, install and initialize it.

The folder used by default is the one specified when creating the CLI profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also specify a different folder for any command using --folder-name or --folder-id.

If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

  1. Make sure the resource has no important roles assigned before proceeding:

    yc resource-manager cloud list-access-bindings <cloud_name_or_ID>
    
  2. To assign a role, run this command:

    yc resource-manager cloud set-access-bindings <cloud_name_or_ID> \
      --access-binding role=<role>,subject=<subject_type>:<subject_ID>
    

    Where:

    • role: ID of the role you need to assign.

    • subject: Subject getting the role.

      Subject designations

      To indicate a subject, use a combination of its type and unique ID, i.e., <subject_type>:<ID>. How you can designate a subject:

      Subject type

      Subject designation

      userAccount

      userAccount:<user_ID>

      serviceAccount

      serviceAccount:<service_account_ID>

      federatedUser

      federatedUser:<user_ID>

      group

      group:<group_ID>

      system

      system:allAuthenticatedUsers

      (All authenticated users group)

      system:allUsers

      (All users group)

      system:group:organization:<organization_ID>:users

      (All users in organization X group)

      system:group:federation:<federation_ID>:users

      (All users in federation N group)

      system:group:userpool:<pool_ID>:users

      (All users in userpool P group)

    Provide a separate --access-binding parameter for each role. Here is an example:

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

To assign a role to a service account, user group, or system group instead of a user, see these examples.

If you do not have Terraform yet, install it and configure the Yandex Cloud provider.

To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), authenticate using the appropriate method.

  1. Describe the cloud access permission parameters in the configuration file.

    Here is an example of the configuration file structure:

    data "yandex_resourcemanager_cloud" "project1" {
      name = "Project 1"
    }
    
    resource "yandex_resourcemanager_cloud_iam_member" "member1" {
      cloud_id = "${data.yandex_resourcemanager_cloud.project1.id}"
      role     = "<role_1>"
      member   = "userAccount:<user_ID>"
    }
    
    resource "yandex_resourcemanager_cloud_iam_member" "member2" {
      cloud_id = "${data.yandex_resourcemanager_cloud.project1.id}"
      role     = "<role_2>"
      member   = "userAccount:<user_ID>"
    }
    

    Where:

    • cloud_id: Cloud ID. You can get a list of available clouds using the CLI command: yc resource-manager cloud list. This is a required setting.

    • role: Role you need to assign. You can get a list of roles using the CLI command: yc iam role list. In one yandex_resourcemanager_cloud_iam_member resource, only one role can be assigned. This is a required setting.

    • member: Subject getting the role. This is a required setting.

      Subject designations

      To indicate a subject, use a combination of its type and unique ID, i.e., <subject_type>:<ID>. How you can designate a subject:

      Subject type

      Subject designation

      userAccount

      userAccount:<user_ID>

      serviceAccount

      serviceAccount:<service_account_ID>

      federatedUser

      federatedUser:<user_ID>

      group

      group:<group_ID>

      system

      system:allAuthenticatedUsers

      (All authenticated users group)

      system:allUsers

      (All users group)

      system:group:organization:<organization_ID>:users

      (All users in organization X group)

      system:group:federation:<federation_ID>:users

      (All users in federation N group)

      system:group:userpool:<pool_ID>:users

      (All users in userpool P group)

  2. Create the resources:

    1. In the terminal, navigate to the configuration file directory.

    2. Make sure the configuration is correct using this command:

      terraform validate
      

      If the configuration is valid, you will get this message:

      Success! The configuration is valid.
      
    3. Run this command:

      terraform plan
      

      You will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.

    4. Apply the configuration changes:

      terraform apply
      
    5. Type yes and press Enter to confirm the changes.

    This will assign access permissions for the cloud.

Assign roles to the users:

curl \
  --request POST \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer <IAM_token>" \
  --data '{
    "accessBindingDeltas": [
      {
        "action": "ADD",
        "accessBinding": {
          "roleId": "<role_1>",
          "subject": {
            "id": "<user_ID>",
            "type": "userAccount"
          }
        }
      },
      {
        "action": "ADD",
        "accessBinding": {
          "roleId": "<role_2>",
          "subject": {
            "id": "<user_ID>",
            "type": "userAccount"
          }
        }
      }
    ]
  }' \
  https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds/<cloud_ID>:updateAccessBindings

Where:

  • roleId: Role.

  • subject: Subject getting the role.

    Subject designations

    To indicate a subject, use a combination of its type and unique ID in the subject.type and subject.id fields of the request. Possible combinations:

    subject.type

    subject.id

    userAccount

    <user_ID>

    serviceAccount

    <service_account_ID>

    federatedUser

    <user_ID>

    group

    <group_ID>

    system

    allAuthenticatedUsers

    (All authenticated users group)

    allUsers

    (All users group)

    group:organization:<organization_ID>:users

    (All users in organization X group)

    group:federation:<federation_ID>:users

    (All users in federation N group)

    group:userpool:<pool_ID>:users

    (All users in userpool P group)

You can also assign roles using the setAccessBindings REST API method for the Cloud resource or the CloudService/SetAccessBindings gRPC API call.

Alert

The setAccessBindings method for assigning multiple roles completely rewrites access permissions for the resource. All current resource roles will be deleted.

Cloud access for service accountsCloud access for service accounts

A service account can be assigned roles for any cloud and folder within the organization it belongs to.

Allow the test-sa service account to manage my-cloud and its resources:

Management console
CLI
Terraform
API

You assign roles to a service account the same way as to a user account.

To assign a service account a role for a cloud:

  1. In the management console, on the left, select a cloud.
  2. Go to the Access bindings tab.
  3. Click Configure access.
  4. In the window that opens, select Service accounts.
  5. Select a service account from the list or use the search.
  6. Click Add role and select a role.
  7. Click Save.
  1. Find out the ID of the service account you want to assign the role to. To do this, get a list of available service accounts:

    yc iam service-account list
    

    Result:

    +----------------------+----------+------------------+
    |          ID          |   NAME   |   DESCRIPTION    |
    +----------------------+----------+------------------+
    | ajebqtreob2d******** | test-sa  | test-description |
    +----------------------+----------+------------------+
    
  2. Assign the role to the service account using its ID:

    yc resource-manager cloud add-access-binding my-cloud \
      --role <role> \
      --service-account-id <service_account_ID>
    

    Where:

    • --role: ID of the role you need to assign, e.g., resource-manager.clouds.owner.
    • --service-account-id: Service account ID. You can also use the --service-account-name parameter and specify the service account name instead of the ID.

If you do not have Terraform yet, install it and configure the Yandex Cloud provider.

To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), authenticate using the appropriate method.

  1. In the configuration file, describe the resources you want to create:

    Here is an example of the configuration file structure:

    resource "yandex_resourcemanager_cloud_iam_member" "editor" {
      cloud_id = "<cloud_ID>"
      role     = "<role>"
      member   = "serviceAccount:<service_account_ID>"
    }
    

    Where:

    • cloud_id: Cloud ID. This is a required setting.

    • role: Role. You can find the description of the roles in the Yandex Identity and Access Management documentation in the Yandex Cloud role reference. This is a required setting.

    • member: Subject getting the role. For a service account, specify serviceAccount:<service_account_ID>. This is a required setting.

      Subject designations

      To indicate a subject, use a combination of its type and unique ID, i.e., <subject_type>:<ID>. How you can designate a subject:

      Subject type

      Subject designation

      userAccount

      userAccount:<user_ID>

      serviceAccount

      serviceAccount:<service_account_ID>

      federatedUser

      federatedUser:<user_ID>

      group

      group:<group_ID>

      system

      system:allAuthenticatedUsers

      (All authenticated users group)

      system:allUsers

      (All users group)

      system:group:organization:<organization_ID>:users

      (All users in organization X group)

      system:group:federation:<federation_ID>:users

      (All users in federation N group)

      system:group:userpool:<pool_ID>:users

      (All users in userpool P group)

  2. Create the resources:

    1. In the terminal, navigate to the configuration file directory.

    2. Make sure the configuration is correct using this command:

      terraform validate
      

      If the configuration is valid, you will get this message:

      Success! The configuration is valid.
      
    3. Run this command:

      terraform plan
      

      You will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.

    4. Apply the configuration changes:

      terraform apply
      
    5. Type yes and press Enter to confirm the changes.

    This will assign access permissions for the cloud.

  1. Find out the ID of the service account you want to assign the role to. To do this, get a list of available service accounts:

    curl \
      --header "Authorization: Bearer <IAM_token>" \
      https://iam.api.cloud.yandex.net/iam/v1/serviceAccounts?folderId=<folder_ID>
    

    Result:

    {
     "serviceAccounts": [
      {
       "id": "ajebqtreob2d********",
       "folderId": "b1gvmob95yys********",
       "createdAt": "2018-10-18T13:42:40Z",
       "name": "test-sa",
       "description": "test-description"
      }
     ]
    }
    
  2. Assign the role for the cloud to the service account. In the subject property, specify the serviceAccount type and the service account ID. In the request URL, specify the cloud ID as the resource:

    curl \
      --request POST \
      --header 'Content-Type: application/json' \
      --header "Authorization: Bearer <IAM_token>" \
      --data '{
        "accessBindingDeltas": [
          {
            "action": "ADD",
            "accessBinding": {
              "roleId": "<role>",
              "subject": {
                "id": "<service_account_ID>",
                "type": "serviceAccount"
              }
            }
          }
        ]
      }' \
      https://resource-manager.api.cloud.yandex.net/resource-manager/v1/clouds/<cloud_ID>:updateAccessBindings
    

    Where:

    • roleId: Role.

    • subject: Subject getting the role.

      Subject designations

      To indicate a subject, use a combination of its type and unique ID in the subject.type and subject.id fields of the request. Possible combinations:

      subject.type

      subject.id

      userAccount

      <user_ID>

      serviceAccount

      <service_account_ID>

      federatedUser

      <user_ID>

      group

      <group_ID>

      system

      allAuthenticatedUsers

      (All authenticated users group)

      allUsers

      (All users group)

      group:organization:<organization_ID>:users

      (All users in organization X group)

      group:federation:<federation_ID>:users

      (All users in federation N group)

      group:userpool:<pool_ID>:users

      (All users in userpool P group)

What's nextWhat's next

  • Creating a metadata catalog
  • Setting up folder access permissions
  • Yandex Cloud resource hierarchy

Was the article helpful?

Previous
Managing access policies
Next
Getting a cloud ID
© 2026 Direct Cursus Technology L.L.C.