

# Configuración de la autenticación de Kerberos para instancias de base de datos de Amazon RDS para Db2
<a name="db2-kerberos-setting-up"></a>

Utilice AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) para configurar la autenticación de Kerberos de una instancia de base de datos de RDS para Db2. Para configurar la autenticación de Kerberos, siga estos pasos:

**Topics**
+ [Paso 1: crear un directorio con AWS Managed Microsoft AD](#db2-kerberos-setting-up.create-directory)
+ [Paso 2: crear una relación de confianza](#db2-kerberos-setting-up-create-forest-trust)
+ [Paso 3: crear un rol de IAM para que Amazon RDS pueda acceder a Directory Service](#db2-kerberos-setting-up-create-iam-role)
+ [Paso 4: crear y configurar usuarios](#db2-kerberos-setting-up.create-users)
+ [Paso 5: crear un grupo de administración de RDS para Db2 en AWS Managed Microsoft AD](#db2-kerberos-setting-up-vpc-peering)
+ [Paso 6: modificar el parámetro de base de datos](#db2-kerberos-setting-up-modify-db-parameter)
+ [Paso 7: crear o modificar una instancia de base de datos de RDS para Db2](#db2-kerberos-setting-up-create-modify)
+ [Paso 8: recuperar el SID del grupo de Active Directory en PowerShell](#db2-kerberos-setting-up-retrieve-ad-group-sid)
+ [Paso 9: agregar SID a las asignaciones de GroupName a la instancia de base de datos de RDS para Db2](#db2-kerberos-setting-up-add-sid-group-mapping)
+ [Paso 10: configurar un cliente Db2](#db2-kerberos-setting-up-create-logins)

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

Directory Service crea un Active Directory totalmente administrado en Nube de AWS. Al crear un directorio de AWS Managed Microsoft AD, Directory Service crea dos controladores de dominio y servidores DNS para usted. 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 fallo. 

 Cuando crea un directorio de AWS Managed Microsoft AD, Directory Service realiza en su nombre las siguientes tareas: 
+ Configura 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. 
**importante**  
Asegúrese de guardar esta contraseña. Directory Service no almacena esta contraseña y no se puede recuperar ni restablecer.
+ Crea un grupo de seguridad para los controladores del directorio. El grupo de seguridad debe permitir la comunicación con la instancia de base de datos de RDS para Db2.

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 introdujo 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: 
+ 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. 
+ Ejecute Active Directory y los módulos del Servicio de nombres de dominio (DNS) para Windows PowerShell en el Directory Service. 

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. Elija **Configurar directorio**.

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

1. Elija ******Siguiente******.

1. En la página ******Ingrese 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`. 
   + **Nombre de NetBIOS del directorio**:** **un nombre abreviado del directorio opcional, como `CORP`.
   + **Descripción del directorio**: una descripción opcional para el directorio. 
   + **Contraseña de administrador**:** **la contraseña del administrador del directorio. Al crear el directorio, se crea también 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[]:;"'<>,.?/) 
     + Confirmar contraseña: vuelva a escribir la contraseña del administrador. 
**importante**  
Asegúrese de guardar esta contraseña. Directory Service no almacena esta contraseña y no se puede recuperar ni restablecer.

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

1. 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. Puede crear la instancia de base de datos de RDS para Db2 en esta misma VPC o en una VPC diferente. 
   + **Subredes**: elija las subredes de los servidores del directorio. Las dos subredes deben estar en diferentes zonas de disponibilidad. 

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

1. Revise la información del directorio. Si es necesario realizar algún cambio, seleccione **Previous (Anterior)** y realizar los cambios. Cuando la información sea correcta, seleccione **Create directory (Crear directorio)**.   
![\[La ventana Revisar y crear durante la creación del directorio en la consola de Directory Service.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/db2-create-ADS-directory.png)

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 **ID de directorio**. Anote el valor de **Directory ID (ID de directorio)**. Necesita este valor cuando cree o modifique su instancia de base de datos de RDS para Db2. 

![\[La sección Detalles del directorio con ID de directorio en la consola de Directory Service.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/db2-ADS-directory-details.png)


## Paso 2: crear una relación de confianza
<a name="db2-kerberos-setting-up-create-forest-trust"></a>

Si planea utilizar solo AWS Managed Microsoft AD, pase a [Paso 3: crear un rol de IAM para que Amazon RDS pueda acceder a Directory Service](#db2-kerberos-setting-up-create-iam-role).

Para habilitar la autenticación Kerberos mediante Active Directory autoadministrado, debe crear una relación de confianza entre bosques entre Active Directory autoadministrado y el . Una confianza entre bosques es una relación de confianza entre Microsoft AD y Active Directory autoadministrado y el AWS Managed Microsoft AD creado en el paso anterior. 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 entre bosques con Directory Service, consulte [Cuándo crear una relación de confianza](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust.html) en la *Guía de administración de AWS Directory Service*.

## Paso 3: crear un rol de IAM para que Amazon RDS pueda acceder a Directory Service
<a name="db2-kerberos-setting-up-create-iam-role"></a>

Para que Amazon RDS llame a Directory Service en su nombre, su cuenta de Cuenta de AWS precisa un rol de IAM que utilice la política de IAM administrada `AmazonRDSDirectoryServiceAccess`. Este rol permite a Amazon RDS realizar llamadas a Directory Service.

Cuando se crea una instancia de base de datos con la Consola de administración de AWS y la cuenta de usuario de la consola tiene el permiso `iam:CreateRole`, la consola crea automáticamente el rol de IAM necesario. 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*. 

**nota**  
El rol de IAM utilizado para la autenticación de Windows para RDS para Microsoft SQL Server no se puede usar en RDS para Db2.

Como alternativa al uso de la política administrada de `AmazonRDSDirectoryServiceAccess`, puede crear políticas con los permisos necesarios. 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="db2-kerberos-setting-up.create-users"></a>

Puede utilizar la herramienta Active Directory Users and Computers para crear usuarios. Esta es una de las herramientas de Active Directory Domain Services y Active Directory Lightweight Directory Services. Para obtener más información, consulte [Agregar usuarios y equipos al dominio de Active Directory](https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/create-an-active-directory-server#add-users-and-computers-to-the-active-directory-domain) en la documentación de Microsoft. En este caso, los usuarios son individuos u otras entidades, como sus equipos, que forman parte del dominio y cuyas identidades se mantienen en el directorio. 

Para crear usuarios en un directorio de Directory Service, debe estar conectado a una instancia de Amazon EC2 basada en Windows que sea miembro del directorio de Directory Service. Al mismo tiempo, debe estar registrado como usuario con privilegios para crear usuarios. Para obtener más información, consulte [Crear un usuario](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups_create_user.html) en la *Guía de administración de AWS Directory Service*.

## Paso 5: crear un grupo de administración de RDS para Db2 en AWS Managed Microsoft AD
<a name="db2-kerberos-setting-up-vpc-peering"></a>

RDS para Db2 no admite la autenticación de Kerberos del usuario maestro ni de los dos usuarios reservados de Amazon RDS `rdsdb` y `rdsadmin`. En su lugar, debe crear un nuevo grupo llamado `masterdba` en AWS Managed Microsoft AD. Para obtener más información, consulte [Crear una cuenta de grupo en Active Directory](https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/create-a-group-account-in-active-directory) en la documentación de Microsoft. Todos los usuarios que agregue a este grupo tendrán privilegios de usuario maestro.

Una vez habilitada la autenticación de Kerberos, el usuario maestro pierde el rol `masterdba`. Como resultado, el usuario maestro no podrá acceder a la pertenencia al grupo de usuarios local de la instancia a menos que deshabilite la autenticación de Kerberos. Para seguir utilizando el usuario maestro con contraseña de inicio de sesión, cree un usuario en AWS Managed Microsoft AD con el mismo nombre que el usuario maestro. Luego, agregue los usuarios al grupo `masterdba`.

## Paso 6: modificar el parámetro de base de datos
<a name="db2-kerberos-setting-up-modify-db-parameter"></a>

Si planea utilizar solo AWS Managed Microsoft AD, pase a [Paso 7: crear o modificar una instancia de base de datos de RDS para Db2Paso 7: crear o modificar una instancia de base de datos](#db2-kerberos-setting-up-create-modify).

Para habilitar la autenticación Kerberos mediante Active Directory autoadministrado, debe establecer el parámetro `rds.active_directory_configuration` en `AWS_MANAGED_AD_WITH_TRUST` en el grupo de parámetros. De forma predeterminada, este parámetro está establecido en `AWS_MANAGED_AD` para usar solo AWS Managed Microsoft AD.

Para obtener información acerca de cómo modificar los parámetros de base de datos, consulte [Modificación de los parámetros en grupos de parámetros](db2-supported-parameters.md#db2-modifying-parameter-group-parameters).

## Paso 7: crear o modificar una instancia de base de datos de RDS para Db2
<a name="db2-kerberos-setting-up-create-modify"></a>

Cree o modifique una instancia de base de datos de RDS para Db2 para usarla con su directorio. Puede utilizar la Consola de administración de AWS, la AWS CLI o la API de RDS para asociar una instancia de base de datos con un directorio. Puedes hacerlo de una de las siguientes formas:
+ Cree una nueva instancia de base de datos de RDS para Db2 utilizando la consola, el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) o la operación de la API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Para obtener instrucciones, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
+ Modifique una instancia de base de datos de RDS para Db2 existente utilizando la consola, el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) o la operación de la API [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html). Para obtener instrucciones, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 
+ Restaure una instancia de base de datos de RDS para Db2 a partir de una instantánea de base de datos utilizando la consola, el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) o la operación de la API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html). Para obtener instrucciones, consulte [Restauración a una instancia de base de datos](USER_RestoreFromSnapshot.md). 
+ Restaure una instancia de base de datos de RDS para Db2 en un momento dado utilizando la consola, el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) o la operación de la API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html). Para obtener instrucciones, consulte [Restauración de una instancia de base de datos a un momento especificado para Amazon RDS](USER_PIT.md). 

La autenticación de Kerberos solo es compatible con instancias de base de datos de RDS para Db2 en una VPC. La instancia de DB puede estar en la misma VPC que el directorio o en una VPC diferente. La instancia de base de datos debe usar un grupo de seguridad que permita el ingreso y la salida dentro de la VPC del directorio, de modo que la instancia de base de datos pueda comunicarse con el directorio.

### Consola
<a name="db2-kerberos-setting-up-create-modify-console"></a>

Si utiliza la consola para crear, modificar o restaurar una instancia de base de datos, elija **Contraseña y autenticación de Kerberos** en la sección **Autenticación de base de datos**. Luego, elija **Browse Directory** (Examinar directorio). Seleccione el directorio o elija **Crear un nuevo directorio** para utilizar Directory Service.

![\[La sección Autenticación de base de datos con Autenticación de contraseña y de Kerberos seleccionada en la consola de Amazon RDS.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/db2-database-authentication-directory.png)


### AWS CLI
<a name="db2-kerberos-setting-up-create-modify-cli"></a>

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

El siguiente comando de la CLI modifica una instancia de base de datos para usar un directorio. Sustituya los siguientes valores de muestra en el ejemplo por los suyos:
+ *db\$1instance\$1name*: el nombre de su instancia de base de datos de RDS para Db2.
+ *directory\$1id*: el ID del directorio AWS Directory Service for Microsoft Active Directory que ha creado.
+ *role\$1name*: el nombre del rol de IAM que ha creado.

```
aws rds modify-db-instance --db-instance-identifier db_instance_name --domain d-directory_id --domain-iam-role-name role_name 
```

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

## Paso 8: recuperar el SID del grupo de Active Directory en PowerShell
<a name="db2-kerberos-setting-up-retrieve-ad-group-sid"></a>

Un identificador de seguridad (SID) solo identifica una entidad principal de seguridad o un grupo de seguridad. Cuando se crea un grupo de seguridad o una cuenta en Active Directory, Active Directory asigna un SID al grupo. Para recuperar el SID del grupo de seguridad de AD de Active Directory, utilice el cmdlet `Get-ADGroup` en un equipo cliente de Windows que forme parte del dominio de Active Directory. El parámetro `Identity` especifica el nombre del grupo de Active Directory para el que desea el SID.

En el siguiente ejemplo, se devuelve el SID del grupo de Active Directory `adgroup1`.

```
C:\Users\Admin> Get-ADGroup -Identity adgroup1 | select SID

             SID
-----------------------------------------------
S-1-5-21-3168537779-1985441202-1799118680-1612
```

Debe generar esta asignación para todos los grupos que sean relevantes para la base de datos.

## Paso 9: agregar SID a las asignaciones de GroupName a la instancia de base de datos de RDS para Db2
<a name="db2-kerberos-setting-up-add-sid-group-mapping"></a>

Debe agregar el SID a las asignaciones de GroupName creadas en el paso anterior a la instancia de base de datos de RDS para Db2. Para cada asignación, llame al siguiente procedimiento almacenado. Reemplace el *SID* y el *group\$1name* por su propia información. 

```
db2 connect to rdsadmin
db2 "call rdsadmin.set_sid_group_mapping(?, 'SID','group_name')"
```

Para obtener más información, consulte [rdsadmin.set\$1sid\$1group\$1mapping](db2-sp-granting-revoking-privileges.md#db2-sp-set-sid-group-mapping). 

Para obtener información sobre cómo comprobar el estado de la tarea, consulte [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status). 

## Paso 10: configurar un cliente Db2
<a name="db2-kerberos-setting-up-create-logins"></a>

**Para configurar un cliente Db2**

1. Cree un archivo **/etc/krb5.conf** (o equivalente) para apuntar al dominio.
**nota**  
Para los sistemas operativos Windows, cree un archivo **C:\$1windows\$1krb5.ini**.

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 las siguientes tareas:

   1. Verificar el tráfico sobre DNS para el puerto 53.

   1. Verificar el tráfico sobre TCP/UDP para el puerto 53 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. Puede usar el comando `db2` para conectarse a la base de datos y acceder a ella.

El ejemplo siguiente es el contenido del archivo /etc/krb5.conf 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
```