Tutorial: Configurazione di un trust tra realm con un controller di dominio Active Directory - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: Configurazione di un trust tra realm con un controller di dominio Active Directory

Quando configuri un trust tra realm, autorizzi i principali (di solito utenti) di un altro realm Kerberos a eseguire l'autenticazione a componenti dell'applicazione sul cluster EMR. Il KDC (Key Distribution Center) dedicato al cluster stabilisce una relazione di fiducia con un altro KDC utilizzando un principio cross-realm esistente in entrambi. KDCs Il nome e la password del principale corrispondono in modo preciso.

Un trust cross-realm richiede che KDCs possano raggiungersi tramite la rete e risolvere i rispettivi nomi di dominio. Di seguito vengono descritti i passaggi per stabilire una relazione di trust tra domini con un controller di dominio Microsoft AD in esecuzione come EC2 istanza, insieme a un esempio di configurazione di rete che fornisce la connettività e la risoluzione dei nomi di dominio richieste. Qualsiasi configurazione di rete che consenta il traffico di rete richiesto tra di loro è accettabile. KDCs

Facoltativamente, dopo aver stabilito un trust tra realm con Active Directory utilizzando un KDC su un cluster, è possibile creare un altro cluster utilizzando un'altra configurazione di sicurezza per fare riferimento al KDC del primo cluster come KDC esterno. Per un esempio di configurazione di sicurezza e di impostazione del cluster, consultare KDC esterno del cluster con trust tra realm Active Directory.

Per maggiori informazioni sul supporto di Amazon EMR per Kerberos e KDC, nonché sui collegamenti alla documentazione di MIT Kerberos, consulta Utilizzo di Kerberos per l'autenticazione con Amazon EMR.

Importante

Amazon EMR non supporta trust cross-realm con. AWS Directory Service for Microsoft Active Directory

Fase 1: Configurazione di VPC e sottorete

Fase 2: Avvio e installazione del controller di dominio Active Directory

Fase 3: aggiunta di account al dominio per il cluster EMR

Fase 4: Configurazione di un trust in entrata sul controller di dominio Active Directory

Fase 5: Utilizzo di un set di opzioni DHCP per specificare il controller di dominio Active Directory come server DNS di VPC

Fase 6: avvio di un cluster EMR che utilizza Kerberos

Fase 7: creazione di utenti HDFS e impostazione di autorizzazioni sul cluster per account Active Directory

Fase 1: Configurazione di VPC e sottorete

Le fasi seguenti descrivono la creazione di un VPC e di una sottorete di modo che il KDC dedicato al cluster possa accedere al controller di dominio Active Directory e risolvere il relativo nome di dominio. In queste fasi, la risoluzione dei nomi di dominio viene fornita facendo riferimento al controller di dominio Active Directory come server dei nomi di dominio nel set di opzioni DHCP. Per ulteriori informazioni, consulta Fase 5: Utilizzo di un set di opzioni DHCP per specificare il controller di dominio Active Directory come server DNS di VPC.

Il KDC e il controller di dominio Active Directory devono essere in grado di risolvere uno il nome di dominio dell'altro. Ciò consente ad Amazon EMR di aggiungere computer al dominio e di configurare automaticamente gli account Linux e i parametri SSH corrispondenti sulle istanze del cluster.

Se Amazon EMR non è in grado di risolvere il nome di dominio, è possibile fare riferimento al trust utilizzando l'indirizzo IP del controller di dominio Active Directory. Tuttavia, è necessario aggiungere manualmente gli account Linux, aggiungere i principali corrispondenti al KDC dedicato al cluster e configurare SSH.

Per configurare VPC e sottorete
  1. Creazione di un Amazon VPC con una singola sottorete pubblica Per ulteriori informazioni, consulta Fase 1: Creazione del VPC nella Guida alle nozioni di base su Amazon VPC.

    Importante

    Quando utilizzi un controller di dominio Microsoft Active Directory, scegli un blocco CIDR per il cluster EMR in modo che IPv4 tutti gli indirizzi abbiano una lunghezza inferiore a nove caratteri (ad esempio, 10.0.0.0/16). Questo perché i nomi DNS dei computer del cluster vengono utilizzati quando i computer si uniscono alla directory di Active Directory. AWS assegna nomi host DNS in base IPv4 all'indirizzo in modo che indirizzi IP più lunghi possano dare come risultato nomi DNS più lunghi di 15 caratteri. Active Directory ha un limite di 15 caratteri per la registrazione di nomi di computer aggiunti e tronca i nomi più lunghi, condizione che può causare errori imprevedibili.

  2. Rimuovere il set di opzioni DHCP di default assegnato al VPC. Per ulteriori informazioni, consulta Modifica di un VPC per non utilizzare opzioni DHCP. Successivamente, aggiungere un nuovo set che specifica il controller di dominio Active Directory come server DNS.

  3. Confermare che il supporto DNS è attivato per il VPC, ovvero, che gli hostname DNS e la risoluzione DNS sono attivati (impostazione predefinita). Per ulteriori informazioni, consulta Aggiornamento del supporto DNS per il VPC.

  4. Confermare che il VPC dispone di un gateway Internet associato (impostazione predefinita). Per ulteriori informazioni, consulta l'argomento relativo alla creazione e all'associazione di un gateway Internet.

    Nota

    Un gateway Internet è utilizzato in questo esempio in quanto si sta creando un nuovo controller di dominio per il VPC. È tuttavia possibile che un gateway Internet non sia necessario per l'applicazione. Il solo requisito è che il KDC dedicato al cluster possa accedere al controller di dominio Active Directory.

  5. Creare una tabella di routing personalizzata, aggiungere un instradamento che porta al gateway Internet, quindi associarlo alla sottorete. Per ulteriori informazioni, consulta Creazione di una tabella di routing personalizzata.

  6. Quando si avvia l' EC2 istanza per il controller di dominio, deve disporre di un IPv4 indirizzo pubblico statico per potersi connettere tramite RDP. Il modo più semplice per farlo è configurare la sottorete per l'assegnazione automatica di indirizzi pubblici. IPv4 che non è l'impostazione predefinita quando si crea una sottorete. Per ulteriori informazioni, vedere Modifica dell'attributo di IPv4 indirizzamento pubblico della sottorete. Eventualmente, è possibile assegnare l'indirizzo all'avvio dell'istanza. Per ulteriori informazioni, consulta Assegnazione di un IPv4 indirizzo pubblico durante l'avvio dell'istanza.

  7. Al termine, prendi nota del tuo VPC e della sottorete. IDs Questi ID saranno utilizzati in seguito quando si avvia il controller di dominio Active Directory e il cluster.

Fase 2: Avvio e installazione del controller di dominio Active Directory

  1. Avvia un' EC2 istanza basata sull'AMI di base di Microsoft Windows Server 2016. Consigliamo un tipo di istanza m4.xlarge o superiore. Per ulteriori informazioni, consulta Launching an Marketplace AWS Instance nella Amazon EC2 User Guide.

  2. Prendi nota dell'ID di gruppo del gruppo di sicurezza associato all'EC2 istanza. Servirà per Fase 6: avvio di un cluster EMR che utilizza Kerberos. Usiamosg-012xrlmdomain345. In alternativa, è possibile specificare gruppi di sicurezza diversi per il cluster EMR e per questa istanza che consente il traffico tra di essi. Per ulteriori informazioni, consulta i gruppi EC2 di sicurezza Amazon per le istanze Linux nella Amazon EC2 User Guide.

  3. Connect all' EC2 istanza tramite RDP. Per ulteriori informazioni, consulta Connessione all'istanza Windows nella Amazon EC2 User Guide.

  4. Avvia Server Manager per installare e configurare il ruolo dei servizi di dominio Active Directory sul server. Alzare il livello del server a controller di dominio e assegnare un nome di dominio (l'esempio utilizzato qui è ad.domain.com). Annotare il nome di dominio in quanto sarà necessario in un secondo momento quando si crea la configurazione di sicurezza EMR e il cluster. Per informazioni sulla configurazione di Active Directory, segui le istruzioni contenute in Come configurare Active Directory (AD) in Windows Server 2016.

    L'istanza viene riavviata al termine della procedura.

Fase 3: aggiunta di account al dominio per il cluster EMR

Esegui una connessione RDP al controller di dominio Active Directory per creare account in utenti e computer Active Directory per ogni utente del cluster. Per ulteriori informazioni, consulta Create a User Account in Active Directory Users and Computers sul sito Microsoft Learn. Annotare User logon name (Nome di accesso utente) di ogni utente. Questi nomi saranno necessari in seguito per la configurazione del cluster.

Inoltre, crea un account con privilegi sufficienti per aggiungere computer al dominio. Questo account viene specificato quando si crea un cluster. Amazon EMR lo utilizza per aggiungere istanze di cluster al dominio. Questo account e la relativa password sono specificati in Fase 6: avvio di un cluster EMR che utilizza Kerberos. Per delegare privilegi di aggiunta di computer all'account, è consigliabile creare un gruppo con privilegi di aggiunta e quindi assegnare l'utente al gruppo. Per istruzioni, consulta Delega dei privilegi di aggiunta di directory nella Guida per l'amministrazione di AWS Directory Service .

Fase 4: Configurazione di un trust in entrata sul controller di dominio Active Directory

I comandi di esempio seguenti creano un trust in Active Directory, ovvero un trust tra realm unidirezionale, in entrata e non transitivo con il KDC dedicato al cluster. L'esempio che utilizziamo per il realm del cluster è EC2.INTERNAL. Sostituisci il nome KDC-FQDN con il nome DNS pubblico indicato per il nodo primario di Amazon EMR che ospita il KDC. Il parametro passwordt specifica la cross-realm principal password (password del principale inter-realm), definita insieme al realm del cluster quando si crea un cluster. Il nome di realm è derivato dal nome di dominio di default in us-east-1 per il cluster. Domain è il dominio di Active Directory in cui si crea il trust, che è minuscolo per convenzione. L'esempio utilizza ad.domain.com.

Aprire il prompt dei comandi di Windows con privilegi di amministratore e digitare i comandi seguenti per creare la relazione di trust sul controller di dominio 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

Fase 5: Utilizzo di un set di opzioni DHCP per specificare il controller di dominio Active Directory come server DNS di VPC

Ora che il controller di dominio Active Directory è configurato, è necessario configurare il VPC per utilizzarlo come server dei nomi di dominio per la risoluzione dei nomi in VPC. A questo proposito, associare un set di opzioni DHCP. Specifica il Domain name (Nome di dominio) come nome di dominio del cluster, ad esempio ec2.internal se il cluster si trova in us-east-1 o region.compute.internal per le altre Regioni. Per i server con nomi di dominio, è necessario specificare l'indirizzo IP del controller di dominio Active Directory (che deve essere raggiungibile dal cluster) come prima voce, seguita da AmazonProvidedDNS (ad esempio, DNS). xx.xx.xx.xx AmazonProvided Per ulteriori informazioni, consulta Modifica dei set di opzioni DHCP.

Fase 6: avvio di un cluster EMR che utilizza Kerberos

  1. In Amazon EMR, crea una configurazione di sicurezza che specifica il controller di dominio Active Directory creato nelle fasi precedenti. Un esempio di comando è riportato di seguito. Sostituire il dominio, ad.domain.com, con il nome del dominio specificato in Fase 2: Avvio e installazione del controller di dominio 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. Creare il cluster con gli attributi seguenti:

    • Utilizzare l'opzione --security-configuration per specificare la configurazione di sicurezza creata. MyKerberosConfigNell'esempio utilizziamo.

    • Utilizzare la proprietà SubnetId di --ec2-attributes option per specificare la sottorete creata in Fase 1: Configurazione di VPC e sottorete. Usiamo step1-subnet nell'esempio.

    • Utilizza AdditionalMasterSecurityGroups e AdditionalSlaveSecurityGroups dell'opzione --ec2-attributes per specificare che il gruppo di sicurezza associato al controller di dominio AD da Fase 2: Avvio e installazione del controller di dominio Active Directory è associato al nodo primario del cluster, nonché ai nodi principali e attività. Usiamo sg-012xrlmdomain345 nell'esempio.

    Utilizzare --kerberos-attributes per specificare i seguenti attributi Kerberos specifici del cluster:

    L'esempio seguente avvia un cluster che utilizza 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

Fase 7: creazione di utenti HDFS e impostazione di autorizzazioni sul cluster per account Active Directory

Quando si configura una relazione di trust con Active Directory, Amazon EMR crea utenti Linux sul cluster per ogni account Active Directory. Ad esempio, il nome di accesso utente LiJuan in Active Directory dispone di un account Linux lijuan. I nomi utente Active Directory possono contenere lettere maiuscole, ma Linux non supporta la combinazione di maiuscole e minuscole di Active Directory.

Per consentire agli utenti di accedere al cluster ed eseguire processi Hadoop, è necessario aggiungere directory utente HDFS per i relativi account Linux e concedere a ciascun utente la proprietà della sua directory. A questo proposito, consigliamo di eseguire uno script salvato in Amazon S3 come fase di cluster. In alternativa, è possibile eseguire i comandi nello script illustrato di seguito dalla riga di comando sul nodo primario. Usa la EC2 key pair che hai specificato quando hai creato il cluster per connetterti al nodo primario tramite SSH come utente Hadoop. Per ulteriori informazioni, consulta Usa una coppia di EC2 chiavi per le credenziali SSH per Amazon EMR.

Esegui il comando seguente per aggiungere un passaggio al cluster che esegue uno 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://amzn-s3-demo-bucket/AddHDFSUsers.sh"]

Il contenuto del file AddHDFSUsers.sh è il seguente.

#!/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

Gruppi Active Directory mappati a gruppi Hadoop

Amazon EMR utilizza System Security Services Daemon (SSD) per mappare gruppi Active Directory a gruppi Hadoop. Per confermare le mappature dei gruppi, dopo aver eseguito l'accesso al nodo primario come descritto in Utilizzo di SSH per connettersi a cluster kerberizzati con Amazon EMR, puoi utilizzare il comando hdfs groups per confermare che i gruppi Active Directory a cui l'account Active Directory appartiene siano stati mappati a gruppi Hadoop per l'utente Hadoop corrispondente sul cluster. È inoltre possibile verificare le mappature di gruppi di altri utenti specificando uno o più nomi utente con il comando, ad esempio hdfs groups lijuan. Per ulteriori informazioni, consulta groups nella Apache HDFS Commands Guide.