

# Configuración de la autenticación de bases de datos y el acceso manual a los recursos
<a name="limitless-load.manual"></a>

El proceso manual para configurar la autenticación de la base de datos y el acceso a los recursos consta de los siguientes pasos:

1. [Creación de la AWS KMS key administrada por el cliente](#limitless-load.auth.create-kms)

1. [Adición de las políticas de permisos del rol de IAM](#limitless-load.auth.iam-policy)

1. [Creación de los secretos de base de datos](#limitless-load.auth.secrets)

1. [Creación del rol de IAM](#limitless-load.auth.iam-role)

1. [Actualización de la AWS KMS key administrada por el cliente](#limitless-load.auth.update-kms)

Este proceso es opcional y realiza las mismas tareas que en [Configuración de la autenticación de bases de datos y el acceso a los recursos mediante un script](limitless-load.script.md). Se recomienda utilizar el script.

## Creación de la AWS KMS key administrada por el cliente
<a name="limitless-load.auth.create-kms"></a>

Siga los procedimientos que se describen en [Creating symmetric encryption keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) para crear una clave de KMS administrada por el cliente. También puede utilizar una clave existente si cumple estos requisitos.

**Creación de una clave de KMS administrada por el cliente**

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

1. Navegue a la página **Claves administradas por el cliente**.

1. Elija **Crear clave**.

1. En la página **Configurar clave**:

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

   1. En **Uso de claves**, seleccione **Cifrar y descifrar**.

   1. Elija **Siguiente**.

1. En la página **Añadir etiquetas**, introduzca un **alias**, como **limitless**, y elija **Siguiente**.

1. En la página **Definir permisos de administración de claves**, asegúrese de que la casilla de verificación **Permitir que los administradores de claves eliminen esta clave** esté seleccionada y elija **Siguiente**.

1. En la página **Definir permisos de uso de claves**, elija **Siguiente**.

1. En la página **Revisar**, elija **Finalizar**.

   La política de claves se actualiza más adelante.

Registre el nombre de recurso de Amazon (ARN) de la clave de KMS que va a usar en [Adición de las políticas de permisos del rol de IAM](#limitless-load.auth.iam-policy).

Para obtener más información sobre el uso de AWS CLI para crear la clave de KMS administrada por el cliente, consulte [create-key](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-key.html) y [create-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-alias.html).

## Creación de los secretos de base de datos
<a name="limitless-load.auth.secrets"></a>

Para permitir que la utilidad de carga de datos acceda a las tablas de la base de datos de origen y destino, debe crear dos secretos en AWS Secrets Manager: uno para la base de datos de origen y otro para la base de datos de destino. Estos secretos almacenan los nombres de usuario y las contraseñas para acceder a las bases de datos de origen y destino.

Siga los procedimientos descritos en [Create an AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) o para crear los secretos del par clave-valor.

**Creación de los secretos de base de datos**

1. Abra la consola de Secrets Manager en[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Elija **Almacenar un secreto nuevo**.

1. Se abre la página **Elija tipo de secreto**.

   1. En **Tipo de secreto**, seleccione **Otro tipo de secreto**.

   1. Para **Pares clave-valor**, elija la pestaña **Texto no cifrado**.

   1. Introduzca el siguiente código JSON, dónde `{{sourcedbreader}}` y `{{sourcedbpassword}}` son las credenciales del usuario de la base de datos de origen de [Creación de las credenciales de la base de datos de origen](limitless-load.utility.md#limitless-load.users.source).

      ```
      {
          "username":"{{sourcedbreader}}",
          "password":"{{sourcedbpassword}}"
      }
      ```

   1. Para **Clave de cifrado**, elija la clave de KMS que ha creado en [Creación de la AWS KMS key administrada por el cliente](#limitless-load.auth.create-kms), por ejemplo, `limitless`.

   1. Elija **Siguiente**.

1. En la página **Configurar secreto**, en **Nombre del secreto**, introduzca **source\_DB\_secret** y, luego, elija **Siguiente**.

1. En la página **Configurar la rotación. *Opcional***, elija **Siguiente**.

1. En la página **Revisar**, elija **Almacenar**.

1. Repita el procedimiento para el secreto de la base de datos de destino:

   1. Introduzca el siguiente código JSON, dónde `{{destinationdbwriter}}` y `{{destinationdbpassword}}` son las credenciales del usuario de la base de datos de destino de [Creación de las credenciales de la base de datos de destino](limitless-load.utility.md#limitless-load.users.destination).

      ```
      {
          "username":"{{destinationdbwriter}}",
          "password":"{{destinationdbpassword}}"
      }
      ```

   1. Escriba un **Nombre del secreto**, como **destination\_DB\_secret**.

Registre los ARN de los secretos que desee utilizar en [Adición de las políticas de permisos del rol de IAM](#limitless-load.auth.iam-policy).

## Creación del rol de IAM
<a name="limitless-load.auth.iam-role"></a>

La carga de datos requiere que proporcione acceso a los recursos de AWS. Para proporcionar acceso, debe crear el rol de IAM `aurora-data-loader` siguiendo los procedimientos descritos en [Crear un rol para delegar permisos a un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

**Creación del rol de IAM**

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

1. Vaya a la página **Roles**.

1. Elija **Creación de rol**.

1. En la página **Seleccionar entidad de confianza**:

   1. En **Tipo de entidad de confianza**, elija **Política de confianza personalizada**.

   1. Introduzca el siguiente código JSON para la política de confianza personalizada:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "rds.amazonaws.com"
                      ]
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Elija **Siguiente**.

1. En la página **Agregar permisos**, elija **Siguiente**.

1. En la página **Asignar nombre, revisar y crear**:

   1. En **Nombre del rol**, escriba **aurora-data-loader** u otro nombre que prefiera.

   1. Elija **Agregar etiqueta** e introduzca la siguiente etiqueta:
      + **Clave**: **assumer**
      + **Valor**: **aurora\_limitless\_table\_data\_load**
**importante**  
Base de datos ilimitada de Aurora PostgreSQL solo puede asumir un rol de IAM que tenga esta etiqueta.

   1. Elija **Creación de rol**.

## Actualización de la AWS KMS key administrada por el cliente
<a name="limitless-load.auth.update-kms"></a>

Siga los procedimientos que se explican en [Changing a key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) para añadir el rol de IAM `aurora-data-loader` a la política de claves predeterminada.

**Adición del rol de IAM a la política de claves**

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

1. Navegue a la página **Claves administradas por el cliente**.

1. Elija la clave de KMS que ha creado en [Creación de la AWS KMS key administrada por el cliente](#limitless-load.auth.create-kms), por ejemplo, `limitless`.

1. En la pestaña **Política de claves**, para **Usuarios de claves**, elija **Agregar**.

1. En la ventana **Agregar usuarios de claves**, seleccione el nombre del rol de IAM en el que ha creado en [Creación del rol de IAM](#limitless-load.auth.iam-role), por ejemplo, **aurora-data-loader**.

1. Elija **Agregar**.

## Adición de las políticas de permisos del rol de IAM
<a name="limitless-load.auth.iam-policy"></a>

Debe añadir políticas de permisos al rol de IAM que ha creado. Esto permite a la utilidad de carga de datos de Base de datos ilimitada de Aurora PostgreSQL acceder a los recursos de AWS relacionados para crear conexiones de red y recuperar los secretos de las credenciales de base de datos de origen y destino.

Para obtener más información, consulte [Modificación de un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html#roles-modify_gen-policy).

**Adición de las políticas de permisos**

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

1. Vaya a la página **Roles**.

1. Elija el rol de IAM que ha creado en [Creación del rol de IAM](#limitless-load.auth.iam-role), por ejemplo, **aurora-data-loader**.

1. En la pestaña **Permisos**, elija **Agregar permisos** para **Políticas de permisos** y, a continuación, **Crear política insertada**.

1. En la página **Especificar permisos**, seleccione el editor **JSON**.

1. Copie y pegue la siguiente plantilla en el editor de JSON y reemplace los marcadores de posición por los ARN de los secretos de la base de datos y la clave de KMS.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Ec2Permission",
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeNetworkInterfaces",
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:CreateNetworkInterfacePermission",
                   "ec2:DeleteNetworkInterfacePermission",
                   "ec2:DescribeNetworkInterfacePermissions",
                   "ec2:ModifyNetworkInterfaceAttribute",
                   "ec2:DescribeNetworkInterfaceAttribute",
                   "ec2:DescribeAvailabilityZones",
                   "ec2:DescribeRegions",
                   "ec2:DescribeVpcs",
                   "ec2:DescribeSubnets",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeNetworkAcls"
               ],
               "Resource": "*"
           },
           {
               "Sid": "SecretsManagerPermissions",
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret"
               ],
               "Resource": [
                   "arn:aws:secretsmanager:us-east-1:{{123456789012}}:secret:{{source_DB_secret-ABC123}}",
                   "arn:aws:secretsmanager:us-east-1:{{123456789012}}:secret:{{destination_DB_secret-456DEF}}"
               ]
           },        {
               "Sid": "KmsPermissions",
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey",
                   "kms:GenerateDataKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:{{123456789012}}:key/{{aa11bb22-####-####-####-fedcba123456}}"
           },
           {
               "Sid": "RdsPermissions",
               "Effect": "Allow",
               "Action": [
                   "rds:DescribeDBClusters",
                   "rds:DescribeDBInstances"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Compruebe si hay errores y corríjalos.

1. Elija **Siguiente**.

1. En la página **Revisar y crear**, ingrese un **Nombre de la política** como **data\_loading\_policy** y, luego, elija **Crear política**.