

# Configuración de la autenticación Kerberos para clústeres de base de datos de Aurora MySQL
<a name="aurora-mysql-kerberos-setting-up"></a>

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:

**Topics**
+ [Paso 1: crear un directorio con AWS Managed Microsoft AD](#aurora-mysql-kerberos-setting-up.create-directory)
+ [Paso 2: (opcional) crear una relación de confianza para un Active Directory en las instalaciones](#aurora-mysql-kerberos-setting-up.create-trust)
+ [Paso 3: crear un rol de IAM para que lo use Amazon Aurora](#aurora-mysql-kerberos-setting-up.CreateIAMRole)
+ [Paso 4: crear y configurar usuarios](#aurora-mysql-kerberos-setting-up.create-users)
+ [Paso 5: crear o modificar un clúster de base de datos de Aurora MySQL](#aurora-mysql-kerberos-setting-up.create-modify)
+ [Paso 6: crear usuarios de Aurora MySQL que usen la autenticación Kerberos](#aurora-mysql-kerberos-setting-up.create-logins)
+ [Paso 7: configurar un cliente MySQL](#aurora-mysql-kerberos-setting-up.configure-client)
+ [Paso 8: (opcional) configurar la comparación de nombres de usuario que no distinga mayúsculas de minúsculas](#aurora-mysql-kerberos-setting-up.case-insensitive)

## Paso 1: crear un directorio con AWS Managed Microsoft AD
<a name="aurora-mysql-kerberos-setting-up.create-directory"></a>

Directory Service crea un directorio de Active Directory completamente administrado en la nube de AWS. Cuando crea un directorio de AWS Managed Microsoft AD, 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, 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. 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**

1. Inicie sesión en Consola de administración de AWS y abra la consola de Directory Service en [https://console.aws.amazon.com/directoryservicev2/](https://console.aws.amazon.com/directoryservicev2/).

1. En el panel de navegación, elija **Directories (Directorios)** y, a continuación, **Set up Directory (Configurar directorio)**.

1. Elija **AWS Managed Microsoft AD**. AWS Managed Microsoft AD es la única opción que puede usar actualmente con Amazon RDS.

1. 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 (\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"'<>,.?/)  
**Confirm password**  
Se vuelve a introducir la contraseña del administrador.

1. Elija **Next (Siguiente)**.

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

1. Revise la información del directorio y haga los cambios necesarios. Cuando la información sea correcta, seleccione **Create directory (Crear directorio)**.  
![\[Página de detalles del directorio durante la creación\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/images/WinAuth2.png)

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.

![\[ID del directorio en la página de detalles del directorio\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/images/WinAuth3.png)


## Paso 2: (opcional) crear una relación de confianza para un Active Directory en las instalaciones
<a name="aurora-mysql-kerberos-setting-up.create-trust"></a>

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](#aurora-mysql-kerberos-setting-up.CreateIAMRole).

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](#aurora-mysql-kerberos-setting-up.create-directory)). 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 Directory Service, consulte [Cuándo crear una relación de confianza](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html) 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](Aurora.Overview.Endpoints.md).
Para [bases de datos globales](aurora-global-database.md):  
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.

![\[El enrutamiento DNS corresponde a la confianza creada\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/images/kerberos-auth-trust.png)


## Paso 3: crear un rol de IAM para que lo use Amazon Aurora
<a name="aurora-mysql-kerberos-setting-up.CreateIAMRole"></a>

Para que Amazon Aurora llame a 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 Directory Service.

Cuando crea un clúster de base de datos con la Consola de administración de AWS 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 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.

------
#### [ JSON ]

****  

```
{
  "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.

------
#### [ JSON ]

****  

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

------

## Paso 4: crear y configurar usuarios
<a name="aurora-mysql-kerberos-setting-up.create-users"></a>

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 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 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 ](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/creating_ad_users_and_groups.html)*Guía de administración de AWS Directory Service*.

## Paso 5: crear o modificar un clúster de base de datos de Aurora MySQL
<a name="aurora-mysql-kerberos-setting-up.create-modify"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) de la CLI o la operación [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) de la API de RDS.

  Para obtener instrucciones, consulte [Creación de un clúster de base de datos de Amazon Aurora](Aurora.CreateInstance.md).
+ Modifique un clúster de base de datos de Aurora MySQL existente con la consola, el comando [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) de la CLI o la operación [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) de la API de RDS.

  Para obtener instrucciones, consulte [Modificación de un clúster de base de datos de Amazon Aurora](Aurora.Modifying.md).
+ 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](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) de la CLI o la operación [RestoreDBClusterFromSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromSnapshot.html) de la API de RDS.

  Para obtener instrucciones, consulte [Restauración de una instantánea de clúster de base de datos](aurora-restore-snapshot.md).
+ 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](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html) de la CLI o la operación [RestoreDBClusterToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html) de la API de RDS.

  Para obtener instrucciones, consulte [Restauración de un clúster de base de dato a un momento indicado](aurora-pitr.md).

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. 

### Consola
<a name="aurora-mysql-kerberos-setting-up.create-modify.CON"></a>

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)**.

![\[Configuración de la autenticación Kerberos al crear un clúster de base de datos\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/images/kerberos-auth-create-cluster.png)


### AWS CLI
<a name="aurora-mysql-kerberos-setting-up.create-modify.CLI"></a>

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-\$1") 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 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-name role-name
```

Para Windows:

```
aws rds modify-db-cluster ^
    --db-cluster-identifier mydbcluster ^
    --domain d-ID ^
    --domain-iam-role-name role-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
<a name="aurora-mysql-kerberos-setting-up.create-logins"></a>

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 `user_name` 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.
+ Sustituya `host_name` por el nombre del host. Puede utilizar `%` como comodín. También puede usar direcciones IP específicas para el nombre de host.
+ Sustituya *realm\$1name* 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
<a name="aurora-mysql-kerberos.modify-login"></a>

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
<a name="aurora-mysql-kerberos-setting-up.configure-client"></a>

Para configurar un cliente MySQL, siga estos pasos:

1. Cree un archivo `krb5.conf` (o equivalente) para apuntar al dominio.

1. Verifique que el tráfico puede fluir entre el host cliente y 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 Directory Service.

1. 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.govskope.us.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
<a name="aurora-mysql-kerberos-setting-up.case-insensitive"></a>

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**

1. 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](USER_WorkingWithParamGroups.CreatingCluster.md).

1. Edite el nuevo grupo de parámetros para establecer el valor de `authentication_kerberos_caseins_cmp` en `true`. 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](USER_WorkingWithParamGroups.ModifyingCluster.md).

1. 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](USER_WorkingWithParamGroups.AssociatingCluster.md).

1. Reinicie el clúster de base de datos.