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

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

  • Назначить правила при создании кластера
  • Назначить правила для существующего кластера
  • Пример назначения правил доступа к запросам
  1. Пошаговые инструкции
  2. Правила доступа к объектам
  3. Назначение правил для запросов

Назначение правил доступа к запросам в Managed Service for Trino

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

Правила доступа к запросам определяют, какие действия пользователи могут совершать над SQL-запросами в кластере Managed Service for Trino.

Для каждой пары «пользователь–запрос» правила применяются следующим образом:

  • Правила проверяются в порядке их объявления. Применяется первое найденное правило, которое соответствует паре «пользователь–запрос».
  • Если ни одно из заданных правил не соответствует паре «пользователь–запрос», пользователю запрещаются любые действия над запросом.
  • Если не задано ни одно правило доступа к запросам, каждый пользователь может выполнять любые действия над всеми запросами.
  • Правила доступа к запросам применяются совместно с общими правилами доступа к объектам каталогов.

Важно

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

Назначить правила при создании кластераНазначить правила при создании кластера

Правила доступа к запросам можно назначить одновременно с созданием кластера Managed Service for Trino.

CLI
Terraform
gRPC API

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

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

Чтобы задать правила доступа к запросам:

  1. Создайте файл access_control.yaml и добавьте в него следующее содержимое:

    queries:
      # Правило 1
      - privileges: [<список_разрешений>]
        query_owners: [<список_владельцев_запросов>]
        groups: [<список_идентификаторов_групп>]
        users: [<список_идентификаторов_пользователей>]
        description: <описание_правила>
      # Правило 2
      - <Параметры_правила_2>
      ...
      # Правило N
      - <Параметры_правила_N>
    

    Где:

    • queries — список правил для запросов. Все параметры правила являются опциональными: privileges, query_owners, groups, users и description.

    • privileges — список разрешенных действий над запросами:

      • VIEW — просмотр информации о запросе.
      • KILL — отмена запроса.
      • EXECUTE — исполнение запроса.

      Если параметр privileges не указан, правило запрещает выполнение любых действий над запросами.

      Важно

      Нельзя указать разрешение EXECUTE, если в этом же правиле используется параметр query_owners.

    • query_owners — список идентификаторов владельцев запросов. Правило распространяется на запросы, владельцы которых перечислены в параметре query_owners. Если параметр не указан, правило распространяется на запросы всех пользователей.

    • groups — список идентификаторов групп, на которые распространяется правило. Если параметр groups не указан, правило распространяется на все группы пользователей.

    • users — список идентификаторов пользователей, на которых распространяется правило. Если параметр users не указан, правило распространяется на всех пользователей.

    • description — описание правила.

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

    yc managed-trino cluster create --help
    
  3. Выполните команду:

    yc managed-trino cluster create \
      ...
      --access-control-from-file access_control.yaml
    

    Доступные параметры кластера и их описания см. в инструкции.

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

  2. Добавьте в конфигурационный файл ресурс yandex_trino_access_control, содержащий список правил queries.

    resource "yandex_trino_cluster" "<имя_кластера>" {
      ...
    }
    
    resource "yandex_trino_access_control" "trino_access_control" {
      ...
      cluster_id  = yandex_trino_cluster.<имя_кластера>.id
      queries = [
        # Правило 1
        {
          privileges    = ["<список_разрешений>"]
          query_owners  = ["<список_владельцев_запросов>"]
          users         = ["<список_идентификаторов_пользователей>"]
          groups        = ["<список_идентификаторов_групп>"]
          description   = "<описание_правила>"
        },
        # Правило 2
        {
          ... 
        },
        ...
        # Правило N
        {
          ... 
        }
      ]
      ...
    }
    

    Где:

    • queries — список блоков правил для запросов. Все параметры правила являются опциональными: privileges, query_owners, groups, users и description.

    • privileges — список разрешенных действий над запросами:

      • VIEW — просмотр информации о запросе.
      • KILL — отмена запроса.
      • EXECUTE — исполнение запроса.

      Если параметр privileges не указан, правило запрещает выполнение любых действий над запросами.

      Важно

      Нельзя указать разрешение EXECUTE, если в этом же правиле используется параметр query_owners.

    • query_owners — список идентификаторов владельцев запросов. Правило распространяется на запросы, владельцы которых перечислены в параметре query_owners. Если параметр не указан, правило распространяется на запросы всех пользователей.

    • groups — список идентификаторов групп, на которые распространяется правило. Если параметр groups не указан, правило распространяется на все группы пользователей.

    • users — список идентификаторов пользователей, на которых распространяется правило. Если параметр users не указан, правило распространяется на всех пользователей.

    • description — описание правила.

  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

  3. Создайте файл body.json и добавьте в него следующее содержимое:

    {
      <Параметры_кластера>
      ...
      "trino": {
        "access_control": {
          "queries": [
            {
              "privileges": [
                "<список_разрешений>"
              ],
              "query_owners": [
                "<список_владельцев_запросов>"
              ],
              "users": [
                "<список_идентификаторов_пользователей>"
              ],
              "groups": [
                "<список_идентификаторов_групп>"
              ],
              "description": "<описание_правила>"
            },
            {
              <Блок_правила_2>
            },
            ...
            {
              <Блок_правила_N>
            }
          ]
        }
      }
    }
    

    Где:

    • access_control — конфигурация прав доступа в рамках кластера.

    • queries — список блоков правил для запросов. Все параметры правила являются опциональными: privileges, query_owners, groups, users и description.

    • privileges — список разрешенных действий над запросами:

      • VIEW — просмотр информации о запросе.
      • KILL — отмена запроса.
      • EXECUTE — исполнение запроса.

      Если параметр privileges не указан, правило запрещает выполнение любых действий над запросами.

      Важно

      Нельзя указать разрешение EXECUTE, если в этом же правиле используется параметр query_owners.

    • query_owners — список идентификаторов владельцев запросов. Правило распространяется на запросы, владельцы которых перечислены в параметре query_owners. Если параметр не указан, правило распространяется на запросы всех пользователей.

    • groups — список идентификаторов групп, на которые распространяется правило. Если параметр groups не указан, правило распространяется на все группы пользователей.

    • users — список идентификаторов пользователей, на которых распространяется правило. Если параметр users не указан, правило распространяется на всех пользователей.

    • description — описание правила.

    Доступные параметры кластера и их описания см. в инструкции.

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

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/trino/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ \
        trino.api.cloud.yandex.net:443 \
        yandex.cloud.trino.v1.ClusterService.Create \
        < body.json
    
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Назначить правила для существующего кластераНазначить правила для существующего кластера

Правила доступа к запросам можно назначить или обновить в уже существующем кластере Managed Service for Trino.

CLI
Terraform
gRPC API

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

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

Чтобы задать правила доступа к запросам:

  1. Если правила доступа еще не заданы, создайте файл access_control.yaml и добавьте в него следующее содержимое:

    queries:
      # Правило 1
      - privileges: [<список_разрешений>]
        query_owners: [<список_владельцев_запросов>]
        groups: [<список_идентификаторов_групп>]
        users: [<список_идентификаторов_пользователей>]
        description: <описание_правила>
      # Правило 2
      - <Параметры_правила_2>
      ...
      # Правило N
      - <Параметры_правила_N>
    

    Где:

    • queries — список правил для запросов. Все параметры правила являются опциональными: privileges, query_owners, groups, users и description.

    • privileges — список разрешенных действий над запросами:

      • VIEW — просмотр информации о запросе.
      • KILL — отмена запроса.
      • EXECUTE — исполнение запроса.

      Если параметр privileges не указан, правило запрещает выполнение любых действий над запросами.

      Важно

      Нельзя указать разрешение EXECUTE, если в этом же правиле используется параметр query_owners.

    • query_owners — список идентификаторов владельцев запросов. Правило распространяется на запросы, владельцы которых перечислены в параметре query_owners. Если параметр не указан, правило распространяется на запросы всех пользователей.

    • groups — список идентификаторов групп, на которые распространяется правило. Если параметр groups не указан, правило распространяется на все группы пользователей.

    • users — список идентификаторов пользователей, на которых распространяется правило. Если параметр users не указан, правило распространяется на всех пользователей.

    • description — описание правила.

  2. Если правила доступа уже заданы, откройте файл access_control.yaml и внесите в него изменения. Вы можете:

    • добавить новые правила;
    • изменить параметры существующих правил;
    • удалить ненужные правила.
  3. Выполните команду:

    yc managed-trino cluster set-access-control <имя_или_идентификатор_кластера> \
      --from-file access_control.yaml
    

    Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.

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

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

  2. Если правила доступа еще не заданы, добавьте ресурс yandex_trino_access_control, содержащий список правил queries.

    resource "yandex_trino_cluster" "<имя_кластера>" {
      ...
    }
    
    resource "yandex_trino_access_control" "trino_access_control" {
      ...
      cluster_id  = yandex_trino_cluster.<имя_кластера>.id
      queries = [
        # Правило 1
        {
          privileges    = ["<список_разрешений>"]
          query_owners  = ["<список_владельцев_запросов>"]
          users         = ["<список_идентификаторов_пользователей>"]
          groups        = ["<список_идентификаторов_групп>"]
          description   = "<описание_правила>"
        },
        # Правило 2
        {
          ... 
        },
        ...
        # Правило N
        {
          ... 
        }
      ]
      ...
    }
    

    Где:

    • queries — список блоков правил для запросов. Все параметры правила являются опциональными: privileges, query_owners, groups, users и description.

    • privileges — список разрешенных действий над запросами:

      • VIEW — просмотр информации о запросе.
      • KILL — отмена запроса.
      • EXECUTE — исполнение запроса.

      Если параметр privileges не указан, правило запрещает выполнение любых действий над запросами.

      Важно

      Нельзя указать разрешение EXECUTE, если в этом же правиле используется параметр query_owners.

    • query_owners — список идентификаторов владельцев запросов. Правило распространяется на запросы, владельцы которых перечислены в параметре query_owners. Если параметр не указан, правило распространяется на запросы всех пользователей.

    • groups — список идентификаторов групп, на которые распространяется правило. Если параметр groups не указан, правило распространяется на все группы пользователей.

    • users — список идентификаторов пользователей, на которых распространяется правило. Если параметр users не указан, правило распространяется на всех пользователей.

    • description — описание правила.

  3. Если правила доступа уже заданы, внесите правки в описание ресурса yandex_trino_access_control. Вы можете:

    • добавить новые правила;
    • изменить параметры существующих правил;
    • удалить ненужные правила.
  4. Проверьте корректность настроек.

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

  3. Если правила доступа еще не заданы, создайте файл body.json и добавьте в него следующее содержимое:

    {
      "cluster_id": "<идентификатор_кластера>",
      "update_mask": {
        "paths": [
          "trino.access_control.queries"
        ]
      },
      "trino": {
        "access_control": {
          "queries": [
            {
              "privileges": [
                "<список_разрешений>"
              ],
              "query_owners": [
                "<список_владельцев_запросов>"
              ],
              "users": [
                "<список_идентификаторов_пользователей>"
              ],
              "groups": [
                "<список_идентификаторов_групп>"
              ],
              "description": "<описание_правила>"
            },
            {
              <Блок_правила_2>
            },
            ...
            {
              <Блок_правила_N>
            }
          ]
        }
      }
    }
    

    Где:

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

      Идентификатор кластера можно получить со списком кластеров в каталоге.

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      Формат перечисления настроек
      "update_mask": {
        "paths": [
          "<настройка_1>",
          "<настройка_2>",
          ...
          "<настройка_N>"
        ]
      }
      

      Важно

      При изменении кластера все параметры изменяемого объекта, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask.

    • access_control — конфигурация прав доступа в рамках кластера.

    • queries — список блоков правил для запросов. Все параметры правила являются опциональными: privileges, query_owners, groups, users и description.

    • privileges — список разрешенных действий над запросами:

      • VIEW — просмотр информации о запросе.
      • KILL — отмена запроса.
      • EXECUTE — исполнение запроса.

      Если параметр privileges не указан, правило запрещает выполнение любых действий над запросами.

      Важно

      Нельзя указать разрешение EXECUTE, если в этом же правиле используется параметр query_owners.

    • query_owners — список идентификаторов владельцев запросов. Правило распространяется на запросы, владельцы которых перечислены в параметре query_owners. Если параметр не указан, правило распространяется на запросы всех пользователей.

    • groups — список идентификаторов групп, на которые распространяется правило. Если параметр groups не указан, правило распространяется на все группы пользователей.

    • users — список идентификаторов пользователей, на которых распространяется правило. Если параметр users не указан, правило распространяется на всех пользователей.

    • description — описание правила.

  4. Если правила уже заданы, откройте существующий файл body.json с правилами и внесите в него правки. Вы можете:

    • добавить новые правила;
    • изменить параметры существующих правил;
    • удалить ненужные правила.
  5. Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например с помощью gRPCurl:

    grpcurl \
      -format json \
      -import-path ~/cloudapi/ \
      -import-path ~/cloudapi/third_party/googleapis/ \
      -proto ~/cloudapi/yandex/cloud/trino/v1/cluster_service.proto \
      -rpc-header "Authorization: Bearer $IAM_TOKEN" \
      -d @ \
      trino.api.cloud.yandex.net:443 \
      yandex.cloud.trino.v1.ClusterService.Update \
      < body.json
    
  6. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Пример назначения правил доступа к запросамПример назначения правил доступа к запросам

Допустим, вам нужно настроить правила доступа к запросам:

  1. Разрешить пользователям, входящим в группу с идентификатором admins_group_id, выполнять любые действия над запросами.
  2. Разрешить пользователям из группы с идентификатором security_group_id просматривать и удалять запросы, владельцем которых является пользователь с идентификатором suspicious_user_id.
  3. Всем остальным пользователям разрешить только исполнять запросы.
CLI
Terraform
gRPC API

Файл access_control.yaml для такого набора правил выглядит так:

queries:
  - groups:
      - admins_group_id
    privileges:
      - VIEW
      - KILL
      - EXECUTE

  - groups: 
      - security_group_id
    query_owners:
      - suspicious_user_id
    privileges:
      - VIEW
      - KILL

  - privileges:
      - EXECUTE

Конфигурационный файл для такого набора правил выглядит так:

resource "yandex_trino_access_control" "trino_access_control" {
  ...
  cluster_id  = <идентификатор_кластера>
  queries = [
    {
      privileges    = ["VIEW", "KILL", "EXECUTE"]
      groups        = ["admins_group_id"]
    },
    {
      privileges    = ["VIEW", "KILL"]
      groups        = ["security_group_id"]
      query_owners  = ["suspicious_user_id"]
    },
    {
      privileges    = ["EXECUTE"]
    }
  ]
  ...
}

Файл body.json для такого набора правил выглядит так:

{
  "cluster_id": "<идентификатор_кластера>",
  "update_mask": {
    "paths": [
      "trino.access_control.queries"
    ]
  },
  "trino": {
    "access_control": {
      "queries": [
        {
          "privileges": [
            "VIEW",
            "KILL",
            "EXECUTE"              
          ],
          "groups": [
            "admins_group_id"
          ]
        },
        {
          "privileges": [
            "VIEW",
            "KILL"
          ],
          "query_owners": [
            "suspicious_user_id"
          ],
          "groups": [
            "security_group_id"
          ]
        },
        {
          "privileges": [
            "EXECUTE"
          ]
        }
      ]
    }
  }
}

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

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