Cette rubrique explique comment configurer la confiance mutuelle inter-realm pour Kerberos afin d'autoriser l'accès entre différents clusters Kerberos.
Procédure
Cette rubrique illustre la configuration de la confiance mutuelle inter-realm à travers un exemple où Cluster-A doit accéder à un service hébergé sur Cluster-B. Une fois la configuration terminée, Cluster-A peut accéder aux services de Cluster-B en obtenant un ticket d'octroi de ticket (TGT) auprès de son propre centre de distribution de clés (KDC). La procédure décrite établit une confiance unidirectionnelle : Cluster-B ne peut pas accéder aux services de Cluster-A. Pour activer une confiance mutuelle inter-realm bidirectionnelle, répétez la procédure en inversant les rôles des clusters.
Étape 1 : Préparation
Pour Cluster-A et Cluster-B, accédez à la page de configuration du service Kerberos. Dans le fichier krb5.conf, récupérez les paramètres kdc_hosts et realm. Cet exemple utilise les informations de cluster suivantes :
-
Informations sur Cluster-A :
nom d'hôte : master-1-1.1234.cn-hangzhou.emr.aliyuncs.com
realm : EMR.1234.COM
-
Informations sur Cluster-B :
nom d'hôte : master-1-1.6789.cn-hangzhou.emr.aliyuncs.com
realm : EMR.6789.COM
Étape 2 : Ajout du principal d'authentification inter-realm
Connectez-vous au nœud master-1-1 de Cluster-A via SSH.
-
En tant qu'utilisateur root, exécutez la commande suivante.
kadmin.local -q "addprinc -pw 123456 krbtgt/EMR.6789.COM@EMR.1234.COM"Description des paramètres :
123456: Mot de passe initial. Vous pouvez spécifier un mot de passe personnalisé.EMR.1234.COM: Realm de Cluster-A.EMR.6789.COM: Realm de Cluster-B.
Connectez-vous au nœud master-1-1 de Cluster-B et répétez l'étape précédente pour ajouter le principal d'authentification inter-realm. Veillez à utiliser le même mot de passe et à inverser l'ordre des realms dans la commande.
Étape 3 : Configuration de krb5.conf
Connectez-vous à chaque nœud de Cluster-A via SSH et modifiez le fichier de configuration /etc/krb5.conf. Aucun redémarrage du service n'est nécessaire.
-
[realms]
EMR.C-BE49B6BBAEEA****.COM = { kdc = 192.168.xx.xx:88 admin_server = 192.168.xx.xx:749 } -
[domain_realm]
.1234.cn-hangzhou.emr.aliyuncs.com = EMR.1234.COM .6789.cn-hangzhou.emr.aliyuncs.com = EMR.6789.COM -
[capaths]
EMR.1234.COM = { EMR.6789.COM = . } EMR.6789.COM = { EMR.1234.COM = . }
Pour exécuter une tâche sur Cluster-A qui accède à Cluster-B, vous devez également redémarrer le service YARN sur Cluster-B.
Étape 4 : Accès aux services sur Cluster-B
Vous pouvez désormais utiliser un ticket Kerberos obtenu depuis Cluster-A pour accéder à un service sur Cluster-B.
-
Créez un principal de test et générez un ticket.
kadmin.local -q "addprinc -pw 123456 test" kinit test -
Accédez au service HDFS sur Cluster-B.
hdfs dfs -ls hdfs://master-1-1.6789.cn-hangzhou.emr.aliyuncs.com:9000/