Cómo vincular de manera fluida una instancia de Amazon EC2 en Linux a un AWS Managed Microsoft AD Active Directory
Este procedimiento une de forma sencilla una instancia de Amazon EC2 en Linux a AWS Managed Microsoft AD Active Directory. Para completar este procedimiento, tendrá que crear un secreto AWS Secrets Manager, lo que puede suponer costos adicionales. Para más información, consulte Precios de AWS Secrets Manager
Si necesita llevar a cabo de forma fluida la unión a un dominio en varias cuentas de AWS, tiene la opción de habilitar Uso compartido del directorio.
Son compatibles las siguientes distribuciones y versiones de instancias de Linux:
-
Amazon Linux AMI 2018.03.0
-
Amazon Linux 2 (64 bits x86)
-
Red Hat Enterprise Linux 8 (HVM) (64 bits x86)
-
Ubuntu Server 18.04 LTS y Ubuntu Server 16.04 LTS
-
CentOS 7 x86-64
-
SUSE Linux Enterprise Server 15 SP1
nota
Las distribuciones anteriores a Ubuntu 14 y Red Hat Enterprise Linux 7 y 8 no admiten la característica de unión fluida de dominios.
Para ver una demostración del proceso de vincular de forma fluida una instancia de Linux a AWS Managed Microsoft AD Active Directory, consulte el siguiente video de YouTube.
Requisitos previos
Para poder configurar una unión de dominios fluida a una instancia de Linux de EC2, debe completar los procedimientos de estas secciones.
Requisitos previos de red para una unión de dominios fluida
Para unirse a un dominio de una instancia de Linux de EC2 de forma fluida, se deberán completar los siguientes pasos:
-
Se necesitarán los siguientes permisos de IAM para unirse de manera fluida a una instancia de Linux de EC2:
-
Tener un AWS Managed Microsoft AD. Para obtener más información, consulte Creación de un AWS Managed Microsoft AD.
-
Se necesitarán los siguientes permisos de IAM para unirse de manera fluida a una instancia de Windows de EC2:
-
Perfil de instancia de IAM con los siguientes permisos de IAM:
-
AmazonSSMManagedInstanceCore -
AmazonSSMDirectoryServiceAccess
-
-
El usuario que realiza la unión fluida de dominio de EC2 con AWS Managed Microsoft AD necesita los siguientes permisos de IAM:
-
Directory ServicePermisos de
-
"ds:DescribeDirectories" -
"ds:CreateComputer"
-
-
Permisos de Amazon VPC:
-
"ec2:DescribeVpcs" -
"ec2:DescribeSubnets" -
"ec2:DescribeNetworkInterfaces" -
"ec2:CreateNetworkInterface" -
"ec2:AttachNetworkInterface"
-
-
Permisos de EC2:
-
"ec2:DescribeInstances" -
"ec2:DescribeImages" -
"ec2:DescribeInstanceTypes" -
"ec2:RunInstances" -
"ec2:CreateTags"
-
-
AWS Systems ManagerPermisos de
-
"ssm:DescribeInstanceInformation" -
"ssm:SendCommand" -
"ssm:GetCommandInvocation" -
"ssm:CreateBatchAssociation"
-
-
-
-
-
Cuando se crea su AWS Managed Microsoft AD, se crea un grupo de seguridad con reglas de entrada y salida. Para obtener más información acerca de las reglas y los puertos, consulte ¿Qué se crea con AWS Managed Microsoft AD?. A fin de realizar una unión fluida de dominio de una instancia de Linux de EC2, la VPC en la que se va a lanzar la instancia debe permitir los mismos puertos permitidos en las reglas de entrada y salida de su grupo de seguridad de AWS Managed Microsoft AD.
-
En función de la configuración de seguridad de la red y del firewall, es posible que se deba permitir tráfico saliente adicional. Este tráfico sería para HTTPS (puerto 443) a los siguientes puntos de conexión:
Punto de conexión Rol ec2messages.region.amazonaws.comCrea y elimina los canales de sesión con el servicio Session Manager. Para obtener más información, consulte Puntos de conexión y cuotas de AWS Systems Manager.
ssm.region.amazonaws.comPunto de conexión para AWS Systems Manager Session Manager. Para obtener más información, consulte Puntos de conexión y cuotas de AWS Systems Manager.
ssmmessages.region.amazonaws.comCrea y elimina los canales de sesión con el servicio Session Manager. Para obtener más información, consulte Puntos de conexión y cuotas de AWS Systems Manager.
ds.region.amazonaws.comPunto de conexión para Directory Service. Para obtener más información, consulte Disponibilidad por región de Directory Service.
secretsmanager.region.amazonaws.comPunto de conexión para AWS Secrets Manager. Para obtener más información, consulte Puntos de conexión y cuotas de AWS Secrets Manager.
-
-
Se recomienda que utilice un servidor DNS que resuelva su nombre de dominio de AWS Managed Microsoft AD. Para lograrlo, se puede crear un conjunto de opciones de DHCP. Para obtener más información, consulte Cómo crear o modificar un conjunto de opciones de DHCP de AWS Managed Microsoft AD.
-
Si se decide no crear un conjunto de opciones de DHCP, sus servidores DNS serán estáticos y los configurará su AWS Managed Microsoft AD.
-
Selección de la cuenta de servicio de unión de dominios fluida
Puede vincular de forma fluida equipos con Linux a su dominio de AWS Managed Microsoft AD Active Directory. Para ello, debe usar una cuenta de usuario con permisos de creación de cuentas de equipos para unir las máquinas al dominio. Si bien es posible que los miembros de los administradores delegados de AWS u otros grupos tengan privilegios suficientes para unir los equipos al dominio, no lo recomendamos. Como práctica recomendada, le recomendamos que utilice una cuenta de servicio que tenga los privilegios mínimos necesarios para unir los equipos al dominio.
Para delegar una cuenta con los privilegios mínimos necesarios para unir los equipos al dominio, puede ejecutar los siguientes comandos de PowerShell. Debe ejecutar estos comandos desde un equipo Windows unido a un dominio con Instalación de las herramientas de administración del Active Directory para el AWS Managed Microsoft AD instalado. Además, debe utilizar una cuenta que tenga permiso para modificar los permisos de la unidad organizativa o el contenedor del equipo. El comando de PowerShell establece los permisos que permiten a la cuenta de servicio crear objetos de equipo en el contenedor de equipos predeterminado del dominio.
$AccountName = 'awsSeamlessDomain' # DO NOT modify anything below this comment. # Getting Active Directory information. Import-Module 'ActiveDirectory' $Domain = Get-ADDomain -ErrorAction Stop $BaseDn = $Domain.DistinguishedName $ComputersContainer = $Domain.ComputersContainer $SchemaNamingContext = Get-ADRootDSE | Select-Object -ExpandProperty 'schemaNamingContext' [System.GUID]$ServicePrincipalNameGuid = (Get-ADObject -SearchBase $SchemaNamingContext -Filter { lDAPDisplayName -eq 'Computer' } -Properties 'schemaIDGUID').schemaIDGUID # Getting Service account Information. $AccountProperties = Get-ADUser -Identity $AccountName $AccountSid = New-Object -TypeName 'System.Security.Principal.SecurityIdentifier' $AccountProperties.SID.Value # Getting ACL settings for the Computers container. $ObjectAcl = Get-ACL -Path "AD:\$ComputersContainer" # Setting ACL allowing the service account the ability to create child computer objects in the Computers container. $AddAccessRule = New-Object -TypeName 'System.DirectoryServices.ActiveDirectoryAccessRule' $AccountSid, 'CreateChild', 'Allow', $ServicePrincipalNameGUID, 'All' $ObjectAcl.AddAccessRule($AddAccessRule) Set-ACL -AclObject $ObjectAcl -Path "AD:\$ComputersContainer"
Si prefiere utilizar una interfaz de usuario gráfica (GUI), puede utilizar el proceso manual que se describe en Privilegios delegados a su cuenta de servicio.
Creación de secretos para almacenar la cuenta de servicio de dominio
Se puede utilizar AWS Secrets Manager para almacenar la cuenta de servicio de dominio. Para obtener más información, consulte Crear un secreto de AWS Secrets Manager.
nota
Hay tarifas asociadas con Secrets Manager. Para obtener más información, consulte Precios en la Guía del usuario de AWS Secrets Manager.
Creación de secretos y almacenamiento de la información de la cuenta de servicio de dominio
-
Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Secrets Manager en https://console.aws.amazon.com/secretsmanager/
. -
Elija Almacenar un secreto nuevo.
-
En la página Store a new secret (Almacenar un nuevo secreto), haga lo siguiente:
-
En Tipo de secreto, seleccione Otro tipo de secretos.
-
En Pares clave/valor, haga lo siguiente:
-
En el cuadro de filtro, escriba
awsSeamlessDomainUsername. En la misma fila, en el cuadro siguiente, ingrese el nombre de usuario de su cuenta de servicio. Por ejemplo, si utilizó el comando de PowerShell anteriormente, el nombre de la cuenta de servicio seráawsSeamlessDomain.nota
Debe ingresar
awsSeamlessDomainUsernameexactamente como está. Asegúrese de que no haya espacios al principio ni al final. De lo contrario, la unión de dominio fallará.
-
Seleccione Agregar regla.
-
En la nueva fila, en el primer cuadro, ingrese
awsSeamlessDomainPassword. En la misma fila, en el cuadro siguiente, ingrese la contraseña de su cuenta de servicio.nota
Debe ingresar
awsSeamlessDomainPasswordexactamente como está. Asegúrese de que no haya espacios al principio ni al final. De lo contrario, la unión de dominio fallará. -
En Clave de cifrado, deje el valor predeterminado
aws/secretsmanager. AWS Secrets Manager siempre cifra el secreto al elegir esta opción. También puede elegir una clave que haya creado. -
Elija Siguiente.
-
-
-
En Nombre del secreto, ingrese un nombre de secreto que incluya su ID de directorio con el siguiente formato y reemplace
d-xxxxxxxxxcon su ID de directorio:aws/directory-services/d-xxxxxxxxx/seamless-domain-joinSe usará para recuperar los secretos de la aplicación.
nota
Debe escribir
aws/directory-services/exactamente como está, pero sustituyad-xxxxxxxxx/seamless-domain-joind-xxxxxxxxxxpor su ID de directorio. Asegúrese de que no haya espacios al principio ni al final. De lo contrario, la unión de dominio fallará.
-
Deje todo lo demás con los valores predeterminados y, a continuación, elija Siguiente.
-
En Configurar rotación automática, elija Deshabilitar rotación automática y, a continuación, Siguiente.
Puede activar la rotación de este secreto después de almacenarlo.
-
Revise la configuración y, a continuación, elija Almacenar para guardar los cambios. La consola de Secrets Manager vuelve a la lista de secretos de su cuenta con el nuevo secreto ahora incluido en la lista.
-
Elija el nombre del secreto recién creado de la lista y tome nota del valor del ARN del secreto. Lo necesitará en la sección siguiente.
Activación de la rotación para el secreto de la cuenta de servicio de dominio
Se recomienda modificar los secretos de manera regular para mejorar la postura de seguridad.
Activación de la rotación para el secreto de la cuenta de servicio de dominio
-
Siga las instrucciones en Configuración de la rotación automática para los secretos de AWS Secrets Manager en la Guía del usuario de AWS Secrets Manager.
Para el paso 5, utilice la plantilla de rotación Credenciales de Microsoft Active Directory en la Guía del usuario de AWS Secrets Manager.
Para obtener ayuda, consulte Solución de problemas de rotación de AWS Secrets Manager en la Guía del usuario de AWS Secrets Manager.
Creación del rol y la política de IAM obligatorios
Siga estos pasos previos para crear una política personalizada que permita el acceso de solo lectura al secreto (que creó anteriormente) de unión de dominios fluida de Secrets Manager, así como para crear un nuevo rol de IAM LinuxEC2DomainJoin.
Creación de la política de lectura de IAM de Secrets Manager
Utilizará la consola de IAM para crear una política que concede acceso de solo lectura a su secreto de Secrets Manager.
Creación de la política de lectura de IAM de Secrets Manager
-
Inicie sesión en la Consola de administración de AWS como usuario que tenga permiso para crear políticas de IAM. A continuación, abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación, en Administración de acceso, seleccione Políticas.
-
Seleccione Crear política.
-
Seleccione la pestaña JSON y copie el texto del siguiente documento de política JSON. A continuación, péguelo en el cuadro de texto JSON.
nota
Asegúrese de reemplazar la región y el ARN del recurso con la región real y el ARN del secreto que creó con anterioridad.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:xxxxxxxxx:secret:aws/directory-services/d-xxxxxxxxx/seamless-domain-join" ] } ] } -
Cuando haya terminado, elija Next. El validador de políticas notifica los errores de sintaxis. Para obtener más información, consulte Validación de políticas de IAM.
-
En la página Revisar política, ingrese un nombre para la política, como
SM-Secret-Linux-DJ-. Revise el Resumen de la política para ver los permisos concedidos por su política. Seleccione Crear política para guardar los cambios. La nueva política aparece en la lista de las políticas administradas y está lista para asociar a una identidad.d-xxxxxxxxxx-Read
nota
Se recomienda que cree una política por secreto. De este modo, se garantiza que las instancias solo tengan acceso al secreto adecuado y se minimiza el impacto en caso de que una instancia se vea comprometida.
Creación del rol LinuxEC2DomainJoin
Utilice la consola de IAM para crear el rol que utilizará para unirse al dominio de su instancia de EC2 de Linux.
Creación del rol LinuxEC2DomainJoin
-
Inicie sesión en la Consola de administración de AWS como usuario que tenga permiso para crear políticas de IAM. A continuación, abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación, en Administración del acceso, elija Roles.
-
En el panel de contenido, elija Crear rol.
-
En Seleccionar tipo de entidad de confianza, seleccione Servicio de AWS.
-
En Caso de uso, seleccione EC2 y luego elija Siguiente.
-
En Políticas de filtro, haga lo siguiente:
-
Escriba
AmazonSSMManagedInstanceCore. A continuación, seleccione la casilla de verificación de ese elemento de la lista. -
Escriba
AmazonSSMDirectoryServiceAccess. A continuación, seleccione la casilla de verificación de ese elemento de la lista. -
Ingrese
SM-Secret-Linux-DJ-(o el nombre de la política creada en el procedimiento anterior). A continuación, seleccione la casilla de verificación de ese elemento de la lista.d-xxxxxxxxxx-Read Tras añadir las tres políticas enumeradas anteriormente, seleccione Crear rol.
nota
AmazonSSMDirectoryServiceAccess proporciona los permisos para unir instancias a una instancia de Active Directory administrada por Directory Service. AmazonSSMManagedInstanceCore proporciona los permisos mínimos necesarios para usar el servicio de AWS Systems Manager. Para obtener más información sobre la creación de un rol con estos permisos y para obtener información sobre otros permisos y políticas que puede asignar a su rol de IAM, consulte Creación de un perfil de instancia de IAM para Systems Manager en la Guía del usuario de AWS Systems Manager.
-
Ingrese un nombre para su nuevo rol, como
LinuxEC2DomainJoino cualquier otro nombre de su preferencia en el campo Nombre del rol.(Opcional) En Role description (Descripción del rol), escriba una descripción.
(Opcional) Para añadir etiquetas, elija Agregar nueva etiqueta en el Paso 3: agregar etiquetas. Los pares clave-valor con etiqueta se utilizan para organizar, realizar un seguimiento o controlar el acceso a este rol.
-
Seleccione Crear rol.
Cómo vincular de manera fluida una instancia de Linux
Cómo vincular de manera fluida una instancia de Linux
-
Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el selector de región de la barra de navegación, elija la misma Región de AWS que el directorio existente.
-
En el panel de control de EC2, en la sección Lanzar instancia, elija Lanzar instancia.
-
En la página Iniciar una instancia, en la sección Nombre y etiquetas, ingrese el nombre que desee utilizar para la instancia de EC2 en Linux.
(Opcional) Seleccione Agregar etiquetas adicionales para añadir uno o más pares clave-valor con etiquetas y así organizar, hacer un seguimiento o controlar el acceso a esta instancia de EC2.
-
En la sección Imagen de aplicación y sistema operativo (Imagen de máquina de Amazon), elija la AMI de Linux que desee iniciar.
nota
La AMI utilizada debe tener la versión 2.3.1644.0 o posterior de AWS Systems Manager (SSM Agent). Para comprobar la versión de SSM Agent instalada en la AMI mediante el lanzamiento de una instancia desde esa AMI, consulte Obtener la versión de SSM Agent instalada actualmente. Si necesita actualizar SSM Agent, consulte Instalación y configuración de SSM Agent en instancias de EC2 para Linux.
SSM usa el complemento
aws:domainJoinal vincular una instancia de Linux a un dominio de Active Directory. El complemento cambia el nombre de host de las instancias de Linux al formato EC2AMAZ-XXXXXXX. Para obtener más información sobreaws:domainJoin, consulte Referencia de complementos del documento de comandos de AWS Systems Manager en la Guía del usuario de AWS Systems Manager. -
En la sección Tipo de instancia, elija el tipo de instancia que desee usar en la lista desplegable Tipo de instancia.
-
En la sección Par de claves (inicio de sesión), puede elegir entre crear un nuevo par de claves o elegir un par de claves existente. Para crear un nuevo par de claves, elija Crear nuevo par de claves. Ingrese un nombre para el par de claves y seleccione una opción en Tipo de par de claves y Formato de archivo de clave privada. Para guardar la clave privada en un formato que se pueda utilizar con OpenSSH, elija .pem. Para guardar la clave privada en un formato que se pueda utilizar con PuTTY, elija .ppk. Elija Crear par de claves. Su navegador descargará el archivo de clave privada automáticamente. Guarde el archivo de clave privada en un lugar seguro.
importante
Esta es la única oportunidad para guardar el archivo de clave privada.
-
En la página Lanzar una instancia, en la sección Configuración de red, elija Editar. Elija la VPC en la que se creó el directorio en la lista desplegable VPC: obligatoria.
-
Elija una de las subredes públicas de su VPC en la lista desplegable Subred. La subred que elija debe tener todo el tráfico externo dirigido a una puerta de enlace de Internet. De lo contrario, no podrá conectarse a la instancia de forma remota.
Para obtener más información sobre cómo conectar una puerta de enlace de Internet, consulte Conexión a Internet mediante una puerta de enlace de Internet en la Guía del usuario de Amazon VPC.
-
En Autoasignar IP pública, elija Habilitar.
Para obtener más información sobre direcciones IP públicas y privadas, consulte Direccionamiento IP de instancias Amazon EC2 en la Guía del usuario de Amazon EC2.
-
En la configuración Firewall (grupos de seguridad), puede usar la configuración predeterminada o hacer cambios para adaptarla a sus necesidades.
-
En la configuración Configurar almacenamiento, puede utilizar los ajustes predeterminados o hacer los cambios necesarios para adaptarlos a sus necesidades.
-
Seleccione la sección Detalles avanzados y elija su dominio en el menú desplegable Directorio de vinculación de dominios.
nota
Tras elegir el directorio de vinculación de dominios, es posible que vea lo siguiente:
Este error se produce si el asistente de inicialización de EC2 identifica un documento SSM existente con propiedades inesperadas. Puede elegir una de las opciones siguientes:
Si ya ha editado el documento SSM y las propiedades son las esperadas, seleccione cerrar y proceda a inicializar la instancia de EC2 sin cambios.
Seleccione el enlace a continuación para eliminar el documento SSM existente. Esto permitirá crear un documento SSM con las propiedades correctas. El documento SSM se creará de forma automática cuando inicie la instancia de EC2.
-
En Perfil de instancia de IAM, seleccione el rol de IAM que creó con anterioridad en la sección de requisitos previos Paso 2: creación del rol LinuxEC2DomainJoin.
-
Seleccione Iniciar instancia.
nota
Si va a llevar a cabo una unión de dominio fluida con SUSE Linux, es necesario reiniciarla para que las autenticaciones funcionen. Para reiniciar SUSE desde el terminal Linux, escriba sudo reboot.