Назначение правил доступа к системным свойствам сессии в Managed Service for Trino
Правила доступа к системным свойствам сессии определяют, могут ли пользователи устанавливать те или иные системные свойства сессии в кластере Managed Service for Trino.
Важно
Установите правила для системных свойств сессии, чтобы избежать злоупотребления системными ресурсами со стороны пользователей.
Для каждой пары «пользователь–свойство» правила применяются следующим образом:
- Правила проверяются в порядке их объявления. Применяется первое найденное правило, которое соответствует паре «пользователь–свойство».
- Если ни одно из заданных правил не соответствует паре «пользователь–свойство», пользователю запрещается устанавливать это системное свойство сессии.
- Если не задано ни одно правило доступа к системным свойствам сессии, каждый пользователь может устанавливать любые системные свойства сессии.
- Правила доступа к системным свойствам сессии применяются совместно с общими правилами доступа к объектам каталогов.
Назначить правила при создании кластера
Правила доступа к системным свойствам сессии можно назначить одновременно с созданием кластера Managed Service for Trino.
Важно
Указанные в правилах имена свойств не проверяются на валидность. Ошибка в имени свойства приведет к некорректной работе правила.
-
В консоли управления
выберите каталог, в котором нужно создать кластер Managed Service for Trino. -
Перейдите в сервис Managed Service for Trino.
-
Нажмите кнопку Создать кластер и задайте параметры кластера.
-
В блоке Настройки доступа нажмите на значок
. -
В поле Системные свойства сессии нажмите кнопку Добавить правило.
-
В открывшемся окне задайте параметры правила:
-
(Опционально) В поле Комментарий введите описание правила.
-
(Опционально) В поле Пользователи выберите пользователей, на которых распространяется правило:
- Нажмите кнопку Добавить.
- В открывшемся списке выберите нужных пользователей. Чтобы найти пользователя, используйте строку поиска над списком.
- Чтобы удалить пользователя, выбранного по ошибке, повторно нажмите на него в списке.
Если не выбран ни один пользователь, правило распространяется на всех пользователей.
-
(Опционально) В поле Группы выберите группы пользователей, на которые распространяется правило:
- Нажмите кнопку Добавить.
- В открывшемся списке выберите нужные группы. Чтобы найти группу, используйте строку поиска над списком.
- Чтобы удалить группу, выбранную по ошибке, повторно нажмите на нее в списке.
Если не выбрана ни одна группа, правило распространяется на все группы пользователей.
-
В поле Allow укажите, разрешено ли пользователю устанавливать свойство:
No— запрещено,Yes— разрешено.
-
(Опционально) В поле Свойство сессии укажите, на какие свойства распространяется правило:
- Имя — выберите имена свойств.
- Имя (регулярное выражение) — введите регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
- Не задано — правило распространяется на все свойства.
-
-
При необходимости добавьте другие правила аналогичным образом.
-
Чтобы удалить правило, добавленное по ошибке, в строке этого правила нажмите на значок
. -
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы задать правила доступа к системным свойствам сессии:
-
Создайте файл
access_control.yamlи добавьте в него следующее содержимое:system_session_properties: # Правило 1 - allow: <право_установить_свойство> property: names: any: [<список_имен_свойств>] name_regexp: <регулярное_выражение> groups: [<список_идентификаторов_групп>] users: [<список_идентификаторов_пользователей>] description: <описание_правила> # Правило 2 - <Параметры_правила_2> ... # Правило N - <Параметры_правила_N>Где:
-
system_session_properties— список правил для системных свойств сессии. Каждое правило включает в себя обязательный параметрallow, а также опциональные параметры:property,groups,usersиdescription. -
allow— право установить свойство:YES— пользователю разрешено установить свойство.NO— пользователю запрещено установить свойство.
-
property— свойства, на которые распространяется правило. Если параметрpropertyне указан, правило распространяется на все свойства.names— список имен свойств.name_regexp— регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
Вы можете указать только один из параметров:
namesилиname_regexp.
-
groups— список идентификаторов групп, на которые распространяется правило. Если параметрgroupsне указан, правило распространяется на все группы пользователей. -
users— список идентификаторов пользователей, на которых распространяется правило. Если параметрusersне указан, правило распространяется на всех пользователей. -
description— описание правила.
-
-
Посмотрите описание команды CLI для создания кластера:
yc managed-trino cluster create --help -
Выполните команду:
yc managed-trino cluster create \ ... --access-control-from-file access_control.yamlДоступные параметры кластера и их описания см. в инструкции.
-
Создайте конфигурационный файл Terraform с планом инфраструктуры.
-
Добавьте в конфигурационный файл ресурс
yandex_trino_access_control, содержащий список правилsystem_session_properties.resource "yandex_trino_cluster" "<имя_кластера>" { ... } resource "yandex_trino_access_control" "trino_access_control" { ... cluster_id = yandex_trino_cluster.<имя_кластера>.id system_session_properties = [ # Правило 1 { allow = "<право_установить_свойство>" property = { names = ["<список_имен_свойств>"] name_regexp = "<регулярное_выражение>" } users = ["<список_идентификаторов_пользователей>"] groups = ["<список_идентификаторов_групп>"] description = "<описание_правила>" }, # Правило 2 { ... }, ... # Правило N { ... } ] ... }Где:
-
system_session_properties— список блоков правил для системных свойств сессии. Каждое правило включает в себя обязательный параметрallow, а также опциональные параметры:property,groups,usersиdescription. -
allow— право установить свойство:YES— пользователю разрешено установить свойство.NO— пользователю запрещено установить свойство.
-
property— свойства, на которые распространяется правило. Если блокpropertyне указан, правило распространяется на все свойства.names— список имен свойств.name_regexp— регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
Вы можете указать только один из параметров:
namesилиname_regexp.
-
groups— список идентификаторов групп, на которые распространяется правило. Если параметрgroupsне указан, правило распространяется на все группы пользователей. -
users— список идентификаторов пользователей, на которых распространяется правило. Если параметрusersне указан, правило распространяется на всех пользователей. -
description— описание правила.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ <Параметры_кластера> ... "trino": { "accessControl": { "systemSessionProperties": [ { "allow": "<право_установить_свойство>", "property": { "names": { "any": [ "<список_имен_свойств>" ] }, "nameRegexp": "<регулярное_выражение>" }, "users": [ "<список_идентификаторов_пользователей>" ], "groups": [ "<список_идентификаторов_групп>" ], "description": "<описание_правила>" }, { <Блок_правила_2> }, ... { <Блок_правила_N> } ] } } }Где:
-
accessControl— конфигурация прав доступа в рамках кластера. -
systemSessionProperties— список блоков правил для системных свойств сессии. Каждое правило включает в себя обязательный параметрallow, а также опциональные параметры:property,groups,usersиdescription. -
allow— право установить свойство:YES— пользователю разрешено установить свойство.NO— пользователю запрещено установить свойство.
-
property— свойства, на которые распространяется правило. Если блокpropertyне указан, правило распространяется на все свойства.names— список имен свойств.nameRegexp— регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
Блок
propertyдолжен содержать либо вложенный блокnames, либо параметрnameRegexp.
-
groups— список идентификаторов групп, на которые распространяется правило. Если параметрgroupsне указан, правило распространяется на все группы пользователей. -
users— список идентификаторов пользователей, на которых распространяется правило. Если параметрusersне указан, правило распространяется на всех пользователей. -
description— описание правила.
Доступные параметры кластера и их описания см. в инструкции.
-
-
Воспользуйтесь методом Cluster.Create и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/clusters' --data '@body.json' -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ <Параметры_кластера> ... "trino": { "access_control": { "system_session_properties": [ { "allow": "<право_установить_свойство>", "property": { "names": { "any": [ "<список_имен_свойств>" ] }, "name_regexp": "<регулярное_выражение>" }, "users": [ "<список_идентификаторов_пользователей>" ], "groups": [ "<список_идентификаторов_групп>" ], "description": "<описание_правила>" }, { <Блок_правила_2> }, ... { <Блок_правила_N> } ] } } }Где:
-
access_control— конфигурация прав доступа в рамках кластера. -
system_session_properties— список блоков правил для системных свойств сессии. Каждое правило включает в себя обязательный параметрallow, а также опциональные параметры:property,groups,usersиdescription. -
allow— право установить свойство:YES— пользователю разрешено установить свойство.NO— пользователю запрещено установить свойство.
-
property— свойства, на которые распространяется правило. Если блокpropertyне указан, правило распространяется на все свойства.names— список имен свойств.name_regexp— регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
Блок
propertyдолжен содержать либо вложенный блокnames, либо параметрname_regexp.
-
groups— список идентификаторов групп, на которые распространяется правило. Если параметрgroupsне указан, правило распространяется на все группы пользователей. -
users— список идентификаторов пользователей, на которых распространяется правило. Если параметрusersне указан, правило распространяется на всех пользователей. -
description— описание правила.
Доступные параметры кластера и их описания см. в инструкции.
-
-
Воспользуйтесь вызовом 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 -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Назначить правила для существующего кластера
Правила доступа к системным свойствам сессии можно назначить или обновить в уже существующем кластере Managed Service for Trino.
Важно
Указанные в правилах имена свойств не проверяются на валидность. Ошибка в имени свойства приведет к некорректной работе правила.
-
В консоли управления
перейдите в нужный каталог. -
Перейдите в сервис Managed Service for Trino.
-
Нажмите на имя нужного кластера.
-
Перейдите в блок Настройки доступа → Системные свойства сессии.
-
Чтобы добавить правило, нажмите кнопку Добавить правило и в открывшемся окне задайте параметры правила:
-
(Опционально) В поле Комментарий введите описание правила.
-
(Опционально) В поле Пользователи выберите пользователей, на которых распространяется правило:
- Нажмите кнопку Добавить.
- В открывшемся списке выберите нужных пользователей. Чтобы найти пользователя, используйте строку поиска над списком.
- Чтобы удалить пользователя, выбранного по ошибке, повторно нажмите на него в списке.
Если не выбран ни один пользователь, правило распространяется на всех пользователей.
-
(Опционально) В поле Группы выберите группы пользователей, на которые распространяется правило:
- Нажмите кнопку Добавить.
- В открывшемся списке выберите нужные группы. Чтобы найти группу, используйте строку поиска над списком.
- Чтобы удалить группу, выбранную по ошибке, повторно нажмите на нее в списке.
Если не выбрана ни одна группа, правило распространяется на все группы пользователей.
-
В поле Allow укажите, разрешено ли пользователю устанавливать свойство:
No— запрещено,Yes— разрешено.
-
(Опционально) В поле Свойство сессии укажите, на какие свойства распространяется правило:
- Имя — выберите имена свойств.
- Имя (регулярное выражение) — введите регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
- Не задано — правило распространяется на все свойства.
-
-
При необходимости добавьте другие правила аналогичным образом.
-
Чтобы отредактировать правило:
- В строке этого правила нажмите на значок
. - Измените параметры правила и нажмите кнопку Обновить.
- В строке этого правила нажмите на значок
-
Чтобы удалить ненужное правило, в строке этого правила нажмите на значок
. -
Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы задать правила доступа к системным свойствам сессии:
-
Если правила доступа еще не заданы, создайте файл
access_control.yamlи добавьте в него следующее содержимое:system_session_properties: # Правило 1 - allow: <право_установить_свойство> property: names: any: [<список_имен_свойств>] name_regexp: <регулярное_выражение> groups: [<список_идентификаторов_групп>] users: [<список_идентификаторов_пользователей>] description: <описание_правила> # Правило 2 - <Параметры_правила_2> ... # Правило N - <Параметры_правила_N>Где:
-
system_session_properties— список правил для системных свойств сессии. Каждое правило включает в себя обязательный параметрallow, а также опциональные параметры:property,groups,usersиdescription. -
allow— право установить свойство:YES— пользователю разрешено установить свойство.NO— пользователю запрещено установить свойство.
-
property— свойства, на которые распространяется правило. Если параметрpropertyне указан, правило распространяется на все свойства.names— список имен свойств.name_regexp— регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
Вы можете указать только один из параметров:
namesилиname_regexp.
-
groups— список идентификаторов групп, на которые распространяется правило. Если параметрgroupsне указан, правило распространяется на все группы пользователей. -
users— список идентификаторов пользователей, на которых распространяется правило. Если параметрusersне указан, правило распространяется на всех пользователей. -
description— описание правила.
-
-
Если правила доступа уже заданы, откройте файл
access_control.yamlи внесите в него изменения. Вы можете:- добавить новые правила;
- изменить параметры существующих правил;
- удалить ненужные правила.
-
Выполните команду:
yc managed-trino cluster set-access-control <имя_или_идентификатор_кластера> \ --from-file access_control.yamlИдентификатор и имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Если правила доступа еще не заданы, добавьте ресурс
yandex_trino_access_control, содержащий список правилsystem_session_properties.resource "yandex_trino_cluster" "<имя_кластера>" { ... } resource "yandex_trino_access_control" "trino_access_control" { ... cluster_id = yandex_trino_cluster.<имя_кластера>.id system_session_properties = [ # Правило 1 { allow = "<право_установить_свойство>" property = { names = ["<список_имен_свойств>"] name_regexp = "<регулярное_выражение>" } users = ["<список_идентификаторов_пользователей>"] groups = ["<список_идентификаторов_групп>"] description = "<описание_правила>" }, # Правило 2 { ... }, ... # Правило N { ... } ] ... }Где:
-
system_session_properties— список блоков правил для системных свойств сессии. Каждое правило включает в себя обязательный параметрallow, а также опциональные параметры:property,groups,usersиdescription. -
allow— право установить свойство:YES— пользователю разрешено установить свойство.NO— пользователю запрещено установить свойство.
-
property— свойства, на которые распространяется правило. Если блокpropertyне указан, правило распространяется на все свойства.names— список имен свойств.name_regexp— регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
Вы можете указать только один из параметров:
namesилиname_regexp.
-
groups— список идентификаторов групп, на которые распространяется правило. Если параметрgroupsне указан, правило распространяется на все группы пользователей. -
users— список идентификаторов пользователей, на которых распространяется правило. Если параметрusersне указан, правило распространяется на всех пользователей. -
description— описание правила.
-
-
Если правила доступа уже заданы, внесите правки в описание ресурса
yandex_trino_access_control. Вы можете:- добавить новые правила;
- изменить параметры существующих правил;
- удалить ненужные правила.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Если правила доступа еще не заданы, создайте файл
body.jsonи добавьте в него следующее содержимое:{ "updateMask": "trino.accessControl.systemSessionProperties", "trino": { "accessControl": { "systemSessionProperties": [ { "allow": "<право_установить_свойство>", "property": { "names": { "any": [ "<список_имен_свойств>" ] }, "nameRegexp": "<регулярное_выражение>" }, "users": [ "<список_идентификаторов_пользователей>" ], "groups": [ "<список_идентификаторов_групп>" ], "description": "<описание_правила>" }, { <Блок_правила_2> }, ... { <Блок_правила_N> } ] } } }Где:
-
updateMask— перечень изменяемых параметров в строку через запятую.Важно
При изменении кластера все параметры изменяемого объекта, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask. -
accessControl— конфигурация прав доступа в рамках кластера. -
systemSessionProperties— список блоков правил для системных свойств сессии. Каждое правило включает в себя обязательный параметрallow, а также опциональные параметры:property,groups,usersиdescription. -
allow— право установить свойство:YES— пользователю разрешено установить свойство.NO— пользователю запрещено установить свойство.
-
property— свойства, на которые распространяется правило. Если блокpropertyне указан, правило распространяется на все свойства.names— список имен свойств.nameRegexp— регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
Блок
propertyдолжен содержать либо вложенный блокnames, либо параметрnameRegexp.
-
groups— список идентификаторов групп, на которые распространяется правило. Если параметрgroupsне указан, правило распространяется на все группы пользователей. -
users— список идентификаторов пользователей, на которых распространяется правило. Если параметрusersне указан, правило распространяется на всех пользователей. -
description— описание правила.
-
-
Если правила уже заданы, откройте существующий файл
body.jsonс правилами и внесите в него правки. Вы можете:- добавить новые правила;
- изменить параметры существующих правил;
- удалить ненужные правила.
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/clusters/<идентификатор_кластера>' --data '@body.json'Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Если правила доступа еще не заданы, создайте файл
body.jsonи добавьте в него следующее содержимое:{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "trino.access_control.system_session_properties" ] }, "trino": { "access_control": { "system_session_properties": [ { "allow": "<право_установить_свойство>", "property": { "names": { "any": [ "<список_имен_свойств>" ] }, "name_regexp": "<регулярное_выражение>" }, "users": [ "<список_идентификаторов_пользователей>" ], "groups": [ "<список_идентификаторов_групп>" ], "description": "<описание_правила>" }, { <Блок_правила_2> }, ... { <Блок_правила_N> } ] } } }Где:
-
cluster_id— идентификатор кластера.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }Важно
При изменении кластера все параметры изменяемого объекта, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask. -
access_control— конфигурация прав доступа в рамках кластера. -
system_session_properties— список блоков правил для системных свойств сессии. Каждое правило включает в себя обязательный параметрallow, а также опциональные параметры:property,groups,usersиdescription. -
allow— право установить свойство:YES— пользователю разрешено установить свойство.NO— пользователю запрещено установить свойство.
-
property— свойства, на которые распространяется правило. Если блокpropertyне указан, правило распространяется на все свойства.names— список имен свойств.name_regexp— регулярное выражение. Правило распространяется на свойства, имена которых соответствуют регулярному выражению.
Блок
propertyдолжен содержать либо вложенный блокnames, либо параметрname_regexp.
-
groups— список идентификаторов групп, на которые распространяется правило. Если параметрgroupsне указан, правило распространяется на все группы пользователей. -
users— список идентификаторов пользователей, на которых распространяется правило. Если параметрusersне указан, правило распространяется на всех пользователей. -
description— описание правила.
-
-
Если правила уже заданы, откройте существующий файл
body.jsonс правилами и внесите в него правки. Вы можете:- добавить новые правила;
- изменить параметры существующих правил;
- удалить ненужные правила.
-
Воспользуйтесь вызовом 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 -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Пример назначения правил доступа к системным свойствам сессии
Допустим, вам нужно настроить правила доступа к системным свойствам сессии:
- Разрешить устанавливать любые свойства пользователям, входящим в группу с идентификатором
admins_group_id. - Разрешить пользователям из группы с идентификатором
analytics_group_idустанавливать свойства с именами видаquery_.*. - Всем остальным пользователям запретить устанавливать свойства.
Файл access_control.yaml для такого набора правил выглядит так:
system_session_properties:
- groups:
- admins_group_id
allow: YES
- groups:
- data_engineers_group_id
property:
name_regexp: "query_.*"
allow: YES
Конфигурационный файл для такого набора правил выглядит так:
resource "yandex_trino_access_control" "trino_access_control" {
...
cluster_id = <идентификатор_кластера>
system_session_properties = [
{
groups = ["admins_group_id"]
allow = "YES"
},
{
groups = ["data_engineers_group_id"]
property = {
name_regexp = "query_.*"
}
allow = "YES"
}
]
...
}
Файл body.json для такого набора правил выглядит так:
{
"updateMask": "trino.accessControl.systemSessionProperties",
"trino": {
"accessControl": {
"systemSessionProperties": [
{
"groups": [
"admins_group_id"
],
"allow": "YES"
},
{
"groups": [
"data_engineers_group_id"
],
"property": {
"nameRegexp": "query_.*"
},
"allow": "YES"
}
]
}
}
}
Файл body.json для такого набора правил выглядит так:
{
"cluster_id": "<идентификатор_кластера>",
"update_mask": {
"paths": [
"trino.access_control.system_session_properties"
]
},
"trino": {
"access_control": {
"system_session_properties": [
{
"groups": [
"admins_group_id"
],
"allow": "YES"
},
{
"groups": [
"data_engineers_group_id"
],
"property": {
"name_regexp": "query_.*"
},
"allow": "YES"
}
]
}
}
}