

# Configuración de Active Directory autoadministrado
<a name="db2-self-managed-active-directory.SettingUp"></a>

Para configurar un AD autoadministrado, siga estos pasos.

**Topics**
+ [Paso 1: Crear una unidad organizativa en el AD](#db2-self-managed-active-directory.SettingUp.CreateOU)
+ [Paso 2: creación de una cuenta de servicio de dominio de AD en el AD](#db2-self-managed-active-directory.SettingUp.CreateADuser)
+ [Paso 3: delegación del control a la cuenta de servicio de dominio de AD](#db2-self-managed-active-directory.SettingUp.DelegateControl)
+ [Paso 4: creación de una clave de AWS KMS](#db2-self-managed-active-directory.SettingUp.CreateKMSkey)
+ [Paso 5: Crear un secreto de AWS](#db2-self-managed-active-directory.SettingUp.CreateSecret)
+ [Paso 6: creación o modificación de una instancia de base de datos de Db2](#db2-self-managed-active-directory.SettingUp.CreateModify)

## Paso 1: Crear una unidad organizativa en el AD
<a name="db2-self-managed-active-directory.SettingUp.CreateOU"></a>

**importante**  
Se recomienda crear una credencial de servicio y una OU dedicadas a esa UO para todas las cuentas de AWS que posean una instancia de base de datos de RDS para Db2 que se haya unido al dominio de AD autoadministrado. Al crear credenciales de servicio o UO dedicadas, puede evitar conflictos de permisos y seguir el principio de privilegio mínimo.

**Para crear una OU en su AD**

1. Conéctese a su dominio de AD como administrador de dominio.

1. Abra **Usuarios y equipos de Active Directory** y seleccione el dominio en el que desea crear la OU.

1. Abra el menú contextual del dominio, elija **Nuevo** y, a continuación, elija **Unidad organizativa**.

1. Escriba un nombre para la OU.

1. Mantenga la casilla seleccionada para **Proteger el contenedor contra la eliminación accidental**.

1. Seleccione **Aceptar**. La nueva OU aparece en su dominio.

## Paso 2: creación de una cuenta de servicio de dominio de AD en el AD
<a name="db2-self-managed-active-directory.SettingUp.CreateADuser"></a>

Use las credenciales de la cuenta de servicio de dominio como el secreto en AWS Secrets Manager.

**Creación de una cuenta de servicio de dominio de AD en el AD**

1. Abra **Usuarios y equipos de Active Directory** y seleccione el dominio y la OU  en los que desea crear el usuario.

1. Abra el menú contextual para **Usuarios**, elija **Nuevo** y, a continuación, elija **Usuario**.

1. Introduzca el nombre, los apellidos y el nombre de inicio de sesión del usuario. Elija **Siguiente**.

1. Introduzca una contraseña para el usuario. No seleccione **El usuario debe cambiar la contraseña en el próximo inicio de sesión**. No seleccione **La cuenta está desactivada**. Elija **Siguiente**.

1. Seleccione **Aceptar**. El nuevo usuario aparece en el dominio.

## Paso 3: delegación del control a la cuenta de servicio de dominio de AD
<a name="db2-self-managed-active-directory.SettingUp.DelegateControl"></a>

### Parte A: Delegar permisos mediante el asistente de delegación de control
<a name="db2-self-managed-active-directory.SettingUp.DelegateControl.Wizard"></a>

**Delegación del control a la cuenta de servicio de dominio de AD en el dominio**

1. Abra el complemento de la consola de administración de Microsoft (MMC) **Usuarios y equipos de Active Directory** y seleccione el dominio en el que desea crear el usuario.

1. Abra el menú contextual de la UO que creó anteriormente y elija **Delegar control**.

1. En **Asistente de delegación de control**, elija **Siguiente**.

1. En la sección **Usuarios o grupos**, elija **Agregar**.

1. En la sección **Seleccionar usuarios, equipos o grupos**, ingrese la cuenta de servicio de dominio de AD que creó y elija **Verificar nombres**. Si la comprobación de la cuenta de servicio de dominio de AD se ha realizado correctamente, elija **Aceptar**.

1. En la sección **Usuarios o grupos**, confirme que se ha agregado la cuenta de servicio de dominio de AD y elija **Siguiente**.

1. En la página **Tareas que se delegarán**, elija **Crear una tarea personalizada para delegar** y elija **Siguiente**.

1. En la sección **Tipo de objeto de Active Directory**:

   1. Elija **Solo los siguientes objetos de la carpeta**.

   1. Seleccione **Objetos de usuario**.

   1. Seleccione **Crear objetos seleccionados en esta carpeta**.

   1. Seleccione **Eliminar los objetos seleccionados en esta carpeta** y elija **Siguiente**.

1. En la sección **Permisos**:

   1. Mantenga seleccionada la opción **General**.

   1. Seleccione **Propiedad específica**.

   1. Seleccione **Creación o eliminación de objetos secundarios específicos**.

   1. Seleccione **Restablecer contraseña**.

   1. Seleccione **Leer msDS-SupportedEncryptionTypes**.

   1. Seleccione **Escribir msDS-SupportedEncryptionTypes**.

1. Para **Completar el asistente de delegación de control**, revise y confirme la configuración y elija **Finalizar**.

### Parte B: Delegar permisos de servicePrincipalName mediante PowerShell
<a name="db2-self-managed-active-directory.SettingUp.DelegateControl.PowerShell"></a>

El asistente de delegación de control no expone la propiedad `servicePrincipalName` de los objetos de usuario. Ejecute el siguiente script de PowerShell en el controlador de dominio para conceder a la cuenta de servicio de dominio de AD acceso de lectura y escritura a `servicePrincipalName` en los objetos de usuario de la UO.

Sustituya {{service-account}} por el nombre de la cuenta de servicio de dominio de AD que creó en el paso 2 y actualice el nombre distintivo de la UO para que coincida con el de la UO que creó en el paso 1.

```
$ou = "OU={{my-AD-test-OU}},DC={{my-AD-test}},DC={{my-AD}},DC={{my-domain}}"
$user = Get-ADUser "{{service-account}}"
$acl = Get-Acl "AD:\$ou"

$schemaPath = (Get-ADRootDSE).schemaNamingContext
$spnSchema = Get-ADObject -SearchBase $schemaPath -Filter {lDAPDisplayName -eq "servicePrincipalName"} -Properties schemaIDGUID
$spnGuid = New-Object Guid (,$spnSchema.schemaIDGUID)
$userGuid = New-Object Guid "bf967aba-0de6-11d0-a285-00aa003049e2"

$ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
   $user.SID,
   "ReadProperty,WriteProperty",
   "Allow",
   $spnGuid,
   "Descendents",
   $userGuid
)

$acl.AddAccessRule($ace)
Set-Acl "AD:\$ou" $acl
```

Para comprobar que los permisos se hayan aplicado correctamente, ejecute el siguiente script de PowerShell:

```
$acl = Get-Acl "AD:\$ou"
$acl.Access | Where-Object { $_.IdentityReference -like "*{{service-account}}*" } | Format-List
```

## Paso 4: creación de una clave de AWS KMS
<a name="db2-self-managed-active-directory.SettingUp.CreateKMSkey"></a>

La clave de KMS cifra el secreto de AWS.

**nota**  
En **Clave de cifrado**, no utilice la clave de KMS predeterminada de AWS. Asegúrese de crear la clave de AWS KMS en la misma cuenta de AWS que contiene la instancia de base de datos de RDS para Db2 que desea unir a AD autoadministrado.

**Para crear una clave de KMS de AWS**

1. Abra la consola de AWS KMS en [https://console.aws.amazon.com/kms/](https://console.aws.amazon.com/kms/). Elija **Crear clave**.

1. En **Tipo de clave**, elija **Simétrica**.

1. Para **Uso de claves**, elija **Cifrar y descifrar**.

1. Para **Advanced options (Opciones avanzadas)**:

   1. En **Origen del material de claves**, elija **Externo**.

   1. Para **Regionalidad**, elija **Clave de región única** y seleccione **Siguiente**.

1. Para **Alias**, proporcione un nombre para la clave de KMS.

1. (Opcional) En **Description**, proporcione una descripción de la clave de KMS.

1. (Opcional) En **Etiquetas**, introduzca una etiqueta para la clave de KMS y seleccione **Siguiente**.

1. En **Administradores de claves**, proporcione el nombre de un usuario de IAM y selecciónelo.

1. En **Eliminación de la clave**, mantenga seleccionada la casilla **Permitir que los administradores de claves eliminen esta clave** y seleccione **Siguiente**.

1. En **Usuarios de clave**, proporcione el mismo usuario de IAM del paso anterior y selecciónelo. Elija **Siguiente**.

1. Revise la configuración.

1. Para **Política de claves**, incluya lo siguiente en la política **Instrucción**:

   ```
   {
       "Sid": "Allow use of the KMS key on behalf of RDS",
       "Effect": "Allow",
       "Principal": {
           "Service": [
               "rds.amazonaws.com"
           ]
       },
       "Action": "kms:Decrypt",
       "Resource": "*"
   }
   ```

1. Seleccione **Finalizar**.

## Paso 5: Crear un secreto de AWS
<a name="db2-self-managed-active-directory.SettingUp.CreateSecret"></a>

**nota**  
Asegúrese de crear el secreto en la misma cuenta de AWS que contiene la instancia de base de datos de RDS para Db2 que desea unir a AD autoadministrado.

**Creación de un secreto**

1. Abra la consola de AWS Secrets Manager en [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/). Elija **Almacenar un secreto nuevo**.

1. En **Secret type** (Tipo de secreto), elija **Other type of secret** (Otro tipo de secreto).

1. En los **pares clave/valor**, añada sus dos claves:

   1. Para la primera clave, introduzca  `SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME`.

   1. Para el valor de la primera clave, ingrese solo el nombre de usuario (sin el prefijo de dominio) del usuario de AD. No incluya el nombre de dominio, ya que esto provocará un error en la creación de la instancia.

   1. Para la segunda clave, introduzca  `SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD`.

   1. Para el valor de la segunda clave, introduzca la contraseña que creó para el usuario de AD en su dominio.

1. Para la **Clave de cifrado**, ingrese la clave de KMS que creó en el paso anterior y elija **Siguiente**.

1. En **Nombre de secreto**, introduzca un nombre descriptivo que le ayude a buscar el secreto más adelante.

1. (Opcional) En **Descripción**, escriba una descripción del nombre del secreto.

1. En **Permisos de recursos**, seleccione **Editar**.

1. Añada la siguiente política a la política de permisos:
**nota**  
Le recomendamos que utilice la `aws:sourceAccount` y las condiciones `aws:sourceArn` de la política para evitar el problema del *suplente confuso*. Utilice la cuenta de AWS para `aws:sourceAccount` y el ARN de la instancia de base de datos de RDS para Db2 para `aws:sourceArn`. Para obtener más información, consulte [Prevención de los problemas del suplente confuso entre servicios](cross-service-confused-deputy-prevention.md).

   ```
   {
       "Version":"2012-10-17",
       "Statement":
       [
           {
               "Effect": "Allow",
               "Principal":
               {
                   "Service": "rds.amazonaws.com"
               },
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "*",
               "Condition":
               {
                   "StringEquals":
                   {
                       "aws:sourceAccount": "123456789012"
                   },
                   "ArnLike":
                   {
                       "aws:sourceArn": "arn:aws:rds:us-west-2:123456789012:db:*"
                   }
               }
           }
       ]
   }
   ```

1. Elija **Guardar** y, a continuación, elija **Siguiente**.

1. En **Configurar los ajustes de rotación**, mantenga los valores predeterminados y seleccione **Siguiente**.

1. Revise la configuración del secreto y seleccione **Guardar**.

1. Elija el secreto que creó y copie el valor del **ARN del secreto**. Use este valor en el siguiente paso para configurar Active Directory autoadministrado.

## Paso 6: creación o modificación de una instancia de base de datos de Db2
<a name="db2-self-managed-active-directory.SettingUp.CreateModify"></a>

Puede utilizar la AWS CLI para asociar una instancia de base de datos de RDS para Db2 a un dominio de AD autoadministrado. Puedes hacerlo de una de las siguientes formas:
+ Cree una nueva instancia de base de datos de Db2 mediante el comando de la CLI [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). 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 Db2 existente mediante el comando de la CLI [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). Para obtener instrucciones, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

Cuando use la CLI de AWS, necesitará los siguientes parámetros para que la instancia de base de datos pueda usar el dominio de AD autoadministrado que ha creado:
+ Para el parámetro `--domain-fqdn`, utilice el nombre de dominio completo (FQDN) del AD autoadministrado.
+ Para el parámetro `--domain-ou`, utilice la OU que creó en su AD autoadministrado.
+ Para el parámetro `--domain-auth-secret-arn`, utilice el valor del ARN del secreto que creó en un paso anterior.
+ Para el parámetro `--domain-dns-ips`, utilice las direcciones IPv4 principal y secundaria de los servidores DNS de su AD autoadministrado. Si no tiene una dirección IP de servidor DNS secundaria, introduzca la dirección IP principal dos veces.

El comando de la CLI siguiente, crea una nueva instancia de base de datos de RDS para Db2 y la une a un dominio de AD autoadministrado.

Para Linux, macOS o Unix:

```
aws rds create-db-instance \
    --db-instance-identifier {{my-DB-instance}} \
    --db-instance-class db.m6i.large \
    --allocated-storage 50 \
    --engine db2-se \
    --engine-version 11.5 \
    --master-username {{my-master-username}} \
    --master-user-password {{my-master-password}} \
    --domain-fqdn {{my_AD_domain.my_AD.my_domain}} \
    --domain-ou {{OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain}} \
    --domain-auth-secret-arn "arn:aws:secretsmanager:{{region}}:{{account-number}}:secret:{{my-AD-test-secret-123456}}" \
    --domain-dns-ips "{{10.11.12.13}}" "{{10.11.12.14}}"
```

Para Windows:

```
aws rds create-db-instance ^
    --db-instance-identifier {{my-DB-instance}} ^
    --db-instance-class db.m6i.large ^
    --allocated-storage 50 ^
    --engine db2-se ^
    --engine-version 11.5 ^
    --master-username {{my-master-username}} ^
    --master-user-password {{my-master-password}} ^
    --domain-fqdn {{my_AD_domain.my_AD.my_domain}} ^
    --domain-ou {{OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain}} ^
    --domain-auth-secret-arn "arn:aws:secretsmanager:{{region}}:{{account-number}}:secret:{{my-AD-test-secret-123456}}" ^
    --domain-dns-ips "{{10.11.12.13}}" "{{10.11.12.14}}"
```