Uso de la autenticación de Windows con una instancia de base de datos de Amazon RDS for SQL Server - Amazon Relational Database Service

Uso de la autenticación de Windows con una instancia de base de datos de Amazon RDS for SQL Server

Puede usar la autenticación de Microsoft Windows para autenticar a los usuarios cuando se conecten a su instancia de base de datos de Amazon RDS for Microsoft 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.

Amazon RDS admite la autenticación de Windows para SQL Server en todas las regiones de AWS, excepto las siguientes:

  • Medio Oriente (Baréin)

  • AWS GovCloud (EE.UU. Este)

  • AWS GovCloud (US-West)

Amazon RDS usa el modo mixto para la autenticación de Windows. Este método significa que el usuario maestro (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 AWS Directory Service Administration Guide.

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 en 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 Consola de administración de AWS 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 de AWS para su cuenta de AWS. Los puntos de enlace de AWS STS están activos de forma predeterminada en todas las regiones de 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 acerca de la creación de usuarios y grupos en Active Directory, consulte Administrar usuarios y grupos de AWS Managed Microsoft AD en la AWS Directory Service Administration Guide.

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

  5. Use 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 completamente administrado 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 se crea un directorio de AWS Managed Microsoft AD, AWS Directory Service realiza las siguientes tareas en su nombre:

  • 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 AWS, que también se encarga de su administración.

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. Seleccione Next (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 CORP.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. Seleccione 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. Seleccione 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.

Si usa una política personalizada para unirse a un dominio en lugar de usar la política AmazonRDSDirectoryServiceAccess administrada por AWS, 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.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }

Cree un rol de IAM con esta política. 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 Agregar usuarios y grupos (Simple AD y AWS Managed Microsoft AD) en la AWS Directory Service Administration Guide.

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 AWS Transit 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 de 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 Guía de administración de AWS Directory Service.

  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

Para 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 siguiente comando de lenguaje de definición de datos (DDL) para crear un inicio de sesión de SQL Server para el usuario o el grupo de Active Directory.

CREATE LOGIN [<user or group>] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];

Especifique usuarios o 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. Para obtener más información acerca de CREATE LOGIN, vaya a https://msdn.microsoft.com/en-us/library/ms189751.aspx en la documentación de Microsoft Developer Network.

Los usuarios (tanto humanos como aplicaciones) del dominio pueden conectarse ahora a la instancia de SQL Server de RDS 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 su 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 de 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 la próxima ventana 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 la próxima ventana 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.


				Conectarse a SQL Server 2012

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 al 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.