Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Router
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Managed Service for YDB
    • SpeechKit
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • Container Registry
    • Managed Service for Prometheus®
    • Message Queue
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Cloud Apps
    • Yandex AI Studio
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Yandex Cloud Video
    • Stackland
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • DataSphere
    • Vision OCR
    • Translate
    • SmartCaptcha
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Managed Service for GitLab
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • IoT Core
    • Serverless Containers
    • Cloud Notification Service
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
  • Кейсы
  • Документация
  • Блог
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for ClickHouse®
KZ
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
      • Изменение настроек кластера
      • Техническое обслуживание
      • Получение патч-версии ClickHouse®
      • Обновление версии ClickHouse®
      • Остановка и запуск кластера
      • Управление резервными копиями
      • Управление доступом к кластеру
      • Удаление кластера
  • Управление доступом
  • Инспекции и рекомендации
  • Правила тарификации
  • Метрики Yandex Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Получить список ролей, назначенных на кластер
  • Назначить роль
  • Назначить несколько ролей
  • Отозвать роль
  • Примеры
  • Добавить сервисному аккаунту доступ к управлению кластером
  1. Пошаговые инструкции
  2. Кластеры
  3. Управление доступом к кластеру

Управление доступом к кластеру Managed Service for ClickHouse®

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 30 октября 2026 г.
Открыть в Markdown
  • Получить список ролей, назначенных на кластер
  • Назначить роль
  • Назначить несколько ролей
  • Отозвать роль
  • Примеры
    • Добавить сервисному аккаунту доступ к управлению кластером

Вы можете предоставить пользователю или сервисному аккаунту роль для доступа к конкретному кластеру.

Таким образом, вы можете гранулярно назначать разные роли на конкретные кластеры для разных пользователей и сервисных аккаунтов.

Получить список ролей, назначенных на кластерПолучить список ролей, назначенных на кластер

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите в сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера.
  3. Выберите вкладку Права доступа.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Получите список кластеров в каталоге по умолчанию, выполнив команду:

    yc managed-clickhouse cluster list
    
  2. Получите список ролей, назначенных на кластер, выполнив команду:

    yc managed-clickhouse cluster list-access-bindings <имя_или_идентификатор_кластера>
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.ListAccessBindings и выполните запрос, например, с помощью cURL:

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>:listAccessBindings'
    
  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.ListAccessBindings и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_кластера>"
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.clickhouse.v1.ClusterService.ListAccessBindings
    
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Назначить рольНазначить роль

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите в сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера.
  3. Выберите вкладку Права доступа и нажмите кнопку Назначить роли.
  4. Введите идентификатор аккаунта или электронную почту пользователя, к которой привязан аккаунт.
  5. Нажмите кнопку Добавить роль и выберите нужную роль из списка или воспользуйтесь поиском.
  6. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для назначения роли на кластер:

    yc managed-clickhouse cluster add-access-binding --help
    
  2. Назначьте роль, выполнив команду:

    yc managed-clickhouse cluster add-access-binding <имя_или_идентификатор_кластера> \
      --role <роль> \
      --subject <тип_субъекта>:<идентификатор_субъекта>
    

    Где:

    • --role — назначаемая роль, например managed-clickhouse.editor.

    • --subject — обозначение субъекта, которому назначается роль.

      Например:

      • serviceAccount:aje6p030************,
      • userAccount:aje8tj79************,
      • system:allAuthenticatedUsers.
      Обозначения субъектов

      Для обозначения субъекта используется параметр --subject со значением в формате <тип_субъекта>:<идентификатор>. Для некоторых типов субъектов в Yandex Cloud CLI вместо --subject доступны отдельные параметры, в которых достаточно указать имя или идентификатор субъекта без типа. Возможные обозначения субъектов и соответствующие параметры CLI:

      Тип субъекта

      Обозначение субъекта

      Параметр Yandex Cloud CLI

      userAccount

      userAccount:<идентификатор_пользователя>

      --user-account-id или --user-yandex-login

      serviceAccount

      serviceAccount:<идентификатор_сервисного_аккаунта>

      --service-account-id или --service-account-name

      federatedUser

      federatedUser:<идентификатор_пользователя>

      --user-account-id

      group

      group:<идентификатор_группы>

      --group-members

      system

      system:allAuthenticatedUsers

      (группа All authenticated users)

      --all-authenticated-users

      system:allUsers

      (группа All users)

      —

      system:group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      --organization-users

      system:group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      --federation-users

      system:group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

      —

  3. Проверьте список ролей, назначенных на кластер, выполнив команду:

    yc managed-clickhouse cluster list-access-bindings <имя_или_идентификатор_кластера>
    
  1. Откройте актуальный конфигурационный файл с описанием кластера Managed Service for ClickHouse®.

    Как создать такой файл, описано в разделе Создание кластера ClickHouse®.

  2. Добавьте описание ресурса:

    resource "yandex_mdb_clickhouse_cluster_iam_binding" "<локальное_имя_ресурса>" {
      cluster_id = "<идентификатор_кластера>"
      role       = "<роль>"
      members    = ["<тип_субъекта>:<идентификатор_субъекта>"]
    }
    

    Где:

    • cluster_id — идентификатор кластера.

    • role — назначаемая роль, например managed-clickhouse.editor.

    • members — список обозначений субъектов, которым назначается роль.

      Например:

      • serviceAccount:${yandex_iam_service_account.mch_sa.id},
      • userAccount:ajerq94vab34********,
      • system:allAuthenticatedUsers.
      Обозначения субъектов

      Для обозначения субъекта используется комбинация типа и уникального идентификатора — <тип_субъекта>:<идентификатор>. Возможные обозначения субъектов:

      Тип субъекта

      Обозначение субъекта

      userAccount

      userAccount:<идентификатор_пользователя>

      serviceAccount

      serviceAccount:<идентификатор_сервисного_аккаунта>

      federatedUser

      federatedUser:<идентификатор_пользователя>

      group

      group:<идентификатор_группы>

      system

      system:allAuthenticatedUsers

      (группа All authenticated users)

      system:allUsers

      (группа All users)

      system:group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      system:group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      system:group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

  3. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Подробнее в документации провайдера Terraform.

  5. Проверьте список ролей, назначенных на кластер, выполнив команду CLI:

    yc managed-clickhouse cluster list-access-bindings <имя_или_идентификатор_кластера>
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.UpdateAccessBindings и выполните запрос, например, с помощью cURL:

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>:updateAccessBindings' \
      --data '{
                "accessBindingDeltas": [
                  {
                    "action": "ADD",
                    "accessBinding": {
                      "roleId": "<роль>",
                      "subject": {
                        "id": "<идентификатор_субъекта>",
                        "type": "<тип_субъекта>"
                      }
                    }
                  }
                ]
              }'
    

    Где:

    • accessBindingDeltas.roleId — назначаемая роль, например managed-clickhouse.editor.

    • accessBindingDeltas.subject.id — идентификатор субъекта, которому назначается роль.

    • accessBindingDeltas.subject.type — тип субъекта, которому назначается роль.

      Обозначения субъектов

      Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса subject.type и subject.id. Возможные комбинации:

      subject.type

      subject.id

      userAccount

      <идентификатор_пользователя>

      serviceAccount

      <идентификатор_сервисного_аккаунта>

      federatedUser

      <идентификатор_пользователя>

      group

      <идентификатор_группы>

      system

      allAuthenticatedUsers

      (группа All authenticated users)

      allUsers

      (группа All users)

      group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.UpdateAccessBindings и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_кластера>",
            "access_binding_deltas": [
              {
                "action": "ADD",
                "access_binding": {
                  "role_id": "<роль>",
                  "subject": {
                    "id": "<идентификатор_субъекта>",
                    "type": "<тип_субъекта>"
                  }
                }
              }
            ]
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.clickhouse.v1.ClusterService.UpdateAccessBindings
    

    Где:

    • resource_id — идентификатор кластера.

    • access_binding_deltas.roleId — назначаемая роль, например managed-clickhouse.editor.

    • access_binding_deltas.subject.id — идентификатор субъекта, которому назначается роль.

    • access_binding_deltas.subject.type — тип субъекта, которому назначается роль.

      Обозначения субъектов

      Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса subject.type и subject.id. Возможные комбинации:

      subject.type

      subject.id

      userAccount

      <идентификатор_пользователя>

      serviceAccount

      <идентификатор_сервисного_аккаунта>

      federatedUser

      <идентификатор_пользователя>

      group

      <идентификатор_группы>

      system

      allAuthenticatedUsers

      (группа All authenticated users)

      allUsers

      (группа All users)

      group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Назначить несколько ролейНазначить несколько ролей

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите в сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера.
  3. Выберите вкладку Права доступа и нажмите кнопку Назначить роли.
  4. Введите идентификатор аккаунта или электронную почту пользователя, к которой привязан аккаунт.
  5. Нажмите кнопку Добавить роль и выберите нужную роль из списка или воспользуйтесь поиском.
  6. Повторите действие для других ролей.
  7. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

Внимание

Команда set-access-bindings удаляет все назначенные на кластер роли и задает новые.

  1. Посмотрите список ролей, назначенных на кластер, выполнив команду:

    yc managed-clickhouse cluster list-access-bindings <имя_или_идентификатор_кластера>
    
  2. Посмотрите описание команды CLI для назначения ролей на кластер:

    yc managed-clickhouse cluster set-access-bindings --help
    
  3. Назначьте роли, выполнив команду:

    yc managed-clickhouse cluster set-access-bindings <имя_или_идентификатор_кластера> \
      --access-binding role=<роль>,subject=<тип_субъекта>:<идентификатор_субъекта_1> \
      --access-binding role=<роль>,subject=<тип_субъекта>:<идентификатор_субъекта_2>
    

    Где --access-binding — назначает роль субъекту. Вы можете назначить несколько ролей одновременно, описав каждую в отдельном параметре --access-binding.

    • role — назначаемая роль, например managed-clickhouse.editor. Если вы хотите настроить подключение к кластеру через сервисный аккаунт, дополнительно назначьте роль iam.serviceAccounts.user.

    • subject — обозначение субъекта, которому назначается роль.

      Например:

      • serviceAccount:aje6p030************,
      • userAccount:aje8tj79************,
      • system:allAuthenticatedUsers.
      Обозначения субъектов

      Для обозначения субъекта используется параметр --subject со значением в формате <тип_субъекта>:<идентификатор>. Для некоторых типов субъектов в Yandex Cloud CLI вместо --subject доступны отдельные параметры, в которых достаточно указать имя или идентификатор субъекта без типа. Возможные обозначения субъектов и соответствующие параметры CLI:

      Тип субъекта

      Обозначение субъекта

      Параметр Yandex Cloud CLI

      userAccount

      userAccount:<идентификатор_пользователя>

      --user-account-id или --user-yandex-login

      serviceAccount

      serviceAccount:<идентификатор_сервисного_аккаунта>

      --service-account-id или --service-account-name

      federatedUser

      federatedUser:<идентификатор_пользователя>

      --user-account-id

      group

      group:<идентификатор_группы>

      --group-members

      system

      system:allAuthenticatedUsers

      (группа All authenticated users)

      --all-authenticated-users

      system:allUsers

      (группа All users)

      —

      system:group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      --organization-users

      system:group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      --federation-users

      system:group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

      —

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    Как создать такой файл, описано в разделе Создание кластера.

  2. Добавьте описание ресурсов:

    resource "yandex_mdb_clickhouse_cluster_iam_binding" "<локальное_имя_ресурса_1>" {
      cluster_id = "<идентификатор_кластера>"
      role       = "<роль_1>"
      members    = ["<тип_субъекта>:<идентификатор_субъекта>"]
    }
    
    resource "yandex_mdb_clickhouse_cluster_iam_binding" "<локальное_имя_ресурса_2>" {
      cluster_id = "<идентификатор_кластера>"
      role       = "<роль_2>"
      members    = ["<тип_субъекта>:<идентификатор_субъекта>"]
    }
    

    Где:

    • cluster_id — идентификатор кластера.

    • role — назначаемая роль, например managed-clickhouse.editor. Если вы хотите настроить подключение к кластеру через сервисный аккаунт, дополнительно назначьте роль iam.serviceAccounts.user.

    • members — список обозначений субъектов, которым назначается роль.

      Например:

      • serviceAccount:${yandex_iam_service_account.mch_sa.id},
      • userAccount:ajerq94vab34********,
      • system:allAuthenticatedUsers.
      Обозначения субъектов

      Для обозначения субъекта используется комбинация типа и уникального идентификатора — <тип_субъекта>:<идентификатор>. Возможные обозначения субъектов:

      Тип субъекта

      Обозначение субъекта

      userAccount

      userAccount:<идентификатор_пользователя>

      serviceAccount

      serviceAccount:<идентификатор_сервисного_аккаунта>

      federatedUser

      federatedUser:<идентификатор_пользователя>

      group

      group:<идентификатор_группы>

      system

      system:allAuthenticatedUsers

      (группа All authenticated users)

      system:allUsers

      (группа All users)

      system:group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      system:group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      system:group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

  3. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Подробнее в документации провайдера Terraform.

  5. Проверьте список ролей, назначенных на кластер, выполнив команду CLI:

    yc managed-clickhouse cluster list-access-bindings <имя_или_идентификатор_кластера>
    

Внимание

Метод setAccessBindings перезаписывает права доступа к ресурсу. Все текущие роли на ресурс будут удалены.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.SetAccessBindings и выполните запрос, например, с помощью cURL:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>:setAccessBindings' \
      --data '{
                "accessBindings": [
                  {
                    "roleId": "<роль>",
                    "subject": {
                      "id": "<идентификатор_субъекта_1>",
                      "type": "<тип_субъекта>"
                    }
                  },
                  {
                    "roleId": "<роль>",
                    "subject": {
                      "id": "<идентификатор_субъекта_2>",
                      "type": "<тип_субъекта>"
                    }
                  },
                  ...
                  {
                    "roleId": "<роль>",
                    "subject": {
                      "id": "<идентификатор_субъекта_N>",
                      "type": "<тип_субъекта>"
                    }
                  }
                ]
              }'
    

    Где:

    • accessBindings.roleId — назначаемая роль, например managed-clickhouse.editor.

    • accessBindings.subject.id — идентификатор субъекта, которому назначается роль.

    • accessBindings.subject.type — тип субъекта, которому назначается роль.

      Обозначения субъектов

      Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса subject.type и subject.id. Возможные комбинации:

      subject.type

      subject.id

      userAccount

      <идентификатор_пользователя>

      serviceAccount

      <идентификатор_сервисного_аккаунта>

      federatedUser

      <идентификатор_пользователя>

      group

      <идентификатор_группы>

      system

      allAuthenticatedUsers

      (группа All authenticated users)

      allUsers

      (группа All users)

      group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Внимание

Вызов ClusterService.SetAccessBindings полностью перезаписывает права доступа к ресурсу. Все текущие роли на ресурс будут удалены.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.SetAccessBindings и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_кластера>",
            "accessBindings": [
              {
                "roleId": "<роль>",
                "subject": {
                  "id": "<идентификатор_субъекта_1>",
                  "type": "<тип_субъекта>"
                }
              },
              {
                "roleId": "<роль>",
                "subject": {
                  "id": "<идентификатор_субъекта_2>",
                  "type": "<тип_субъекта>"
                }
              },
              ...
              {
                "roleId": "<роль>",
                "subject": {
                  "id": "<идентификатор_субъекта_N>",
                  "type": "<тип_субъекта>"
                }
              }
            ]
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.clickhouse.v1.ClusterService.SetAccessBindings
    

    Где:

    • resource_id — идентификатор кластера.

    • accessBindings.roleId — назначаемая роль, например managed-clickhouse.editor.

    • accessBindings.subject.id — идентификатор субъекта, которому назначается роль.

    • accessBindings.subject.type — тип субъекта, которому назначается роль.

      Обозначения субъектов

      Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса subject.type и subject.id. Возможные комбинации:

      subject.type

      subject.id

      userAccount

      <идентификатор_пользователя>

      serviceAccount

      <идентификатор_сервисного_аккаунта>

      federatedUser

      <идентификатор_пользователя>

      group

      <идентификатор_группы>

      system

      allAuthenticatedUsers

      (группа All authenticated users)

      allUsers

      (группа All users)

      group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Отозвать рольОтозвать роль

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите в сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера.
  3. Выберите вкладку Права доступа.
  4. В строке с нужным аккаунтом нажмите на значок и выберите Изменить роли.
  5. В списке ролей нажмите на значок рядом с ролью, которую вы хотите отозвать.
  6. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите список ролей, назначенных на кластер, выполнив команду:

    yc managed-clickhouse cluster list-access-bindings <имя_или_идентификатор_кластера>
    
  2. Посмотрите описание команды CLI для отзыва роли на кластер:

    yc managed-clickhouse cluster remove-access-binding --help
    
  3. Отзовите роль, выполнив команду:

    yc managed-clickhouse cluster remove-access-binding <имя_или_идентификатор_кластера> \
      --role <роль> \
      --subject <тип_субъекта>:<идентификатор_субъекта>
    

    Где:

    • --role — отзываемая роль, например managed-clickhouse.editor.

    • --subject — обозначение субъекта, у которого отзывается роль.

      Например:

      • serviceAccount:aje6p030************,
      • userAccount:aje8tj79************,
      • system:allAuthenticatedUsers.
      Обозначения субъектов

      Для обозначения субъекта используется параметр --subject со значением в формате <тип_субъекта>:<идентификатор>. Для некоторых типов субъектов в Yandex Cloud CLI вместо --subject доступны отдельные параметры, в которых достаточно указать имя или идентификатор субъекта без типа. Возможные обозначения субъектов и соответствующие параметры CLI:

      Тип субъекта

      Обозначение субъекта

      Параметр Yandex Cloud CLI

      userAccount

      userAccount:<идентификатор_пользователя>

      --user-account-id или --user-yandex-login

      serviceAccount

      serviceAccount:<идентификатор_сервисного_аккаунта>

      --service-account-id или --service-account-name

      federatedUser

      federatedUser:<идентификатор_пользователя>

      --user-account-id

      group

      group:<идентификатор_группы>

      --group-members

      system

      system:allAuthenticatedUsers

      (группа All authenticated users)

      --all-authenticated-users

      system:allUsers

      (группа All users)

      —

      system:group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      --organization-users

      system:group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      --federation-users

      system:group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

      —

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    Как создать такой файл, описано в разделе Создание кластера.

  2. Найдите описание ресурса с ролью, которую вы хотите отозвать, и удалите его:

    resource "yandex_mdb_clickhouse_cluster_iam_binding" "<локальное_имя_ресурса>" {
      cluster_id = "<идентификатор_кластера>"
      role       = "<роль>"
      members    = ["<тип_субъекта>:<идентификатор_субъекта>"]
    }
    
  3. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Подробнее в документации провайдера Terraform.

  5. Проверьте список ролей, назначенных на кластер, выполнив команду CLI:

    yc managed-clickhouse cluster list-access-bindings <имя_или_идентификатор_кластера>
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.UpdateAccessBindings и выполните запрос, например, с помощью cURL:

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>:updateAccessBindings' \
      --data '{
                "accessBindingDeltas": [
                  {
                    "action": "REMOVE",
                    "accessBinding": {
                      "roleId": "<роль>",
                      "subject": {
                        "id": "<идентификатор_субъекта>",
                        "type": "<тип_субъекта>"
                      }
                    }
                  }
                ]
              }'
    

    Где:

    • accessBindingDeltas.roleId — отзываемая роль, например managed-clickhouse.editor.

    • accessBindingDeltas.subject.id — идентификатор субъекта, у которого отзывается роль.

    • accessBindingDeltas.subject.type — тип субъекта, у которого отзывается роль.

      Обозначения субъектов

      Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса subject.type и subject.id. Возможные комбинации:

      subject.type

      subject.id

      userAccount

      <идентификатор_пользователя>

      serviceAccount

      <идентификатор_сервисного_аккаунта>

      federatedUser

      <идентификатор_пользователя>

      group

      <идентификатор_группы>

      system

      allAuthenticatedUsers

      (группа All authenticated users)

      allUsers

      (группа All users)

      group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.UpdateAccessBindings и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_кластера>",
            "access_binding_deltas": [
              {
                "action": "REMOVE",
                "access_binding": {
                  "role_id": "<роль>",
                  "subject": {
                    "id": "<идентификатор_субъекта>",
                    "type": "<тип_субъекта>"
                  }
                }
              }
            ]
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.clickhouse.v1.ClusterService.UpdateAccessBindings
    

    Где:

    • resource_id — идентификатор кластера.

    • access_binding_deltas.roleId — отзываемая роль, например managed-clickhouse.editor.

    • access_binding_deltas.subject.id — идентификатор субъекта, у которого отзывается роль.

    • access_binding_deltas.subject.type — тип субъекта, у которого отзывается роль.

      Обозначения субъектов

      Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса subject.type и subject.id. Возможные комбинации:

      subject.type

      subject.id

      userAccount

      <идентификатор_пользователя>

      serviceAccount

      <идентификатор_сервисного_аккаунта>

      federatedUser

      <идентификатор_пользователя>

      group

      <идентификатор_группы>

      system

      allAuthenticatedUsers

      (группа All authenticated users)

      allUsers

      (группа All users)

      group:organization:<идентификатор_организации>:users

      (группа All users in organization X)

      group:federation:<идентификатор_федерации>:users

      (группа All users in federation N)

      group:userpool:<идентификатор_пула>:users

      (группа All users in userpool P)

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

ПримерыПримеры

Добавить сервисному аккаунту доступ к управлению кластеромДобавить сервисному аккаунту доступ к управлению кластером

Чтобы сервисный аккаунт мог просматривать информацию обо всех кластерах Managed Service for ClickHouse® в каталоге, но изменять ресурсы только конкретного кластера, выдайте ему роль managed-clickhouse.viewer на каталог и роль managed-clickhouse.editor на этот кластер:

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на вкладку Права доступа.
  2. Нажмите кнопку Настроить доступ.
  3. В открывшемся окне выберите раздел Пользовательские аккаунты.
  4. Выберите пользователя из списка или воспользуйтесь поиском по пользователям.
  5. Нажмите кнопку Добавить роль и выберите роль managed-clickhouse.viewer.
  6. Нажмите кнопку Сохранить.
  7. Перейдите в сервис Managed Service for ClickHouse.
  8. Нажмите на имя нужного кластера.
  9. Выберите вкладку Права доступа и нажмите кнопку Назначить роли.
  10. Введите идентификатор сервисного аккаунта.
  11. Нажмите кнопку Добавить роль и выберите роль managed-clickhouse.editor.
  12. Нажмите кнопку Сохранить.
  1. Назначьте роль на каталог:

    yc resource-manager folder add-access-binding <имя_или_идентификатор_каталога> \
      --role managed-clickhouse.viewer \
      --subject=serviceAccount:<идентификатор_сервисного_аккаунта>
    
  2. Назначьте роли на кластер:

    yc managed-clickhouse cluster add-access-binding <имя_или_идентификатор_кластера> \
      --access-binding role=managed-clickhouse.editor,subject=serviceAccount:<идентификатор_сервисного_аккаунта>
    
  3. Проверьте список ролей, назначенных на кластер:

    yc managed-clickhouse cluster list-access-bindings <имя_или_идентификатор_кластера>
    
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    Как создать такой файл, описано в разделе Создание кластера.

  2. Добавьте описание ресурсов:

    resource "yandex_resourcemanager_folder_iam_member" "mch-viewer-account-iam" {
      folder_id   = "<идентификатор_каталога>"
      role        = "managed-clickhouse.viewer"
      member      = "serviceAccount:<идентификатор_сервисного_аккаунта>"
    }
    
    resource "yandex_mdb_clickhouse_cluster_iam_binding" "mch-cluster-api-editor" {
      cluster_id = "<идентификатор_кластера>"
      role       = "managed-clickhouse.editor"
      members    = ["serviceAccount:<идентификатор_сервисного_аккаунта>"]
    }
    
  3. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Назначьте роль на каталог:

    curl \
      --request POST \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://resource-manager.api.yandexcloud.kz/resource-manager/v1/folders/<идентификатор_каталога>:updateAccessBindings' \
      --data '{
                "accessBindingDeltas": [
                  {
                    "action": "ADD",
                    "accessBinding": {
                      "roleId": "managed-clickhouse.viewer",
                      "subject": {
                        "id": "<идентификатор_сервисного_аккаунта>",
                        "type": "serviceAccount"
                      }
                    }
                  }
                ]
              }'
    

    Где accessBindingDeltas.subject.id — идентификатор сервисного аккаунта, которому назначается роль.

  3. Воспользуйтесь методом Cluster.UpdateAccessBindings и выполните запрос, например, с помощью cURL:

    curl \
      --request PATCH \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>:updateAccessBindings' \
      --data '{
                "accessBindingDeltas": [
                  {
                    "action": "ADD",
                    "accessBinding": {
                      "roleId": "managed-clickhouse.editor",
                      "subject": {
                        "id": "<идентификатор_сервисного_аккаунта>",
                        "type": "serviceAccount"
                      }
                    }
                  }
                ]
              }'
    

    Где accessBindingDeltas.subject.id — идентификатор сервисного аккаунта, которому назначается роль.

  4. Проверьте список ролей, назначенных на каталог:

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://resource-manager.api.yandexcloud.kz/resource-manager/v1/folders/<идентификатор_каталога>:listAccessBindings'
    
  5. Проверьте список ролей, назначенных на кластер:

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>:listAccessBindings'
    
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Назначьте роль на каталог:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/resourcemanager/v1/folder_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_каталога>",
            "access_binding_deltas": [
              {
                "action": "ADD",
                "access_binding": {
                  "role_id": "managed-clickhouse.viewer",
                  "subject": {
                    "id": "<идентификатор_сервисного_аккаунта>",
                    "type": "serviceAccount"
                  }
                }
              }
            ]
          }' \
      resource-manager.api.yandexcloud.kz:443 \
      yandex.cloud.resourcemanager.v1.FolderService.UpdateAccessBindings
    

    Где access_binding_deltas.subject.id — идентификатор сервисного аккаунта, которому назначается роль.

  4. Назначьте роль на кластер:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_кластера>",
            "access_binding_deltas": [
              {
                "action": "ADD",
                "access_binding": {
                  "role_id": "managed-clickhouse.editor",
                  "subject": {
                    "id": "<идентификатор_сервисного_аккаунта>",
                    "type": "serviceAccount"
                  }
                }
              }
            ]
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.clickhouse.v1.ClusterService.UpdateAccessBindings
    

    Где access_binding_deltas.subject.id — идентификатор сервисного аккаунта, которому назначается роль.

  5. Проверьте список ролей, назначенных на каталог:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/resourcemanager/v1/folder_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_каталога>"
          }' \
      resource-manager.api.yandexcloud.kz:443 \
      yandex.cloud.resourcemanager.v1.FolderService.ListAccessBindings
    
  6. Проверьте список ролей, назначенных на кластер:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_кластера>"
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.clickhouse.v1.ClusterService.ListAccessBindings
    

Была ли статья полезна?

Предыдущая
Управление резервными копиями
Следующая
Удаление кластера
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»