Аутентификация Kerberos в Trino
Kerberos-аутентификация для сервиса Trino требует выполнения дополнительных действий, которые зависят от того, включен плагин Ranger Trino или нет. В данной статье рассматриваются оба случая.
Для настройки Kerberos-аутентификации для Trino следуйте шагам ниже:
-
Активируйте SSL для вашего кластера ADH.
-
Активируйте Kerberos для вашего кластера ADH.
-
Перейдите в настройки компонента Trino Coordinator и измените файл-параметр user-mapping.json, чтобы его содержимое было следующим:
{ "rules": [ { "pattern": "(.+)@(.*)" }, { "pattern": "^(.*?)/.*$" } ] } -
Настройте имперсонацию и права доступа.
-
В Ranger создайте пользователя для принципала Kerberos, который будет выполнять команды Trino CLI.
-
Добавьте этого пользователя в следующие политики Trino:
all - trinouser,all - catalog, schema, table, columnиall - queryid.
На странице настройки сервиса Trino в ADCM раскройте группу параметров access-control.properties и измените параметр rules_json_patter, чтобы он включал в себя настройки имперсонации и прав. Например, следующим образом:
{
"system": {
"impersonation": [
{
"user": "<user with permissions, like `trino`>",
"allow": {
"user": "<user who will run trino-cli>"
}
}
]
},
"catalogs": [
{
"role": "admin",
"catalog": "hive-adh",
"allow": "all"
},
{
"user": "trino",
"catalog": "iceberg-adh",
"allow": "all"
},
{
"user": "<user who will run trino-cli>",
"catalog": "iceberg-adh",
"allow": "all"
}
]
}
Проверьте корректность настройки с помощью запуска команды Trino CLI:
$ trino --execute 'select * from "hive-adh"."default"."solar_objects";'
Ожидаемым результатом является содержимое таблицы:
"1","Sun","1989100000","1392000" "2","Mercury","330","4879" "3","Venus","4867","12104" "4","Earth","5972","12742" "5","Mars","642","6780" "6","Jupiter","1898187","139822" "7","Saturn","568317","116464" "8","Uranus","86813","50724" "9","Neptune","102413","49244"