Unión de la instancia de base de datos a un Active Directory autoadministrado - Amazon Relational Database Service

Unión de la instancia de base de datos a un Active Directory autoadministrado

Para unir la instancia de base de datos de RDS para SQL Server al AD autoadministrado, siga estos pasos:

Paso 1: crear o modificar una instancia de base de datos de SQL Server

Puede utilizar la consola, la CLI o la API de RDS para asociar una instancia de base de datos de RDS para SQL Server a un dominio de AD autoadministrado. Puedes hacerlo de una de las siguientes formas:

Si utiliza la AWS CLI, necesitará los siguientes parámetros para que la instancia de base de datos pueda usar el dominio de AD autoadministrado que ha creado:

  • Para el parámetro --domain-fqdn, utilice el nombre de dominio completo (FQDN) del AD autoadministrado.

  • Para el parámetro --domain-ou, utilice la OU que creó en su AD autoadministrado.

  • Para el parámetro --domain-auth-secret-arn, utilice el valor del ARN del secreto que creó en un paso anterior.

  • Para el parámetro --domain-dns-ips, utilice las direcciones IPv4 principal y secundaria de los servidores DNS de su AD autoadministrado. Si no tiene una dirección IP de servidor DNS secundaria, introduzca la dirección IP principal dos veces.

Los siguientes comandos de CLI de ejemplo muestran cómo crear, modificar y eliminar una instancia de base de datos de RDS para SQL Server con un dominio de AD autoadministrado.

importante

Si modifica una instancia de base de datos para unirla a un dominio de AD autoadministrado o eliminarla de él, es necesario reiniciar la instancia de base de datos para que la modificación surta efecto. Puede optar por aplicar los cambios inmediatamente o esperar hasta el próximo período de mantenimiento. Si opta por Aplicar inmediatamente, provocará un tiempo de inactividad para las instancias de base de datos Single-AZ. Las instancias de base de datos Multi-AZ realizarán una conmutación por error antes de completar el reinicio. Para obtener más información, consulte Uso de la configuración de la programación de modificaciones.

El siguiente comando de CLI crea una nueva instancia de base de datos de RDS para SQL Server y la une a un dominio de AD autoadministrado.

Para Linux, macOS o Unix:

aws rds create-db-instance \ --db-instance-identifier my-DB-instance \ --db-instance-class db.m5.xlarge \ --allocated-storage 50 \ --engine sqlserver-se \ --engine-version 15.00.4043.16.v1 \ --license-model license-included \ --master-username my-master-username \ --master-user-password my-master-password \ --domain-fqdn my_AD_domain.my_AD.my_domain \ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Para Windows:

aws rds create-db-instance ^ --db-instance-identifier my-DB-instance ^ --db-instance-class db.m5.xlarge ^ --allocated-storage 50 ^ --engine sqlserver-se ^ --engine-version 15.00.4043.16.v1 ^ --license-model license-included ^ --master-username my-master-username ^ --master-user-password my-master-password ^ --domain-fqdn my-AD-test.my-AD.mydomain ^ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ ^ --domain-dns-ips "10.11.12.13" "10.11.12.14"

El siguiente comando de la CLI modifica una instancia de base de datos de RDS para SQL Server existente para que utilice un dominio de AD autoadministrado.

Para Linux, macOS o Unix:

aws rds modify-db-instance \ --db-instance-identifier my-DB-instance \ --domain-fqdn my_AD_domain.my_AD.my_domain \ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-DBinstance ^ --domain-fqdn my_AD_domain.my_AD.my_domain ^ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" ^ --domain-dns-ips "10.11.12.13" "10.11.12.14"

El siguiente comando de la CLI elimina una instancia de base de datos de RDS para SQL Server de un dominio de AD autoadministrado.

Para Linux, macOS o Unix:

aws rds modify-db-instance \ --db-instance-identifier my-DB-instance \ --disable-domain

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-DB-instance ^ --disable-domain

Paso 2: Uso de la autenticación Kerberos o NTLM

Autenticación de NTLM

Cada instancia de base de datos de Amazon RDS contiene un punto de conexión y cada punto de conexión contiene el nombre DNS y el número de puerto para la instancia de base de datos. Para conectarse a su instancia de base de datos mediante una aplicación cliente SQL, necesita el nombre DNS y el número de puerto para la instancia de base de datos. Para autenticarse mediante la autenticación de NTLM, debe conectarse al punto de conexión de RDS o al punto de conexión de oyente si utiliza una implementación multi-AZ.

Durante una interrupción del servicio no planificada o un mantenimiento planificado de la base de datos, Amazon RDS conmuta automáticamente a la base de datos secundaria actualizada para que las operaciones puedan reanudarse rápidamente sin intervención manual. Las instancias principal y secundaria usan el mismo punto de conexión, cuya dirección de red física cambia a la secundaria como parte del proceso de conmutación por error. No tiene que volver a configurar su aplicación cuando se produzca una conmutación por error.

Autenticación de Kerberos

La autenticación basada en Kerberos para RDS para SQL Server requiere que las conexiones se realicen a un nombre de entidad principal de servicio (SPN) específico. Sin embargo, tras un evento de conmutación por error, es posible que la aplicación no conozca el nuevo SPN. Para solucionar este problema, RDS para SQL Server ofrece un punto de conexión basado en Kerberos.

El punto de conexión basado en Kerberos sigue un formato específico. Si su punto de conexión de RDS es rds-instance-name.account-region-hash.aws-region.rds.amazonaws.com, el punto de conexión correspondiente basado en Kerberos sería rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN).

Por ejemplo, si el punto de conexión de RDS es ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com y el nombre de dominio es corp-ad.company.com, el punto de conexión basado en Kerberos sería ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com.

Este punto de conexión basado en Kerberos se puede usar para autenticarse con la instancia de SQL Server mediante Kerberos, incluso después de un evento de conmutación por error, ya que el punto de conexión se actualiza automáticamente para que apunte al nuevo SPN de la instancia principal de SQL Server.

Cómo encontrar su CNAME

Para encontrar su CNAME, conéctese al controlador de dominio y abra Administrador de DNS. Navegue hasta Zonas de búsqueda avanzada y su FQDN.

Navegue por awsrds, aws-region y hash específicos de la cuenta y la región.

Modificación de la cantidad de almacenamiento de una instancia de base de datos

Si después de conectar CNAME desde un cliente remoto, se devuelve una conexión NTLM, compruebe si los puertos necesarios están en la lista de permitidos.

Para comprobar si su conexión usa Kerberos, ejecute la siguiente consulta:

SELECT net_transport, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SSPID;

Si la instancia devuelve una conexión de NTLM al conectarse a un punto de conexión de Kerberos, compruebe la configuración de la red y de los usuarios. Consulte Configure la conectividad de red.

Paso 3: crear inicios de sesión de SQL Server de autenticación de Windows

Use las credenciales del usuario maestro de Amazon RDS para conectarse a la instancia de base de datos de SQL Server como lo haría con cualquier otra instancia de base de datos. Como la instancia de base de datos está unida al dominio de AD autoadministrado, puede aprovisionar inicios de sesión y usuarios de SQL Server. Para ello, utilice la utilidad de usuarios y grupos de AD de su dominio de AD autoadministrado. Los permisos de bases de datos se administran a través de los permisos de SQL Server estándar otorgados y revocados para estos inicios de sesión de Windows.

Para que una cuenta de servicio de dominio de AD autoadministrada se autentique con SQL Server, debe existir un inicio de sesión de Windows de SQL Server para la cuenta de servicio de dominio de AD autoadministrada o un grupo de AD autoadministrado del que el usuario sea miembro. El control detallado del acceso se gestiona mediante la concesión y la revocación de permisos en estos inicios de sesión de SQL Server. Una cuenta de servicio de dominio de AD autoadministrada que no tenga un inicio de sesión de SQL Server o no pertenezca a un grupo de AD autoadministrado con dicho inicio de sesión no puede tener acceso a la instancia de base de datos de SQL Server.

El permiso ALTER ANY LOGIN es necesario para crear un inicio de sesión de SQL Server de AD autoadministrado. Si todavía no ha creado ningún inicio de sesión con este permiso, conéctese como usuario maestro de la instancia de base de datos usando la autenticación de SQL Server y cree sus inicios de sesión de SQL Server de AD autoadministrado bajo el contexto del usuario maestro.

Puede ejecutar un comando de lenguaje de definición de datos (DDL), como el siguiente, para crear un inicio de sesión de SQL Server para una cuenta de servicio de dominio de AD autoadministrada o grupo.

nota

Especifique usuarios y grupos con el nombre de inicio de sesión anterior a Windows 2000 en el formato my_AD_domain\my_AD_domain_user. No puede usar un nombre principal del usuario (UPN) en el formato my_AD_domain_user@my_AD_domain.

USE [master] GO CREATE LOGIN [my_AD_domain\my_AD_domain_user] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english]; GO

Para obtener más información, consulte CREATE LOGIN (Transact-SQL) (Crear inicio de sesión [Transact-SQL]) en la documentación de Microsoft Developer Network.

Los usuarios (tanto humanos como aplicaciones) del dominio pueden conectarse ahora a la instancia de RDS para SQL Server desde un equipo cliente unido al dominio de AD autoadministrado utilizando la autenticación de Windows.