Configuración de la autenticación Kerberos para clústeres de base de datos de Aurora MySQL
Utilice AWS Managed Microsoft AD para configurar la autenticación Kerberos para un clúster de base de datos de Aurora MySQL. Para configurar la autenticación Kerberos, siga los pasos que se indican a continuación:
Temas
Paso 1: crear un directorio con AWS Managed Microsoft AD
AWS Directory Service crea un directorio de Active Directory completamente administrado en la nube de AWS. Cuando crea un directorio de AWS Managed Microsoft AD, AWS Directory Service crea dos controladores de dominio y servidores del sistema de nombres de dominio (DNS) en su nombre. Los servidores de directorios se crean en diferentes subredes de una VPC. Esta redundancia ayuda a garantizar que su directorio permanezca accesible incluso si ocurre un error.
Cuando crea un directorio de AWS Managed Microsoft AD, AWS Directory Service realiza en su nombre las siguientes tareas:
-
Configurar un Active Directory dentro de la VPC.
-
Crea una cuenta de administrador del 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 la almacena. Es posible restablecerla, pero no recuperarla.
-
Crea un grupo de seguridad para los controladores del directorio.
Al lanzar AWS Managed Microsoft AD, AWS crea una unidad organizativa (OU) que contiene todos los objetos del directorio. Esta unidad organizativa tiene el nombre de NetBIOS que introdujo al crear el directorio. Se encuentra en la raíz del dominio, que es propiedad y está administrada por 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, entre las que se incluyen:
-
Crear, actualizar o eliminar usuarios
-
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 dentro de la unidad organizativa
-
Crear unidades organizativas y contenedores adicionales
-
Delegar autoridad
-
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
-
Inicie sesión en AWS Management Console y abra la consola de AWS Directory Service en https://console.aws.amazon.com/directoryservicev2/
. -
En el panel de navegación, elija Directories (Directorios) y, a continuación, Set up Directory (Configurar directorio).
-
Elija AWS Managed Microsoft AD. AWS Managed Microsoft AD es la única opción que puede usar actualmente con Amazon RDS.
-
Introduzca la información siguiente:
- Nombre de DNS del directorio
-
El nombre completo del directorio, como por ejemplo
corp.example.com
. - Nombre NetBIOS del directorio
-
El nombre abreviado del directorio, como
CORP
. - Descripción del directorio
-
(Opcional) Descripción 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
-
Se vuelve a introducir la contraseña del administrador.
-
Elija Siguiente.
-
Escriba la siguiente información en la sección Networking (Redes) y luego seleccione Next (Siguiente):
- VPC
-
VPC del directorio. Cree el clúster de base de datos de Aurora MySQL en esta misma VPC.
- Subredes
-
Subredes de los servidores del directorio. Las dos subredes deben estar en diferentes zonas de disponibilidad.
-
Revise la información del directorio y haga los cambios necesarios. Cuando la información sea correcta, seleccione Create directory (Crear directorio).
El directorio tarda varios minutos en crearse. Cuando se haya creado correctamente, el valor de Status (Estado) cambiará a Active (Activo).
Para consultar información de su directorio, seleccione el nombre del directorio en la descripción de directorios. Anote el valor de ID del directorio porque lo necesitará cuando cree o modifique su clúster de base de datos de Aurora MySQL.

Paso 2: (opcional) crear una relación de confianza para un Active Directory en las instalaciones
Si no planea usar su propio Microsoft Active Directory local, vaya a Paso 3: crear un rol de IAM para que lo use Amazon Aurora.
Para usar la autenticación Kerberos con Active Directory en las instalaciones, debe crear una relación de dominio de confianza entre Microsoft Active Directory en las instalaciones y el directorio AWS Managed Microsoft AD (creado en Paso 1: crear un directorio con AWS Managed Microsoft AD). La confianza puede ser unidireccional, donde el directorio AWS Managed Microsoft AD confía en Microsoft Active Directory local. La confianza también puede ser bidireccional, donde ambos Active Directories confían entre sí. Para obtener más información acerca de la configuración de relaciones de confianza con AWS Directory Service, consulte Cuándo crear una relación de confianza en la guía de administración de AWS Directory Service.
nota
Si utiliza Microsoft Active Directory en las instalaciones:
-
Los clientes de Windows no pueden conectarse con utilizando punto de conexión personalizados de Aurora. Para obtener más información, consulte Conexiones de puntos de conexión de Amazon Aurora.
-
Para bases de datos globales:
-
Los clientes de Windows solo pueden conectarse mediante los puntos de enlace de la instancia o los del clúster en la Región de AWS principal de la base de datos global.
-
Los clientes de Windows no pueden conectarse mediante los puntos de enlace del clúster en Regiones de AWS secundarias.
-
Asegúrese de que el nombre de dominio local de Microsoft Active Directory incluya un enrutamiento de sufijo DNS que corresponda a la relación de confianza recién creada. En la siguiente captura de pantalla, se muestra un ejemplo.

Paso 3: crear un rol de IAM para que lo use Amazon Aurora
Para que Amazon Aurora llame a AWS Directory Service en su nombre, necesita un rol de AWS Identity and Access Management (IAM) que utilice la política de IAM administrada AmazonRDSDirectoryServiceAccess
. Este rol permite a Aurora realizar llamadas a AWS Directory Service.
Cuando crea un clúster de base de datos con la AWS Management Console y tiene el permiso iam:CreateRole
, la consola crea este rol automáticamente. En este caso, el nombre del rol es rds-directoryservice-kerberos-access-role
. De no ser así, debe crear el rol de IAM manualmente. Cuando cree este rol de IAM, elija Directory Service
y asocie la política administrada de AWS AmazonRDSDirectoryServiceAccess
a este.
A fin de obtener más información acerca de la creación de roles de IAM para un servicio, consulte Creación de un rol para delegar permisos a un servicio de AWS en la guía del usuario de IAM.
Opcionalmente, puede crear políticas con los permisos requeridos en vez de utilizar la política de IAM administrad AmazonRDSDirectoryServiceAccess
. En este caso, el rol de IAM debe tener la siguiente política de confianza de IAM.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
El rol debe también tener la siguiente política de rol de IAM.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }
Paso 4: crear y configurar usuarios
Puede crear usuarios con la herramienta Usuarios y equipos de Active Directory. Esta herramienta forma parte 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.
Para crear usuarios en un directorio de AWS Directory Service, tiene que usar una instancia en las instalaciones o de Amazon EC2 basada en Microsoft Windows que esté unida a su directorio de AWS Directory Service. Debe iniciar sesión en la instancia como usuario con privilegios para crear usuarios. Para obtener más información, consulte Administrar usuarios y grupos de AWS Managed Microsoft AD en la Guía de administración de AWS Directory Service.
Paso 5: crear o modificar un clúster de base de datos de Aurora MySQL
Cree o modifique un clúster de base de datos de Aurora MySQL para usarlo con su directorio. Puede utilizar la consola, la AWS CLI o la API de RDS para asociar un clúster de base de datos con un directorio. Puede realizar esta tarea de una de las siguientes formas:
-
Cree un nuevo clúster de base de datos de Aurora MySQL con la consola, el comando create-db-cluster de la CLI o la operación CreateDBCluster de la API de RDS.
Para obtener instrucciones, consulte Creación de un clúster de base de datos de Amazon Aurora.
-
Modifique un clúster de base de datos de Aurora MySQL existente con la consola, el comando modify-db-cluster de la CLI o la operación ModifyDBCluster de la API de RDS.
Para obtener instrucciones, consulte Modificación de un clúster de base de datos de Amazon Aurora.
-
Restaure un clúster de base de datos de Aurora MySQL a partir de una instantánea de base de datos con la consola, el comando restore-db-cluster-from-snapshot de la CLI o la operación RestoreDBClusterFromSnapshot de la API de RDS.
Para obtener instrucciones, consulte Restauración de una instantánea de clúster de base de datos.
-
Restaure un clúster de base de datos de Aurora MySQL a un punto en el tiempo con la consola, el comando restore-db-cluster-to-point-in-time de la CLI o la operación RestoreDBClusterToPointInTime de la API de RDS.
Para obtener instrucciones, consulte Restauración de un clúster de base de dato a un momento indicado.
La autenticación Kerberos solo es compatible con clústeres de base de datos de Aurora MySQL en una VPC. El clúster de base de datos puede estar en la misma VPC que el directorio o en una VPC diferente. La VPC del clúster de base de datos tiene que tener un grupo de seguridad de VPC que permita la comunicación saliente con su directorio.
Si utiliza la consola para crear, modificar o restaurar un clúster de base de datos, elija Kerberos authentication (Autenticación de Kerberos) en la sección Database authentication (Autenticación de base de datos). Elija Browse Directory (Examinar directorio) y, a continuación, seleccione el directorio o elija Create a new directory (Crear un nuevo directorio).

Puede utilizar la AWS CLI o la API de RDS para asociar un clúster de base de datos con un directorio. Es necesario incluir los parámetros siguientes para que el clúster de base de datos pueda usar el directorio de dominio que ha creado:
-
Para el parámetro
--domain
, utilice el identificador de dominio (identificador "d-*") que se generó cuando creó el directorio. -
Para el parámetro
--domain-iam-role-name
, utilice el rol que creó que usa la políticaAmazonRDSDirectoryServiceAccess
de IAM administrada.
Por ejemplo, el siguiente comando de la CLI modifica un clúster de base de datos para que use un directorio.
Para Linux, macOS o Unix:
aws rds modify-db-cluster \ --db-cluster-identifier
mydbcluster
\ --domain d-ID
\ --domain-iam-role-namerole-name
Para Windows:
aws rds modify-db-cluster ^ --db-cluster-identifier
mydbcluster
^ --domain d-ID
^ --domain-iam-role-namerole-name
importante
Si modifica un clúster de base de datos para activar la autenticación Kerberos, reinicie las instancias de base de datos del lector después de hacer el cambio.
Paso 6: crear usuarios de Aurora MySQL que usen la autenticación Kerberos
El clúster de base de datos está unido al dominio de AWS Managed Microsoft AD. Por lo tanto, puede crear usuarios de Aurora MySQL a partir de usuarios de Active Directory en su dominio. Los permisos de base de datos se administran mediante permisos estándar de Aurora MySQL que se conceden y revocan a estos usuarios.
Puede permitir que un usuario de Active Directory se autentique con Aurora MySQL. Para ello, primero use las credenciales del usuario principal de Amazon RDS para conectarse al clúster de base de datos de Aurora MySQL igual que con cualquier otro clúster de base de datos. Después de iniciar sesión, cree un usuario autenticado externamente con la autenticación Kerberos en Aurora MySQL, tal y como se muestra a continuación:
CREATE USER
user_name
@'host_name
' IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name
';
-
Sustituya
por el nombre de usuario. Los usuarios (tanto humanos como aplicaciones) del dominio pueden conectarse ahora al clúster de base de datos desde un equipo cliente unido al dominio utilizando la autenticación Kerberos.user_name
-
Sustituya
por el nombre del host. Puede utilizarhost_name
%
como comodín. También puede usar direcciones IP específicas para el nombre de host. -
Sustituya
realm_name
por el nombre del ámbito del directorio del dominio. El nombre del ámbito suele ser el mismo que el nombre de dominio DNS en mayúsculas (por ejemplo,CORP.EXAMPLE.COM
). Un ámbito es un grupo de sistemas que utilizan el mismo centro de distribución de claves de Kerberos.
En el siguiente ejemplo, se crea un usuario de base de datos con el nombre Admin
que se autentica en Active Directory con el nombre de ámbito MYSQL.LOCAL
.
CREATE USER Admin@'%' IDENTIFIED WITH 'authentication_kerberos' BY 'MYSQL.LOCAL';
Modificación de un inicio de sesión de Aurora MySQL existente
También puede modificar un inicio de sesión de Aurora MySQL existente para usar la autenticación Kerberos mediante la siguiente sintaxis:
ALTER USER
user_name
IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name
';
Paso 7: configurar un cliente MySQL
Para configurar un cliente MySQL, siga estos pasos:
-
Cree un archivo
krb5.conf
(o equivalente) para apuntar al dominio. -
Verifique que el tráfico puede fluir entre el host cliente y AWS Directory Service. Use una utilidad de red como, por ejemplo, Netcat, para lo siguiente:
-
Verificar el tráfico sobre DNS para el puerto 53.
-
Verificar el tráfico sobre TCP/UDP para el puerto 52 y para Kerberos, lo que incluye los puertos 88 y 464 para AWS Directory Service.
-
-
Verifique que el tráfico puede fluir entre el host cliente y la instancia de base de datos sobre el puerto de base de datos. Por ejemplo, utilice
mysql
para conectarse a la base de datos y acceder a ella.
A continuación, se muestra un contenido de krb5.conf
de ejemplo para AWS Managed Microsoft AD.
[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM
A continuación, se muestra un contenido de krb5.conf
de ejemplo para un Microsoft Active Directory en las instalaciones.
[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } ONPREM.COM = { kdc = onprem.com admin_server = onprem.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM .onprem.com = ONPREM.COM onprem.com = ONPREM.COM .rds.amazonaws.com = EXAMPLE.COM .amazonaws.com.rproxy.goskope.com.cn = EXAMPLE.COM .amazon.com = EXAMPLE.COM
Paso 8: (opcional) configurar la comparación de nombres de usuario que no distinga mayúsculas de minúsculas
De forma predeterminada, las mayúsculas y minúsculas del nombre de usuario de la base de datos de MySQL deben ser iguales que las del inicio de sesión en Active Directory. Sin embargo, ahora puede usar la comparación de nombres de usuario que no distinga mayúsculas de minúsculas con el complemento authentication_kerberos
. Para ello, defina el parámetro authentication_kerberos_caseins_cmp
del clúster de base de datos en true
.
Utilización de la comparación de nombres de usuario que no distingue mayúsculas de minúsculas
-
Cree un grupo de parámetros de clúster de base de datos personalizado. Siga los procedimientos indicados en Creación de un grupo de parámetros de clúster de base de datos en Amazon Aurora.
-
Edite el nuevo grupo de parámetros para establecer el valor de
authentication_kerberos_caseins_cmp
entrue
. Siga los procedimientos indicados en Modificación de los parámetros en un grupo de parámetros de clúster de base de datos en Amazon Aurora. -
Asocie el grupo de parámetros del clúster de base de datos con el clúster de base de datos de MySQL. Siga los procedimientos indicados en Asociación de un grupo de parámetros de clúster de base de datos con un clúster de base de datos en Amazon Aurora.
-
Reinicie el clúster de base de datos.