Uso de AWS Managed Active Directory con RDS para SQL Server - Amazon Relational Database Service

Uso de AWS Managed Active Directory con RDS para SQL Server

Puede usar AWS Managed Microsoft AD para autenticar a los usuarios con autenticación de Windows cuando se conecten a su instancia de base de datos de RDS para SQL Server. La instancia de base de datos funciona con AWS Directory Service for Microsoft Active Directory, también denominado AWS Managed Microsoft AD, para habilitar la autenticación de Windows. Cuando los usuarios se autentican con una instancia de base de datos de SQL Server unida al dominio de confianza, las solicitudes de autenticación se reenvían al directorio de dominio que se ha creado con AWS Directory Service.

Disponibilidad en regiones y versiones

Amazon RDS solo admite el uso de AWS Managed Microsoft AD para la autenticación de Windows. RDS no admite el uso de AD Connector. Para obtener más información, consulte los siguientes temas:

Para obtener información sobre la disponibilidad en versiones y regiones, consulte Autenticación Kerberos con RDS para SQL Server.

Información sobre la configuración de la autenticación de Windows

Amazon RDS usa el modo mixto para la autenticación de Windows. Este método significa que el usuario principal (el nombre y la contraseña que se han utilizado para crear la instancia de base de datos de SQL Server) usa la autenticación de SQL. Dado que la cuenta de usuario maestro es una credencial privilegiada, debe restringir el acceso a esta cuenta.

Para realizar la autenticación de Windows con un Microsoft Active Directory en las instalaciones o autoalojado, cree una relación de confianza entre bosques. La confianza puede ser unidireccional o bidireccional. Para obtener más información acerca de la configuración de relaciones de confianza entre bosques con AWS Directory Service, consulte Cuándo crear una relación de confianza en la Guía de administración de AWS Directory Service.

Para configurar la autenticación de Windows para una instancia de base de datos de SQL Server, lleve a cabo los siguientes pasos, que se explican con más detalle e Configuración de la autenticación de Windows para las instancias de base de datos de SQL Server:

  1. Use AWS Managed Microsoft AD, desde la AWS Management Console o la API de AWS Directory Service, para crear un directorio AWS Managed Microsoft AD.

  2. Si usa la AWS CLI o la API de Amazon RDS para crear la instancia de base de datos de SQL Server, cree un rol de AWS Identity and Access Management (IAM). Este rol utiliza la política de IAM administrada AmazonRDSDirectoryServiceAccess y permite a Amazon RDS realizar llamadas a su directorio. Si usa la consola para crear la instancia de base de datos de SQL Server, AWS crea el rol de IAM automáticamente.

    Para que el rol permita el acceso, el punto de enlace AWS Security Token Service (AWS STS) debe activarse en la región AWS para su cuenta AWS. Los puntos de enlace de AWS STS están activos de forma predeterminada en todas las regiones AWS y puede usarlos sin ninguna acción posterior. Para obtener más información, consulte Administración de AWS STS en una Región de AWS en la guía del usuario de IAM.

  3. Cree y configure usuarios y grupos en el directorio de AWS Managed Microsoft AD usando las herramientas de Microsoft Active Directory. Para obtener más información sobre la creación de usuarios en su Active Directory, consulte Administrar usuarios y grupos en AWS Managed Microsoft AD en la guía de administración de AWS Directory Service.

  4. Si tiene previsto ubicar el directorio y la instancia de base de datos en diferentes VPC, habilite el tráfico entre VPC.

  5. Utilice Amazon RDS para crear una nueva instancia de base de datos de SQL Server desde la consola, la AWS CLI o la API de Amazon RDS. En la solicitud de creación, proporcione el identificador de dominio (identificador «d-*») que se generó cuando creó el directorio y el nombre del rol. También puede modificar una instancia de base de datos de SQL Server existente para usar la autenticación de Windows mediante la configuración de los parámetros dominio y rol de IAM para la instancia de base de datos.

  6. 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 AWS Managed Microsoft AD, puede aprovisionar inicios de sesión y usuarios de SQL Server desde los usuarios y grupos de Active Directory de su dominio. (Estos se conocen como inicios de sesión de SQL Server «Windows»). 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.

Creación del punto de enlace para la autenticación Kerberos

La autenticación basada en Kerberos requiere que el punto de enlace sea el nombre de host especificado por el cliente, un punto y, a continuación, el nombre de dominio completo (FQDN). Por ejemplo, el siguiente ejemplo muestra un punto de enlace que se podría usarse con la autenticación basada en Kerberos. En este ejemplo, el nombre de host de la instancia de base de datos de SQL Server es ad-test y el nombre de dominio es corp-ad.company.com.

ad-test.corp-ad.company.com

Si desea asegurarse de que su conexión use Kerberos, ejecute la siguiente consulta:

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

Configuración de la autenticación de Windows para las instancias de base de datos de SQL Server

Debe usar AWS Directory Service for Microsoft Active Directory, también llamado AWS Managed Microsoft AD, para configurar la autenticación de Windows para una instancia de base de datos de SQL Server. Para configurar la autenticación de Windows, lleve a cabo los siguientes pasos.

Paso 1: crear un directorio con AWS Directory Service for Microsoft Active Directory

AWS Directory Service crea un directorio de Microsoft Active Directory totalmente gestionado en la nube de AWS. Cuando crea un directorio AWS Managed Microsoft AD, AWS Directory Service crea dos controladores de dominio y servidores del Servicio de nombres de dominio (DNS) en su nombre. Los servidores de directorio se crean en dos subredes en dos zonas de disponibilidad diferentes dentro de una VPC. Esta redundancia ayuda a garantizar que su directorio permanezca accesible incluso si ocurre un fallo.

Cuando crea un directorio de AWS Managed Microsoft AD, AWS Directory Service realiza en su nombre las siguientes tareas:

  • Configura un Microsoft Active Directory dentro de la VPC.

  • Crea una cuenta de administrador para el directorio con el nombre de usuario Admin y la contraseña especificada. Esta cuenta le permite administrar el directorio.

    nota

    Asegúrese de guardar esta contraseña. AWS Directory Service no almacena esta contraseña y no podrá recuperarla ni restablecerla.

  • Crea un grupo de seguridad para los controladores del directorio.

Al lanzar AWS Directory Service for Microsoft Active Directory, AWS crea una unidad organizativa (OU) que contiene todos los objetos del directorio. Esta unidad organizativa, que tiene el nombre de NetBIOS que escribió al crear el directorio, se encuentra en la raíz del dominio. La raíz del dominio es propiedad de , que también se encarga de su administració AWS.

La cuenta admin que se creó con el directorio de AWS Managed Microsoft AD dispone de permisos para realizar las actividades administrativas más habituales para la unidad organizativa:

  • Cree, actualice o elimine usuarios, grupos y equipos.

  • Añadir recursos a su dominio, como servidores de archivos o de impresión y, a continuación, asignar permisos para esos recursos a usuarios y grupos dentro de la unidad organizativa.

  • Crear unidades organizativas y contenedores adicionales.

  • Delegar autoridad.

  • Crear y enlazar políticas de grupo.

  • Restaurar objetos eliminados de la papelera de reciclaje de Active Directory.

  • Ejecutar módulos de AD y DNS de Windows PowerShell en el servicio web de Active Directory.

La cuenta admin también tiene derechos para realizar las siguientes actividades en todo el dominio:

  • Administrar configuraciones DNS (agregar, quitar o actualizar registros, zonas y programas de envío).

  • Ver logs de eventos DNS.

  • Ver logs de eventos de seguridad.

Para crear un directorio con AWS Managed Microsoft AD
  1. En el panel de navegación de la consola de AWS Directory Service, elija Directories (Directorios) y, a continuación, elija Set up Directory (Configurar directorio).

  2. Elija AWS Managed Microsoft AD. Es la única opción que se admite actualmente para el uso con Amazon RDS.

  3. Elija Siguiente.

  4. En la página Enter directory information (Especifique la información del directorio), facilite la siguiente información:

    Edición

    Elija la edición que se adapte a sus necesidades.

    Nombre de DNS del directorio

    El nombre completo del directorio, como por ejemplo corp.example.com. SQL Server no admite nombres de más de 47 caracteres.

    Nombre NetBIOS del directorio

    Un nombre abreviado del directorio opcional, como COR CORP.

    Descripción del directorio

    Descripción opcional del directorio.

    Contraseña de administrador

    Contraseña del administrador del directorio. El proceso de creación de directorios crea una cuenta de administrador con el nombre de usuario Admin y esta contraseña.

    La contraseña del administrador del directorio no puede contener la palabra admin. La contraseña distingue entre mayúsculas y minúsculas y debe tener un mínimo de 864 caracteres y un máximo de 64. También debe contener al menos un carácter de tres de las siguientes categorías:

    • Letras minúsculas (a-z)

    • Letras mayúsculas (A-Z)

    • Números (0-9)

    • Caracteres no alfanuméricos (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    Confirm password

    Vuelva a escribir la contraseña de administrador.

  5. Elija Siguiente.

  6. En la página Choose VPC and subnets (Elegir la VPC y las subredes), proporcione la información siguiente:

    VPC

    Elija la VPC del directorio.

    nota

    Puede ubicar el directorio y la instancia de base de datos en diferentes VPC pero, si lo hace así, habilite el tráfico entre VPC. Para obtener más información, consulte Paso 4: habilitar el tráfico entre VPC entre el directorio y la instancia de base de datos.

    Subredes

    Elija las subredes de los servidores del directorio. Las dos subredes deben estar en diferentes zonas de disponibilidad.

  7. Elija Siguiente.

  8. Revise la información del directorio. Si es necesario realizar algún cambio, seleccione Privous (Anterior). Cuando la información sea correcta, seleccione Create directory (Crear directorio).

    
							Página Review and create (Revisión y creación)

La creación del directorio tarda varios minutos. Cuando se haya creado correctamente, el valor de Status (Estado) cambiará a Active (Activo).

Para ver información acerca de su directorio, seleccione el ID del directorio en la lista de directorios. Anote el valor de Directory ID (ID de directorio). Necesitará este valor cuando cree o modifique la instancia de base de datos de SQL Server.


					Detalles del directorio

Paso 2: crear el rol de IAM que usará Amazon RDS

Si usa la consola para crear la instancia de base de datos de SQL Server, puede omitir este paso. Si usa la CLI o la API de RDS para crear su propia instancia de base de datos de SQL Server, debe crear un rol de IAM que use la política de IAM administrada AmazonRDSDirectoryServiceAccess. Este rol permite a Amazon RDS realizar llamadas a AWS Directory Service en su nombre.

Si usa una política personalizada para unirse a un dominio en lugar de usar la política AWS administrada por AmazonRDSDirectoryServiceAccess, debe permitir la acción ds:GetAuthorizedApplicationDetails. Este requisito entrará en vigor a partir de julio de 2019, debido a un cambio en la API de AWS Directory Service.

La siguiente política de IAM, AmazonRDSDirectoryServiceAccess, proporciona acceso a AWS Directory Service.

ejemplo Política de IAM para proporcionar acceso a AWS Directory Service
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }

Le recomendamos que utilice las claves de contexto de condición globales de aws:SourceArn y aws:SourceAccount en las relaciones de confianza basadas en recursos para limitar los permisos del servicio a un recurso específico. Esta es la forma más eficaz de protegerse contra el problema del suplente confuso.

Puede utilizar claves de contexto de condición globales y hacer que el valor de aws:SourceArn contenga el ID de cuenta. En estos casos, el valor de aws:SourceAccount y la cuenta del valor de aws:SourceArn deben utilizar el mismo ID de cuenta cuando se utilizan en la misma instrucción.

  • Use aws:SourceArn si quiere acceso entre servicios para un único recurso.

  • Use aws:SourceAccount si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.

En la relación de confianza, asegúrese de utilizar la clave de contexto de condición global aws:SourceArn con el nombre de recurso de Amazon (ARN) completo de los recursos que acceden al rol. Para la autenticación de Windows, asegúrese de incluir las instancias de base de datos, tal y como se muestra en el siguiente ejemplo.

ejemplo relación de confianza con la clave de contexto de condición global para la autenticación de Windows
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": [ "arn:aws:rds:Region:my_account_ID:db:db_instance_identifier" ] } } } ] }

Cree un rol de IAM con esta política de IAM y su relación de confianza. Para obtener más información acerca de la creación de roles de IAM, consulte Creación de políticas administradas por el cliente en la Guía del usuario de IAM.

Paso 3: crear y configurar usuarios y grupos

Puede crear usuarios y grupos con la herramienta Usuarios y equipos de Active Directory. Esta herramienta es una de las herramientas Active Directory Domain Services y Active Directory Lightweight Directory Services. Los usuarios representan a las personas físicas o entidades que tienen acceso al directorio. Los grupos resultan muy útiles para conceder o denegar privilegios a un conjunto de usuarios en lugar de asignar esos privilegios a cada usuario por separado.

Para crear usuarios y grupos en un directorio de AWS Directory Service, debe estar conectado a una instancia EC2 de Windows que sea miembro del directorio de AWS Directory Service. También debe haber iniciado sesión como usuario con privilegios para crear usuarios. Para obtener más información, consulte la sección para agregar usuarios y grupos (Simple AD yAWS Managed Microsoft AD) en la guía de administraciónde AWS Directory Service.

Paso 4: habilitar el tráfico entre VPC entre el directorio y la instancia de base de datos

Si tiene previsto ubicar el directorio y la instancia de base de datos en la misma VPC, omita este paso y continúe con Paso 5: crear o modificar una instancia de base de datos de SQL Server.

Si tiene previsto ubicar el directorio y la instancia de base de datos en diferentes VPC, configure el tráfico entre VPC mediante la interconexión de VPC o AWSTransit Gateway.

El siguiente procedimiento permite el tráfico entre VPC mediante la interconexión de VPC. Siga las instrucciones de ¿Qué es una interconexión de VPC? en la Guía de interconexión de Amazon Virtual Private Cloud.

Para habilitar el tráfico entre VPC mediante la interconexión de VPC
  1. Configure las reglas de enrutamiento de VPC adecuadas para garantizar que el tráfico de red pueda fluir en ambos sentidos.

  2. Asegúrese de que el grupo de seguridad de la instancia de base de datos pueda recibir tráfico de entrada del grupo de seguridad del directorio.

  3. Asegúrese de que no haya una regla de lista de control de acceso (ACL) a la red para bloquear el tráfico.

Si una cuenta de AWS distinta es la propietaria del directorio, debe compartirlo.

Para compartir el directorio entre cuentas de AWS
  1. Comience a compartir el directorio con la cuenta AWS en la que se creará la instancia de base de datos siguiendo las instrucciones de Tutorial: Uso compartido del directorio de AWS Managed Microsoft AD para realizar la unión al dominio fluida de EC2 en la AWS Directory ServiceGuía de administración.

  2. Inicie sesión en la consola de AWS Directory Service utilizando la cuenta para la instancia de base de datos y asegúrese de que el dominio tiene el estado SHARED antes de continuar.

  3. Una vez iniciada sesión en la consola de AWS Directory Service utilizando la cuenta de la instancia de base de datos, anote el valor de Directory ID (ID de directorio). Utilice este identificador de directorio para unir la instancia de base de datos al dominio.

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

Cree o modifique una instancia de base de datos de SQL Server para usarla con su directorio. Puede utilizar la consola, CLI, o la API de RDS para asociar una instancia de base de datos con un directorio. Puede hacerlo de una de las siguientes formas:

La autenticación Windows solo es compatible con instancias de base de datos de SQL Server en una VPC.

Para que la instancia de base de datos pueda usar el directorio de dominio que ha creado, se precisa lo siguiente:

  • Para Directory (Directorio), elija el identificador de dominio (d-ID) que se generó cuando creó el directorio.

  • Asegúrese de que el grupo de seguridad de VPC tiene una regla de salida que permita a la instancia de base de datos comunicarse con el directorio.


					Directorio de autenticación de Windows de Microsoft SQL Server

Cuando utilice la AWS CLI, se necesitan los siguientes parámetros para que la instancia de base de datos pueda usar el directorio que ha creado:

  • Para el parámetro --domain, utilice el identificador de dominio (identificador «d-ID») que se generó cuando creó el directorio.

  • Para el parámetro --domain-iam-role-name, utilice el rol que creó que usa la política AmazonRDSDirectoryServiceAccess de IAM administrada.

Por ejemplo, el siguiente comando de CLI modifica una instancia de base de datos para usar un directorio.

Para Linux, macOS, o Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --domain d-ID \ --domain-iam-role-name role-name

En Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --domain d-ID ^ --domain-iam-role-name role-name
importante

Si modifica una instancia de base de datos para habilitar la autenticación Kerberos, reinicie la instancia de base de datos después de realizar el cambio.

Paso 6: 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 AWS Managed Microsoft AD, puede aprovisionar inicios de sesión y usuarios de SQL Server. Esto se realiza desde los usuarios y grupos de Active Directory de su dominio. 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 un usuario de Active Directory se autentique con SQL Server, debe existir un inicio de sesión de Windows de SQL Server para el usuario o para un grupo 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. Un usuario que no tenga un inicio de sesión de SQL Server o no pertenezca a un grupo 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 Active Directory. 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.

Ejecute el comando de lenguaje de definición de datos (DDL), como en el siguiente ejemplo, para crear un inicio de sesión de SQL Server para el usuario o el grupo de Active Directory.

nota

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

USE [master] GO CREATE LOGIN [mydomain\myuser] 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 for SQL Server desde un equipo cliente unido al dominio utilizando la autenticación de Windows.

Administración de una instancia de base de datos en un dominio

Puede usar la consola, la AWS CLI o la API de Amazon RDS para administrar la instancia de base de datos y la relación con su dominio. Por ejemplo, puede mover la instancia de base de datos dentro, fuera o entre dominios.

Por ejemplo, con la API de Amazon RDS puede hacer lo siguiente:

  • Para volver a intentar una unión de dominio para una suscripción que haya generado un error, use la operación ModifyDBInstance de la API y especifique el ID del directorio de suscripción actual.

  • Para actualizar el nombre del rol de IAM para la suscripción, use la operación ModifyDBInstance de la API y especifique el ID del directorio de la suscripción actual y el nuevo rol de IAM.

  • Para eliminar una instancia de base de datos de un dominio, use la operación ModifyDBInstance de la API y especifique none como parámetro del dominio.

  • Para mover una instancia de base de datos de un dominio a otro, use la operación ModifyDBInstance de la API y especifique el identificador del nuevo dominio como parámetro del dominio.

  • Para ver la suscripción de cada instancia de base de datos, use la operación DescribeDBInstances de la API.

Descripción de la pertenencia a los dominios

Una vez que haya creado o modificado una instancia de base de datos, esta se convierte en miembro del dominio. La consola AWS indica el estado de la pertenencia del dominio para la instancia de base de datos. El estado de la instancia de base de datos puede ser uno de los siguientes:

  • joined: la instancia es miembro del dominio.

  • joining: la instancia está en el proceso de convertirse en miembro del dominio.

  • pending-join: la suscripción de la instancia está pendiente.

  • pending-maintenance-join: AWS intentará convertir la instancia en miembro del dominio durante el próximo periodo de mantenimiento programado.

  • pending-removal: la eliminación de la instancia del dominio está pendiente.

  • pending-maintenance-removal: AWS intentará eliminar la instancia del dominio durante el próximo periodo de mantenimiento programado.

  • error: un problema de configuración ha impedido que la instancia se una al dominio. Compruebe y corrija la configuración antes de volver a ejecutar el comando para modificar la instancia.

  • removing: la instancia se está eliminando del dominio.

Una solicitud para convertirse en miembro de un dominio puede generar un error a causa de un problema de conectividad de la red o de un rol de IAM incorrecto. Por ejemplo, puede crear una instancia de base de datos o modificar una instancia existente y que se produzca un error al intentar que la instancia de base de datos se convierta en miembro de un dominio. En este caso, vuelva a emitir el comando para crear o modificar la instancia de base de datos o modificar la instancia recién creada para unirse al dominio.

Conexión a SQL Server con la autenticación de Windows

Para conectarse a SQL Server con la autenticación de Windows, debe haber iniciado sesión en un equipo unido al dominio como usuario del dominio. Después de lanzar SQL Server Management Studio, elija Windows Authentication como tipo de autenticación, como se puede ver a continuación.


				Conéctese a SQL Server con la autenticación de Windows

Restauración de una instancia de base de datos de SQL Server y adición de esta a un dominio

Puede restaurar una instantánea de base de datos o realizar una restauración a un momento dado (PITR) para una instancia de base de datos de SQL Server y, a continuación, añadirla a un dominio. Una vez que la instancia de base de datos se haya restaurado, modifíquela usando el proceso que se explica en la sección Paso 5: crear o modificar una instancia de base de datos de SQL Server para agregar la instancia de base de datos a un dominio.