Yandex Cloud
Поиск
Связаться с намиПопробовать бесплатно
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Истории успеха
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex MPP Analytics for PostgreSQL
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
      • Расширение кластера
      • Изменение конфигурации кластера
      • Изменение настроек кластера
      • Остановка и запуск кластера
      • Управление резервными копиями
      • Управление доступом к кластеру
      • Удаление кластера
    • Подключение к внешнему файловому серверу (gpfdist)
    • Вспомогательные утилиты
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

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

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

Управление доступом к кластеру Yandex MPP Analytics for PostgreSQL

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

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

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

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

CLI
REST API
gRPC API

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

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

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

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

    yc managed-greenplum 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.cloud.yandex.net/managed-greenplum/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/greenplum/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_кластера>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.greenplum.v1.ClusterService.ListAccessBindings
    
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

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

CLI
REST API
gRPC API

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

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

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

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

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

    Где:

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

    • --subject — тип и идентификатор субъекта, которому назначается роль, в формате: <тип_субъекта>:<идентификатор_субъекта>.

      Например:

      • serviceAccount:aje6p030************,
      • userAccount:aje8tj79************,
      • system:allAuthenticatedUsers.

      Допустимые типы субъектов:

      • userAccount — аккаунт на Яндексе, добавленный в Yandex Cloud, или аккаунт из пула пользователей.

      • serviceAccount — сервисный аккаунт, созданный в Yandex Cloud.

      • federatedUser — аккаунт пользователя федерации удостоверений.

      • system — публичная группа пользователей.

        Допустимые значения идентификатора субъекта:

        • allAuthenticatedUsers — все пользователи, прошедшие аутентификацию.
        • allUsers — любой пользователь, прохождение аутентификации не требуется.
        • group:organization:<идентификатор_организации>:users — все пользователи указанной организации.
        • group:federation:<идентификатор_федерации>:users — все пользователи указанной федерации удостоверений.

      Подробнее о типах субъектов см. в разделе Субъект, которому назначается роль.

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

    yc managed-greenplum 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.cloud.yandex.net/managed-greenplum/v1/clusters/<идентификатор_кластера>:updateAccessBindings' \
      --data '{
                "access_binding_deltas": [
                  {
                    "action": "ADD",
                    "access_binding": {
                      "role_id": "<роль>",
                      "subject": {
                        "id": "<идентификатор_субъекта>",
                        "type": "<тип_субъекта>"
                      }
                    }
                  }
                ]
              }'
    

    Где:

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

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

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

      Допустимые типы субъектов:

      • userAccount — аккаунт на Яндексе, добавленный в Yandex Cloud, или аккаунт из пула пользователей.

      • serviceAccount — сервисный аккаунт, созданный в Yandex Cloud.

      • federatedUser — аккаунт пользователя федерации удостоверений.

      • system — публичная группа пользователей.

        Допустимые значения идентификатора субъекта:

        • allAuthenticatedUsers — все пользователи, прошедшие аутентификацию.
        • allUsers — любой пользователь, прохождение аутентификации не требуется.
        • group:organization:<идентификатор_организации>:users — все пользователи указанной организации.
        • group:federation:<идентификатор_федерации>:users — все пользователи указанной федерации удостоверений.

      Подробнее о типах субъектов см. в разделе Субъект, которому назначается роль.

  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/greenplum/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.cloud.yandex.net:443 \
      yandex.cloud.mdb.greenplum.v1.ClusterService.UpdateAccessBindings
    

    Где:

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

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

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

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

      Допустимые типы субъектов:

      • userAccount — аккаунт на Яндексе, добавленный в Yandex Cloud, или аккаунт из пула пользователей.

      • serviceAccount — сервисный аккаунт, созданный в Yandex Cloud.

      • federatedUser — аккаунт пользователя федерации удостоверений.

      • system — публичная группа пользователей.

        Допустимые значения идентификатора субъекта:

        • allAuthenticatedUsers — все пользователи, прошедшие аутентификацию.
        • allUsers — любой пользователь, прохождение аутентификации не требуется.
        • group:organization:<идентификатор_организации>:users — все пользователи указанной организации.
        • group:federation:<идентификатор_федерации>:users — все пользователи указанной федерации удостоверений.

      Подробнее о типах субъектов см. в разделе Субъект, которому назначается роль.

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

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

CLI
REST API
gRPC API

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

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

Внимание

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

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

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

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

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

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

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

    • subject — тип и идентификатор субъекта, которому назначается роль, в формате: <тип_субъекта>:<идентификатор_субъекта>.

      Например:

      • serviceAccount:aje6p030************,
      • userAccount:aje8tj79************,
      • system:allAuthenticatedUsers.

      Допустимые типы субъектов:

      • userAccount — аккаунт на Яндексе, добавленный в Yandex Cloud, или аккаунт из пула пользователей.

      • serviceAccount — сервисный аккаунт, созданный в Yandex Cloud.

      • federatedUser — аккаунт пользователя федерации удостоверений.

      • system — публичная группа пользователей.

        Допустимые значения идентификатора субъекта:

        • allAuthenticatedUsers — все пользователи, прошедшие аутентификацию.
        • allUsers — любой пользователь, прохождение аутентификации не требуется.
        • group:organization:<идентификатор_организации>:users — все пользователи указанной организации.
        • group:federation:<идентификатор_федерации>:users — все пользователи указанной федерации удостоверений.

      Подробнее о типах субъектов см. в разделе Субъект, которому назначается роль.

Внимание

Метод 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.cloud.yandex.net/managed-greenplum/v1/clusters/<идентификатор_кластера>:setAccessBindings' \
      --data '{
                "accessBindings": [
                  {
                    "roleId": "<роль>",
                    "subject": {
                      "id": "<идентификатор_субъекта_1>",
                      "type": "<тип_субъекта>"
                    }
                  },
                  {
                    "roleId": "<роль>",
                    "subject": {
                      "id": "<идентификатор_субъекта_2>",
                      "type": "<тип_субъекта>"
                    }
                  },
                  ...
                  {
                    "roleId": "<роль>",
                    "subject": {
                      "id": "<идентификатор_субъекта_N>",
                      "type": "<тип_субъекта>"
                    }
                  }
                ]
              }'
    

    Где:

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

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

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

      Допустимые типы субъектов:

      • userAccount — аккаунт на Яндексе, добавленный в Yandex Cloud, или аккаунт из пула пользователей.

      • serviceAccount — сервисный аккаунт, созданный в Yandex Cloud.

      • federatedUser — аккаунт пользователя федерации удостоверений.

      • system — публичная группа пользователей.

        Допустимые значения идентификатора субъекта:

        • allAuthenticatedUsers — все пользователи, прошедшие аутентификацию.
        • allUsers — любой пользователь, прохождение аутентификации не требуется.
        • group:organization:<идентификатор_организации>:users — все пользователи указанной организации.
        • group:federation:<идентификатор_федерации>:users — все пользователи указанной федерации удостоверений.

      Подробнее о типах субъектов см. в разделе Субъект, которому назначается роль.

  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/greenplum/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.cloud.yandex.net:443 \
      yandex.cloud.mdb.greenplum.v1.ClusterService.SetAccessBindings
    

    Где:

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

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

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

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

      Допустимые типы субъектов:

      • userAccount — аккаунт на Яндексе, добавленный в Yandex Cloud, или аккаунт из пула пользователей.

      • serviceAccount — сервисный аккаунт, созданный в Yandex Cloud.

      • federatedUser — аккаунт пользователя федерации удостоверений.

      • system — публичная группа пользователей.

        Допустимые значения идентификатора субъекта:

        • allAuthenticatedUsers — все пользователи, прошедшие аутентификацию.
        • allUsers — любой пользователь, прохождение аутентификации не требуется.
        • group:organization:<идентификатор_организации>:users — все пользователи указанной организации.
        • group:federation:<идентификатор_федерации>:users — все пользователи указанной федерации удостоверений.

      Подробнее о типах субъектов см. в разделе Субъект, которому назначается роль.

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

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

CLI
REST API
gRPC API

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

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

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

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

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

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

    Где:

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

    • --subject — тип и идентификатор субъекта, которому назначена роль, в формате: <тип_субъекта>:<идентификатор_субъекта>.

      Например:

      • serviceAccount:aje6p030************,
      • userAccount:aje8tj79************,
      • system:allAuthenticatedUsers.

      Допустимые типы субъектов:

      • userAccount — аккаунт на Яндексе, добавленный в Yandex Cloud, или аккаунт из пула пользователей.

      • serviceAccount — сервисный аккаунт, созданный в Yandex Cloud.

      • federatedUser — аккаунт пользователя федерации удостоверений.

      • system — публичная группа пользователей.

        Допустимые значения идентификатора субъекта:

        • allAuthenticatedUsers — все пользователи, прошедшие аутентификацию.
        • allUsers — любой пользователь, прохождение аутентификации не требуется.
        • group:organization:<идентификатор_организации>:users — все пользователи указанной организации.
        • group:federation:<идентификатор_федерации>:users — все пользователи указанной федерации удостоверений.

      Подробнее о типах субъектов см. в разделе Субъект, которому назначается роль.

  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.cloud.yandex.net/managed-greenplum/v1/clusters/<идентификатор_кластера>:updateAccessBindings' \
      --data '{
                "access_binding_deltas": [
                  {
                    "action": "REMOVE",
                    "access_binding": {
                      "role_id": "<роль>",
                      "subject": {
                        "id": "<идентификатор_субъекта>",
                        "type": "<тип_субъекта>"
                      }
                    }
                  }
                ]
              }'
    

    Где:

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

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

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

      Допустимые типы субъектов:

      • userAccount — аккаунт на Яндексе, добавленный в Yandex Cloud, или аккаунт из пула пользователей.

      • serviceAccount — сервисный аккаунт, созданный в Yandex Cloud.

      • federatedUser — аккаунт пользователя федерации удостоверений.

      • system — публичная группа пользователей.

        Допустимые значения идентификатора субъекта:

        • allAuthenticatedUsers — все пользователи, прошедшие аутентификацию.
        • allUsers — любой пользователь, прохождение аутентификации не требуется.
        • group:organization:<идентификатор_организации>:users — все пользователи указанной организации.
        • group:federation:<идентификатор_федерации>:users — все пользователи указанной федерации удостоверений.

      Подробнее о типах субъектов см. в разделе Субъект, которому назначается роль.

  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/greenplum/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.cloud.yandex.net:443 \
      yandex.cloud.mdb.greenplum.v1.ClusterService.UpdateAccessBindings
    

    Где:

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

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

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

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

      Допустимые типы субъектов:

      • userAccount — аккаунт на Яндексе, добавленный в Yandex Cloud, или аккаунт из пула пользователей.

      • serviceAccount — сервисный аккаунт, созданный в Yandex Cloud.

      • federatedUser — аккаунт пользователя федерации удостоверений.

      • system — публичная группа пользователей.

        Допустимые значения идентификатора субъекта:

        • allAuthenticatedUsers — все пользователи, прошедшие аутентификацию.
        • allUsers — любой пользователь, прохождение аутентификации не требуется.
        • group:organization:<идентификатор_организации>:users — все пользователи указанной организации.
        • group:federation:<идентификатор_федерации>:users — все пользователи указанной федерации удостоверений.

      Подробнее о типах субъектов см. в разделе Субъект, которому назначается роль.

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

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

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

Чтобы сервисный аккаунт мог просматривать информацию обо всех кластерах Yandex MPP Analytics for PostgreSQL в каталоге, но изменять ресурсы только конкретного кластера, выдайте ему роль managed-greenplum.viewer на каталог и роль managed-greenplum.editor на этот кластер:

CLI
REST API
gRPC API
  1. Назначьте роль на каталог:

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

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

    yc managed-greenplum cluster list-access-bindings <имя_или_идентификатор_кластера>
    
  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.cloud.yandex.net/resource-manager/v1/folders/<идентификатор_каталога>:updateAccessBindings' \
      --data '{
                "access_binding_deltas": [
                  {
                    "action": "ADD",
                    "access_binding": {
                      "role_id": "managed-greenplum.viewer",
                      "subject": {
                        "id": "<идентификатор_сервисного_аккаунта>",
                        "type": "serviceAccount"
                      }
                    }
                  }
                ]
              }'
    

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

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

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

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

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

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

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --header "Content-Type: application/json" \
      --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/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-greenplum.viewer",
                  "subject": {
                    "id": "<идентификатор_ссервисного_аккаунта>",
                    "type": "serviceAccount"
                  }
                }
              }
            ]
          }' \
      resource-manager.api.cloud.yandex.net: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/greenplum/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_кластера>",
            "access_binding_deltas": [
              {
                "action": "ADD",
                "access_binding": {
                  "role_id": "managed-greenplum.editor",
                  "subject": {
                    "id": "<идентификатор_ссервисного_аккаунта>",
                    "type": "serviceAccount"
                  }
                }
              }
            ]
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.greenplum.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.cloud.yandex.net: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/greenplum/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d '{
            "resource_id": "<идентификатор_кластера>"
          }' \
      mdb.api.cloud.yandex.net:443 \
      yandex.cloud.mdb.greenplum.v1.ClusterService.ListAccessBindings
    

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

Предыдущая
Управление резервными копиями
Следующая
Удаление кластера
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»