Didacticiel : configuration d'une approbation inter-domaines avec un domaine Active Directory - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Didacticiel : configuration d'une approbation inter-domaines avec un domaine Active Directory

Lorsque vous configurez une approbation entre domaines, vous autorisez les principaux (généralement les utilisateurs) d'un domaine Kerberos différent à s'authentifier auprès des composants d'application du cluster. EMR Le centre de distribution de clés dédié au cluster (KDC) établit une relation de confiance avec un autre KDC en utilisant un principe inter-domaines qui existe dans les deux domaines. KDCs Le nom et le mot de passe du principal correspondent exactement.

Une confiance entre domaines nécessite qu'ils KDCs puissent se joindre les uns aux autres via le réseau et résoudre les noms de domaine de chacun. Les étapes permettant d'établir une relation de confiance entre domaines avec un contrôleur de domaine Microsoft AD exécuté en tant qu'EC2instance sont fournies ci-dessous, ainsi qu'un exemple de configuration réseau fournissant la connectivité et la résolution de nom de domaine requises. Toute configuration réseau autorisant le trafic réseau requis entre les deux KDCs est acceptable.

Facultativement, après avoir établi une confiance entre domaines avec Active Directory à l'aide d'un KDC cluster, vous pouvez créer un autre cluster en utilisant une configuration de sécurité différente pour référencer le cluster KDC sur le premier cluster en tant que cluster externeKDC. Pour un exemple de configuration de sécurité et d'installation de cluster, consultez Cluster externe KDC avec confiance inter-domaines Active Directory.

Pour plus d'informations sur le EMR support d'Amazon pour KerberosKDC, ainsi que pour des liens vers la documentation de MIT Kerberos, consultez. Utiliser Kerberos pour l'authentification auprès d'Amazon EMR

Important

Amazon EMR ne prend pas en charge les trusts entre domaines avec AWS Directory Service for Microsoft Active Directory.

Étape 1 : Configuration du VPC sous-réseau et

Étape 2 : Lancer et installer le contrôleur de domaine Active Directory

Étape 3 : ajouter des comptes au domaine pour le EMR cluster

Étape 4 : Configurer une approbation entrante sur le contrôleur de domaine Active Directory

Étape 5 : utiliser un jeu d'DHCPoptions pour spécifier le contrôleur de domaine Active Directory en tant que VPC DNS serveur

Étape 6 : Lancer un cluster Kerberisé EMR

Étape 7 : créer des HDFS utilisateurs et définir des autorisations sur le cluster pour les comptes Active Directory

Étape 1 : Configuration du VPC sous-réseau et

Les étapes suivantes montrent comment créer un sous-réseau VPC et afin que le sous-réseau dédié au cluster KDC puisse accéder au contrôleur de domaine Active Directory et résoudre son nom de domaine. Au cours de ces étapes, la résolution des noms de domaine est assurée en faisant référence au contrôleur de domaine Active Directory en tant que serveur de noms de domaine dans le DHCP jeu d'options. Pour de plus amples informations, veuillez consulter Étape 5 : utiliser un jeu d'DHCPoptions pour spécifier le contrôleur de domaine Active Directory en tant que VPC DNS serveur.

Le contrôleur de domaine Active Directory KDC et le contrôleur de domaine Active Directory doivent être en mesure de résoudre les noms de domaine de l'autre. Cela permet EMR à Amazon de joindre des ordinateurs au domaine et de configurer automatiquement les comptes et SSH paramètres Linux correspondants sur les instances de cluster.

Si Amazon ne EMR parvient pas à résoudre le nom de domaine, vous pouvez faire référence à l'approbation à l'aide de l'adresse IP du contrôleur de domaine Active Directory. Cependant, vous devez ajouter manuellement des comptes Linux, ajouter les principaux correspondants au cluster dédié et configurerKDC. SSH

Pour configurer le VPC sous-réseau et
  1. Créez un Amazon VPC avec un seul sous-réseau public. Pour plus d'informations, consultez l'étape 1 : créer le VPC dans le guide de VPC démarrage Amazon.

    Important

    Lorsque vous utilisez un contrôleur de domaine Microsoft Active Directory, choisissez un CIDR bloc pour le EMR cluster afin que toutes les IPv4 adresses comportent moins de neuf caractères (par exemple, 10.0.0.0/16). Cela est dû au fait que les DNS noms des ordinateurs du cluster sont utilisés lorsque les ordinateurs rejoignent le répertoire Active Directory. AWS attribue des DNSnoms d'hôtes en fonction de l'IPv4adresse, de telle sorte que les adresses IP plus longues peuvent se traduire par DNS des noms de plus de 15 caractères. Active Directory a une limite de 15 caractères pour l'enregistrement des noms d'ordinateurs joints et tronque les noms plus longs, ce qui peut provoquer des erreurs imprévisibles.

  2. Supprimez le jeu d'DHCPoptions par défaut attribué auVPC. Pour plus d'informations, voir Modifier une option VPC pour n'utiliser aucune DHCP option. Plus tard, vous en ajouterez un nouveau qui spécifie le contrôleur de domaine Active Directory comme DNS serveur.

  3. Vérifiez que le DNS support est activéVPC, c'est-à-dire que les DNS noms d'hôtes et la DNS résolution sont tous deux activés. Ils sont activés par défaut. Pour plus d'informations, consultez la section Mettre à jour le DNS support pour votre VPC.

  4. Vérifiez qu'une passerelle Internet VPC est connectée, ce qui est le cas par défaut. Pour de plus amples informations, veuillez consulter Création et attachement d'une passerelle Internet.

    Note

    Une passerelle Internet est utilisée dans cet exemple car vous établissez un nouveau contrôleur de domaine pour leVPC. Il peut cependant arriver qu'aucune passerelle Internet ne soit requise pour votre application. La seule exigence est que le responsable du cluster KDC puisse accéder au contrôleur de domaine Active Directory.

  5. Créez une table de routage personnalisée, ajoutez une route qui mène à la passerelle Internet, puis attachez-la à votre sous-réseau. Pour plus d'informations, consultez Création d'une table de routage personnalisée.

  6. Lorsque vous lancez l'EC2instance du contrôleur de domaine, celle-ci doit avoir une IPv4 adresse publique statique pour que vous puissiez vous y connecterRDP. La méthode la plus simple consiste à configurer votre sous-réseau pour attribuer automatiquement des adresses publiquesIPv4. Ce n'est pas le paramètre par défaut lorsqu'un sous-réseau est créé. Pour plus d'informations, consultez la section Modification de l'attribut d'IPv4adressage public de votre sous-réseau. Vous avez aussi la possibilité d'attribuer l'adresse lorsque vous lancez l'instance. Pour plus d'informations, consultez Attribuer une IPv4 adresse publique lors du lancement de l'instance.

  7. Lorsque vous avez terminé, notez votre sous-réseau VPC IDs and. Vous les utiliserez ultérieurement lorsque vous lancerez le contrôleur de domaine Active Directory et le cluster.

Étape 2 : Lancer et installer le contrôleur de domaine Active Directory

  1. Lancez une EC2 instance basée sur Microsoft Windows Server 2016 BaseAMI. Nous vous recommandons le type d'instance m4.xlarge ou plus. Pour plus d'informations, consultez la section Lancement d'une AWS Marketplace instance dans le guide de EC2 l'utilisateur Amazon.

  2. Notez l'ID de groupe du groupe de sécurité associé à l'EC2instance. Vous en avez besoin pour Étape 6 : Lancer un cluster Kerberisé EMR. Nous utilisons sg-012xrlmdomain345. Vous pouvez également spécifier différents groupes de sécurité pour le EMR cluster et cette instance qui autorise le trafic entre eux. Pour plus d'informations, consultez les groupes EC2 de sécurité Amazon pour les instances Linux dans le guide de EC2 l'utilisateur Amazon.

  3. Connectez-vous à l'EC2instance à l'aide deRDP. Pour plus d'informations, consultez la section Connexion à votre instance Windows dans le guide de EC2 l'utilisateur Amazon.

  4. Démarrez le Gestionnaire de serveurs pour installer et configurer le rôle des services de domaine Active Directory sur le serveur. Configurez le serveur comme contrôleur de domaine et attribuez un nom de domaine (l'exemple que nous utilisons ici est ad.domain.com). Notez le nom de domaine car vous en aurez besoin ultérieurement lorsque vous créerez la configuration EMR de sécurité et le cluster. Si vous configurez Active Directory pour la première fois, vous pouvez suivre les instructions indiquées dans Comment configurer Active Directory (AD) dans Windows Server 2016.

    L'instance redémarre une fois que vous avez terminé.

Étape 3 : ajouter des comptes au domaine pour le EMR cluster

RDPau contrôleur de domaine Active Directory pour créer des comptes dans Active Directory Users and Computers pour chaque utilisateur du cluster. Pour plus d'informations, consultez la section Création d'un compte d'utilisateur dans Utilisateurs et ordinateurs Active Directory sur le site Microsoft Learn. Notez le nom de connexion de chaque utilisateur. Vous en aurez besoin ultérieurement lorsque vous configurez le cluster.

En outre, créez un compte avec des privilèges suffisants pour joindre des ordinateurs au domaine. Vous spécifiez ce compte lorsque vous créez un cluster. Amazon l'EMRutilise pour joindre des instances de cluster au domaine. Vous spécifiez ce compte et son mot de passe Étape 6 : Lancer un cluster Kerberisé EMR. Pour déléguer des privilèges de jointure d'ordinateur au compte, nous vous recommandons de créer un groupe avec des privilèges de jointure, puis d'affecter l'utilisateur au groupe. Pour plus d'informations, consultez Délégation des privilèges de jonction d'annuaire dans le Guide d'administration AWS Directory Service .

Étape 4 : Configurer une approbation entrante sur le contrôleur de domaine Active Directory

Les exemples de commandes ci-dessous créent une approbation dans Active Directory, qui est une approbation de domaine unidirectionnelle, entrante et non transitive avec le domaine dédié au cluster. KDC L'exemple que nous utilisons pour le domaine du cluster est EC2.INTERNAL. Remplacez le KDC-FQDN avec le DNS nom public répertorié pour le nœud EMR principal Amazon hébergeant leKDC. Le paramètre passwordt spécifie le mot de passe du principal inter-domaines, que vous spécifiez en même temps que le domaine du cluster lorsque vous créez un cluster. Le nom de domaine est dérivé du nom de domaine par défaut dans us-east-1 pour le cluster. Le Domain est le domaine Active Directory dans lequel vous créez la stratégie d'approbation qui est en minuscules par convention. L'exemple utilise ad.domain.com

Ouvrez l'invite de commande Windows avec des privilèges d'administrateur et entrez les commandes suivantes pour créer la relation d'approbation sur le contrôleur de domaine Active Directory :

C:\Users\Administrator> ksetup /addkdc EC2.INTERNAL KDC-FQDN C:\Users\Administrator> netdom trust EC2.INTERNAL /Domain:ad.domain.com /add /realm /passwordt:MyVeryStrongPassword C:\Users\Administrator> ksetup /SetEncTypeAttr EC2.INTERNAL AES256-CTS-HMAC-SHA1-96

Étape 5 : utiliser un jeu d'DHCPoptions pour spécifier le contrôleur de domaine Active Directory en tant que VPC DNS serveur

Maintenant que le contrôleur de domaine Active Directory est configuré, vous devez le configurer VPC pour l'utiliser comme serveur de noms de domaine pour la résolution de noms au sein de votreVPC. Pour ce faire, joignez un ensemble DHCP d'options. Indiquez le nom de domaine comme nom de domaine de votre cluster (par exemple, ec2.internal si votre cluster se trouve dans la région us-est-1 ou region.compute.internal pour les autres régions). Pour les serveurs de noms de domaine, vous devez spécifier l'adresse IP du contrôleur de domaine Active Directory (qui doit être accessible depuis le cluster) comme première entrée, suivie de AmazonProvidedDNS(par exemple, xx.xx.xx.xx, AmazonProvided DNS). Pour plus d'informations, consultez la section Modification des ensembles d'DHCPoptions.

Étape 6 : Lancer un cluster Kerberisé EMR

  1. Dans AmazonEMR, créez une configuration de sécurité qui spécifie le contrôleur de domaine Active Directory que vous avez créé lors des étapes précédentes. Un exemple de commande est présenté ci-dessous. Remplacez le domaine, ad.domain.com, par le nom du domaine que vous avez spécifié dans Étape 2 : Lancer et installer le contrôleur de domaine Active Directory.

    aws emr create-security-configuration --name MyKerberosConfig \ --security-configuration '{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24, "CrossRealmTrustConfiguration": { "Realm": "AD.DOMAIN.COM", "Domain": "ad.domain.com", "AdminServer": "ad.domain.com", "KdcServer": "ad.domain.com" } } } } }'
  2. Créez le cluster avec les attributs suivants :

    • Utilisez l’option --security-configuration pour spécifier la configuration de sécurité que vous avez créée. Nous utilisons MyKerberosConfig dans l'exemple.

    • Utilisez la propriété SubnetId de l'--ec2-attributes option pour spécifier le sous-réseau que vous avez créé dans Étape 1 : Configuration du VPC sous-réseau et. Nous utilisons step1-subnet dans l'exemple.

    • Utilisez AdditionalMasterSecurityGroups et AdditionalSlaveSecurityGroups de l'option --ec2-attributes pour spécifier que le groupe de sécurité associé au contrôleur de domaine AD de Étape 2 : Lancer et installer le contrôleur de domaine Active Directory est associé au nœud primaire du cluster, ainsi qu'aux nœuds principaux et de tâches. Nous utilisons sg-012xrlmdomain345 dans l'exemple.

    Utilisez --kerberos-attributes pour spécifier les attributs Kerberos suivants spécifiques au cluster :

    L'exemple suivant lance un cluster activé pour Kerberos.

    aws emr create-cluster --name "MyKerberosCluster" \ --release-label emr-5.10.0 \ --instance-type m5.xlarge \ --instance-count 3 \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2KeyPair,\ SubnetId=step1-subnet, AdditionalMasterSecurityGroups=sg-012xrlmdomain345, AdditionalSlaveSecurityGroups=sg-012xrlmdomain345\ --service-role EMR_DefaultRole \ --security-configuration MyKerberosConfig \ --applications Name=Hadoop Name=Hive Name=Oozie Name=Hue Name=HCatalog Name=Spark \ --kerberos-attributes Realm=EC2.INTERNAL,\ KdcAdminPassword=MyClusterKDCAdminPwd,\ ADDomainJoinUser=ADUserLogonName,ADDomainJoinPassword=ADUserPassword,\ CrossRealmTrustPrincipalPassword=MatchADTrustPwd

Étape 7 : créer des HDFS utilisateurs et définir des autorisations sur le cluster pour les comptes Active Directory

Lors de la mise en place d'une relation de confiance avec Active Directory, Amazon EMR crée des utilisateurs Linux sur le cluster pour chaque compte Active Directory. Par exemple, le nom de connexion utilisateur LiJuan dans Active Directory dispose d'un compte Linux lijuan. Les noms d'utilisateurs Active Directory peuvent contenir des lettres majuscules, mais Linux ne prend pas en charge la casse Active Directory.

Pour permettre à vos utilisateurs de se connecter au cluster afin d'exécuter des tâches Hadoop, vous devez ajouter des annuaires HDFS d'utilisateurs pour leurs comptes Linux et accorder à chaque utilisateur la propriété de son répertoire. Pour ce faire, nous vous recommandons d'exécuter un script enregistré dans Amazon S3 sous la forme d'une étape de cluster. Sinon, vous pouvez exécuter les commandes dans le script ci-dessous à partir de l'interface de ligne de commande sur le nœud primaire. Utilisez la paire de EC2 clés que vous avez spécifiée lors de la création du cluster pour vous connecter au nœud principal SSH en tant qu'utilisateur Hadoop. Pour de plus amples informations, veuillez consulter Utiliser une paire de EC2 clés pour les SSH informations d'identification.

Exécutez la commande suivante pour ajouter une étape au cluster qui exécute un script, AddHDFSUsers.sh.

aws emr add-steps --cluster-id <j-2AL4XXXXXX5T9> \ --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://DOC-EXAMPLE-BUCKET/AddHDFSUsers.sh"]

Le contenu du fichier AddHDFSUsers.sh est le suivant.

#!/bin/bash # AddHDFSUsers.sh script # Initialize an array of user names from AD or Linux users and KDC principals created manually on the cluster ADUSERS=("lijuan" "marymajor" "richardroe" "myusername") # For each user listed, create an HDFS user directory # and change ownership to the user for username in ${ADUSERS[@]}; do hdfs dfs -mkdir /user/$username hdfs dfs -chown $username:$username /user/$username done

Groupes Active Directory mappés aux groupes Hadoop

Amazon EMR utilise System Security Services Daemon (SSD) pour mapper des groupes Active Directory à des groupes Hadoop. Pour confirmer des mappages de groupe, après la connexion au nœud primaire telle que décrite dans Utilisation SSH pour se connecter à des clusters Kerberisés, vous pouvez utiliser la commande hdfs groups pour confirmer que les groupes Active Directory auxquels votre compte Active Directory appartient ont été mappés aux groupes Hadoop de l'utilisateur Hadoop correspondant sur le cluster. Vous pouvez également consulter d'autres mappages de groupe d'utilisateurs en spécifiant un ou plusieurs noms d'utilisateur avec la commande, par exemple hdfs groups lijuan. Pour plus d'informations, consultez la section groupes dans le guide HDFS des commandes Apache.