Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Tutorial: Configuración de una relación de confianza entre ámbitos con un dominio de Active Directory
Al crear una relación de confianza entre ámbitos, se permite a las entidades principales (normalmente usuarios) de otro ámbito de Kerberos autenticar a los componentes de la aplicación en el clúster de EMR. El centro de distribución de claves (KDC) dedicado al clúster establece una relación de confianza con otro KDC mediante un principal multidominio que existe en ambos. KDCs El nombre y la contraseña de la entidad principal deben coincidir exactamente.
Una confianza entre dominios requiere que KDCs puedan comunicarse entre sí a través de la red y resolver los nombres de dominio de los demás. A continuación, se proporcionan los pasos para establecer una relación de confianza entre dominios con un controlador de dominio de Microsoft AD que se ejecuta como EC2 instancia, junto con un ejemplo de configuración de red que proporciona la conectividad y la resolución de nombres de dominio necesarias. Se acepta cualquier configuración de red que permita el tráfico de red necesario entre KDCs ellos.
Opcionalmente, después de establecer una relación de confianza entre ámbitos con Active Directory utilizando un KDC en un clúster, puede crear otro clúster con una configuración de seguridad diferente para hacer referencia al KDC en el primer clúster como un KDC externo. Para ver un ejemplo de la configuración de seguridad y la configuración del clúster, consulte KDC externo del clúster con una relación de confianza entre ámbitos de Active Directory.
Para obtener más información sobre la compatibilidad de Amazon EMR con Kerberos y KDC, así como enlaces a la documentación de Kerberos del MIT, consulte Uso de Kerberos para la autenticación con Amazon EMR.
importante
Amazon EMR no admite fideicomisos entre dominios con. AWS Directory Service for Microsoft Active Directory
Paso 1: Configuración de la VPC y la subred
Paso 2: lanzamiento e instalación del controlador de dominio de Active Directory
Paso 3: adición de cuentas al dominio para el clúster de EMR
Paso 6: Lanzar un clúster de EMR que utiliza Kerberos
Paso 1: Configuración de la VPC y la subred
Los pasos siguientes muestran cómo crear una VPC y una subred para que el KDC dedicado del clúster pueda tener acceso al controlador de dominio de Active Directory y resolver su nombre de dominio. En estos pasos, la resolución de nombres de dominio se proporciona haciendo referencia al controlador de dominio de Active Directory como el servidor de nombres de dominio en el conjunto de opciones de DHCP. Para obtener más información, consulte Paso 5: uso de un conjunto de opciones de DHCP para especificar el controlador de dominio de Active Directory como un servidor DNS de la VPC.
El KDC y el controlador de dominio de Active Directory deben ser capaces de resolver sus respectivos nombres de dominio. Esto permite a Amazon EMR incorporar equipos al dominio y configurar automáticamente las cuentas de Linux y los parámetros de SSH correspondientes en las instancias de clúster.
Si Amazon EMR no puede resolver el nombre de dominio, se puede hacer referencia a la relación de confianza mediante la dirección IP del controlador de dominio de Active Directory. Sin embargo, debe agregar manualmente las cuentas de usuario de Linux, agregar las correspondientes entidades principales al KDC dedicado del clúster y configurar SSH.
Para configurar la VPC y la subred
-
Cree una instancia de Amazon VPC con una única subred pública. Para obtener más información, consulte Paso 1: creación de la VPC en la Guía de introducción a Amazon VPC.
importante
Cuando utilice un controlador de dominio de Microsoft Active Directory, elija un bloque CIDR para el clúster de EMR de modo que IPv4 todas las direcciones tengan menos de nueve caracteres (por ejemplo, 10.0.0.0/16). Esto se debe a que los nombres DNS de los equipos del clúster se utilizan cuando los equipos se unen al directorio de Active Directory. AWS asigna nombres de host DNS en función de la IPv4 dirección, de manera que las direcciones IP más largas pueden dar como resultado nombres DNS de más de 15 caracteres. Active Directory tiene un límite de 15 caracteres para registrar los nombres de los equipos que se incorporan, y trunca los nombres que son más largos, lo que puede provocar errores impredecibles.
-
Elimine el conjunto de opciones de DHCP predeterminado asignado a la VPC. Para obtener más información, consulte Cambiar una VPC para que no utilice ninguna opción de DHCP. Posteriormente, puede añadir uno nuevo que especifique el controlador de dominio de Active Directory como servidor DNS.
-
Confirme que se ha activado el soporte de DNS para la VPC, es decir, que se han activado los nombres de host DNS y la resolución de DNS. De forma predeterminada, están habilitadas. Para obtener más información, consulte Actualización de la compatibilidad de DNS para su VPC.
-
Confirme que la VPC tiene un asociada una gateway de Internet, que es la opción predeterminada. Para obtener más información, consulte Creación y asociación de una gateway de Internet.
nota
En este ejemplo, se utiliza una gateway de Internet porque se está estableciendo un nuevo controlador de dominio para la VPC. Puede que no sea necesaria una gateway de Internet para su aplicación. El único requisito es que el KDC dedicado del clúster pueda tener acceso al controlador de dominio de Active Directory.
-
Cree una tabla de ruteo personalizada, añada una ruta que se dirija a la gateway de Internet y, a continuación, asóciela a la subred. Para obtener más información, consulte Creación de una tabla de enrutamiento personalizada.
-
Al lanzar la EC2 instancia para el controlador de dominio, debe tener una IPv4 dirección pública estática para que pueda conectarse a ella mediante RDP. La forma más sencilla de hacerlo es configurar la subred para que asigne automáticamente direcciones públicas IPv4 . Este no es el valor predeterminado cuando se crea una subred. Para obtener más información, consulte Modificación del atributo de IPv4 direccionamiento público de la subred. Si lo prefiere, puede asignar la dirección al lanzar la instancia. Para obtener más información, consulta Cómo asignar una IPv4 dirección pública durante el lanzamiento de una instancia.
-
Cuando termine, anote la VPC y la subred. IDs Los utilizará posteriormente al lanzar el controlador de dominio de Active Directory y el clúster.
Paso 2: lanzamiento e instalación del controlador de dominio de Active Directory
-
Lance una EC2 instancia basada en la AMI básica de Microsoft Windows Server 2016. Le recomendamos un tipo de instancia m4.xlarge o mejor. Para obtener más información, consulta Cómo lanzar una AWS Marketplace instancia en la Guía del EC2 usuario de Amazon.
-
Anote el ID de grupo del grupo de seguridad asociado a la EC2 instancia. Lo necesitará para Paso 6: Lanzar un clúster de EMR que utiliza Kerberos. Usamos
sg-012xrlmdomain345
. También puede especificar distintos grupos de seguridad para el clúster de EMR y esta instancia que permita el tráfico entre ellos. Para obtener más información, consulta los grupos EC2 de seguridad de Amazon para instancias de Linux en la Guía del EC2 usuario de Amazon. -
Conéctate a la EC2 instancia mediante RDP. Para obtener más información, consulta Cómo conectarse a tu instancia de Windows en la Guía del EC2 usuario de Amazon.
-
Inicie Administrador del servidor para instalar y configurar el rol de los servicios de dominio de Active Directory en el servidor. Promocione el servidor a controlador de dominio y asígnele un nombre de dominio (el ejemplo que utilizamos aquí es
). Anote el nombre de dominio porque lo necesitará más adelante al crear el clúster y la configuración de seguridad de EMR. Si es la primera vez que configura Active Directory, puede seguir las instrucciones de How to Set Up Active Directory (AD) in Windows Server 2016ad.domain.com
. La instancia se reiniciará cuando termine.
Paso 3: adición de cuentas al dominio para el clúster de EMR
Establezca una conexión RDP con el controlador de dominio de Active Directory para crear cuentas de usuario en Usuarios y equipos de Active Directory para cada usuario del clúster. Para obtener más información, consulte Create a User Account in Active Directory Users and Computers
Cree también una cuenta con privilegios suficientes para incorporar ordenadores al dominio. Tiene que especificar esta cuenta al crear un clúster. Amazon EMR la utiliza para incorporar las instancias del clúster al dominio Solo debe especificar esta cuenta y su contraseña Paso 6: Lanzar un clúster de EMR que utiliza Kerberos. Para delegar los privilegios de incorporación de equipos a la cuenta, le recomendamos que cree un grupo con privilegios de incorporación y, a continuación, asigne el usuario al grupo. Para obtener instrucciones, consulte Delegación de privilegios de vinculación a directorios en la Guía de administración de AWS Directory Service .
Paso 4: configuración de una relación de confianza entrante en el controlador de dominio de Active Directory
Los comandos del ejemplo siguiente crean una relación de confianza en Active Directory, que es una confianza de ámbito, entrante, unidireccional y no transitiva con el KDC dedicado del clúster. El ejemplo que utilizamos para el ámbito del clúster es
. Sustituya el EC2.INTERNAL
KDC-FQDN
nombre de DNS público que aparece en la lista para el nodo principal de Amazon EMR que aloja el KDC. El parámetro passwordt
especifica la cross-realm principal password (contraseña de la entidad principal de confianza entre ámbitos), que se especifica junto con el realm (ámbito) del clúster al crear un clúster. El nombre del ámbito se deriva del nombre de dominio predeterminado en us-east-1
para el clúster. El Domain
es el dominio de Active Directory en el que va a crear la confianza, que es en minúsculas por convención. El ejemplo utiliza ad.domain.com
Abra el símbolo del sistema de Windows con privilegios de administrador y escriba los siguientes comandos para crear la relación de confianza en el controlador de dominio de Active Directory:
C:\Users\Administrator> ksetup /addkdc
EC2.INTERNAL
KDC-FQDN
C:\Users\Administrator> netdom trustEC2.INTERNAL
/Domain:ad.domain.com
/add /realm /passwordt:MyVeryStrongPassword
C:\Users\Administrator> ksetup /SetEncTypeAttr EC2.INTERNAL AES256-CTS-HMAC-SHA1-96
Paso 5: uso de un conjunto de opciones de DHCP para especificar el controlador de dominio de Active Directory como un servidor DNS de la VPC
Ahora que está configurado el controlador de dominio de Active Directory, debe configurar la VPC para utilizarla como servidor de nombres de dominio para la resolución de nombres en la VPC. Para ello, asocie un conjunto de opciones de DHCP. En Nombre de dominio, especifique el nombre de dominio del clúster; por ejemplo, ec2.internal
si el clúster se encuentra en la región us-east-1 o
para las demás regiones. En el caso de los servidores de nombres de dominio, debe especificar la dirección IP del controlador de dominio de Active Directory (al que se debe poder acceder desde el clúster) como primera entrada, seguida del AmazonProvidedDNS (por ejemplo region
.compute.internalxx.xx.xx.xx
, AmazonProvided DNS). Para obtener más información, consulte Cambio de los conjuntos de opciones de DHCP.
Paso 6: Lanzar un clúster de EMR que utiliza Kerberos
-
En Amazon EMR, cree una configuración de seguridad que especifique el controlador de dominio de Active Directory que ha creado en los pasos anteriores. A continuación se muestra un ejemplo. Sustituya el dominio,
por el nombre del dominio especificado en el Paso 2: lanzamiento e instalación del controlador de dominio de Active Directory.ad.domain.com
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
" } } } } }' -
Cree el clúster con los siguientes atributos:
-
Utilice la opción
--security-configuration
para especificar la configuración de seguridad que ha creado. UsamosMyKerberosConfig
en el ejemplo. -
Utilice la propiedad
SubnetId
de--ec2-attributes option
para especificar la subred que ha creado en Paso 1: Configuración de la VPC y la subred. Usamosstep1-subnet
en el ejemplo. -
Utilice
AdditionalMasterSecurityGroups
yAdditionalSlaveSecurityGroups
de la opción--ec2-attributes
para especificar que el grupo de seguridad asociado al controlador de dominio de AD desde Paso 2: lanzamiento e instalación del controlador de dominio de Active Directory está asociado al nodo principal del clúster, así como a los nodos secundarios y de tareas. Usamossg-012xrlmdomain345
en el ejemplo.
Utilice
--kerberos-attributes
para especificar los siguientes atributos de Kerberos específicos del clúster:-
El ámbito para el clúster que especificó al configurar el controlador de dominio de Active Directory.
-
La contraseña de la entidad principal de confianza entre ámbitos que especificó como
passwordt
en el Paso 4: configuración de una relación de confianza entrante en el controlador de dominio de Active Directory. -
Una
KdcAdminPassword
, que se puede utilizar para administrar el KDC dedicado del clúster. -
El nombre de inicio de sesión de usuario y la contraseña de la cuenta de Active Directory con privilegios para incorporar equipos que ha creado en el Paso 3: adición de cuentas al dominio para el clúster de EMR.
El siguiente ejemplo lanza un clúster que utiliza Kerberos.
aws emr create-cluster --name "
MyKerberosCluster
" \ --release-label emr-5.10.0 \ --instance-typem5.xlarge
\ --instance-count3
\ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole
,KeyName=MyEC2KeyPair
,\ SubnetId=step1-subnet
, AdditionalMasterSecurityGroups=sg-012xrlmdomain345
, AdditionalSlaveSecurityGroups=sg-012xrlmdomain345
\ --service-role EMR_DefaultRole \ --security-configurationMyKerberosConfig
\ --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
-
Paso 7: creación de usuarios de HDFS y configuración de permisos en el clúster para las cuentas de usuario de Active Directory
Cuando se configura una relación de confianza con Active Directory, Amazon EMR crea usuarios de Linux en el clúster para cada cuenta de usuario de Active Directory. Por ejemplo, el nombre de inicio de sesión de usuario LiJuan
en Active Directory se corresponde con la cuenta de Linux de lijuan
. Los nombres de usuario de Active Directory pueden contener letras mayúsculas, pero Linux no distingue entre mayúsculas y minúsculas para dichos nombres.
Para permitir a los usuarios iniciar sesión en el clúster para ejecutar los trabajos de Hadoop, debe agregar directorios de usuario de HDFS para sus cuentas de Linux y conceder a cada usuario la propiedad de su directorio. Para ello, le recomendamos que ejecute un script almacenado en Amazon S3 como un paso de clúster. De forma alternativa, puede ejecutar los comandos en el script siguiente desde la línea de comandos en el nodo principal. Use el par de EC2 claves que especificó al crear el clúster para conectarse al nodo principal a través de SSH como usuario de Hadoop. Para obtener más información, consulte Utilice un par de EC2 claves para las credenciales SSH de Amazon EMR.
Ejecute el siguiente comando para añadir un paso al clúster que ejecuta 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://amzn-s3-demo-bucket
/AddHDFSUsers.sh"]
El contenido del archivo AddHDFSUsers.sh
es el siguiente.
#!/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
Grupos de Active Directory asignados a grupos de Hadoop
Amazon EMR utiliza System Security Services Daemon (SSD) para asignar grupos de Active Directory a grupos de Hadoop. Para confirmar las asignaciones de grupos, después de iniciar sesión en el nodo principal tal y como se describe en Uso de SSH para conectarse a clústeres que utilizan Kerberos con Amazon EMR, puede utilizar el comando hdfs
groups
para confirmar que los grupos de Active Directory a los que pertenece su cuenta de Active Directory se han asignado a los grupos de Hadoop del usuario de Hadoop correspondiente en el clúster. También puede comprobar los mapeos de grupos de otros usuarios especificando uno o varios nombres de usuario con el comando, por ejemplo hdfs groups
. Para obtener más información, consulte groupslijuan