Ajout de l'emprunt d'identité Trino à un cluster
Vous pouvez configurer une grappe Hadoop pour permettre à l'utilisateur ou au principal que Trino exécute d'emprunter l'identité des utilisateurs qui se connectent à Trino.
Lors de l'utilisation de l'authentification du magasin de métadonnées Kerberos avec emprunt d'identité, le principal spécifié par la propriété hive.metastore.client.principal
doit être activé pour emprunter l'identité de l'utilisateur Trino courant. L'emprunt d'identité dans Hadoop est configuré dans le fichier core-site.xml
.
-
Pour utiliser l'emprunt d'identité, la grappe Hadoop doit être configurée pour permettre à l'utilisateur ou au principal que Trino exécute d'emprunter l'identité des utilisateurs qui se connectent à Trino. L'emprunt d'identité dans Hadoop est configuré dans le fichier
core-site.xml
:hadoop.proxyuser.trino.groups = * hadoop.proxyuser.trino.hosts = *
-
Ajoutez les propriétés d'emprunt d'identité Trino à la propriété
connectors.to.add
:- Accédez à Apache Ambari.
- Dans la barre d'outils latérale, sous Services, sélectionnez Trino.
- Sélectionnez Configs.
-
Dans la section Connecteurs, ajoutez ce qui suit à
connectors.to.add
:{'hive':['connector.name=hive','hive.metastore.thrift.impersonation.enabled=true', 'hive.hdfs.impersonation.enabled=true', 'hive.metastore.uri=thrift://server-mn1.oraclevcn.com:9083', 'hive.metastore.authentication.type=KERBEROS', 'hive.metastore.service.principal=hive/_HOST@BDSCLOUDSERVICE.ORACLE.COM', 'hive.metastore.client.principal=trino/_HOST@BDSCLOUDSERVICE.ORACLE.COM', 'hive.metastore.client.keytab=/etc/security/keytabs/trino.service.keytab', 'hive.hdfs.authentication.type=KERBEROS', 'hive.hdfs.trino.principal=trino/_HOST@BDSCLOUDSERVICE.ORACLE.COM', 'hive.hdfs.trino.keytab=/etc/security/keytabs/trino.service.keytab', 'hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml',]}
Le fichier de connecteur Hive est alimenté avec les configurations ci-dessus dans
/etc/trino/conf/catalog/hive.properties
.Note
Un contrôle d'accès au système applique l'autorisation au niveau global, avant toute autorisation au niveau du connecteur. Avec ce contrôle d'accès par défaut, toutes les opérations sont autorisées, à l'exception de l'emprunt d'identité d'utilisateur et du déclenchement de l'arrêt Graceful. Pour plus d'informations, voir Contrôle de l'accès au système.
-
Ajoutez allow-all à
access-control.properties
:# pwd /etc/trino/conf # cat access-control.properties access-control.name=allow-all
Note
Pour le service de mégadonnées antérieur à la version 3.023, vous devez créer/etc/trino/conf/access-control.properties
. -
Vérifiez les journaux de démarrage du serveur Trino. Par exemple :
2024-02-08T12:58:40.908Z INFO main io.trino.security.AccessControlManager -- Loading system access control etc/access-control.properties -- 2024-02-08T12:58:40.909Z INFO main io.trino.security.AccessControlManager -- Loaded system access control allow-all -- [...] 2024-02-08T12:58:41.201Z INFO main io.trino.server.Server ======== SERVER STARTED ========
-
Confirmez que l'emprunt d'identité fonctionne correctement. Par exemple :
[root@server-un1 conf]# /usr/lib/trino/bin/trino-cli --server https://server-un1.oraclevcn.com:7778 --krb5-principal trino/server-un1.oraclevcn.com@BDSCLOUDSERVICE.ORACLE.COM --krb5-keytab-path /etc/security/keytabs/trino.service.keytab --krb5-remote-service-name trino --truststore-path=/etc/security/serverKeys/truststore.jks --user <username> --session-user <username> --debug trino> show catalogs; Catalog --------- hive system tpch (3 rows) Query 20240208_125940_00002_vdzw6, FINISHED, 1 node https://server-un1.oraclevcn.com:7778/ui/query.html?20240208_125940_00002_vdzw6 Splits: 19 total, 19 done (100.00%) CPU Time: 0.0s total, 0 rows/s, 0B/s, 33% active Per Node: 0.1 parallelism, 0 rows/s, 0B/s Parallelism: 0.1 Peak Memory: 0B 0.37 [0 rows, 0B] [0 rows/s, 0B/s]