

# Integración de una instancia de base de datos de Amazon RDS para Db2 con Amazon S3
<a name="db2-s3-integration"></a>

Puede transferir archivos entre una instancia de base de datos de Amazon RDS para Db2 y un bucket de Amazon Simple Storage Service (Amazon S3) con los procedimientos almacenados de Amazon RDS. Para obtener más información, consulte [Referencia de procedimientos almacenados de Amazon RDS para Db2](db2-stored-procedures.md).

**nota**  
Su instancia de base de datos y el bucket de Amazon S3 deben estar en la misma Región de AWS.

Para que RDS para Db2 se integre con Amazon S3, su instancia de base de datos debe tener acceso a un bucket Amazon S3 donde resida su RDS para Db2. Si no dispone de un bucket de S3, [cree un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket-overview.html).

**Topics**
+ [Paso 1: Crear una política de IAM](#db2-creating-iam-policy)
+ [Paso 2: crear un rol de IAM y asociar la política de IAM](#db2-creating-iam-role)
+ [Paso 3: agregar su rol de IAM a su instancia de base de datos de RDS para Db2](#db2-adding-iam-role)

## Paso 1: Crear una política de IAM
<a name="db2-creating-iam-policy"></a>

En este paso, cree una política AWS Identity and Access Management (IAM) con los permisos necesarios para transferir archivos del bucket de Amazon S3 a la instancia de base de datos de RDS. En este paso, también se asume que ya ha creado un bucket de S3. Para obtener más información, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) en la *Guía del usuario de Amazon S3*.

Antes de crear la política, anote la siguiente información:
+ El nombre de recurso de Amazon (ARN) del bucket
+ El ARN para su clave de AWS Key Management Service (AWS KMS), si el bucket utiliza el cifrado SSE-KMS o SSE-S3.

La política de IAM que cree debe contener la siguiente información. Sustituya *\$1amzn-s3-demo-bucket\$1* por el nombre del bucket de S3.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3BucketAccess",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:GetObjectVersion",
                "s3:ListMultipartUploadParts",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::${amzn-s3-demo-bucket}/*",
                "arn:aws:s3:::${amzn-s3-demo-bucket}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

Puede crear una política de IAM mediante la Consola de administración de AWS o la AWS Command Line Interface (AWS CLI). 

### Consola
<a name="creating-iam-policy-console"></a>

**Para crear una política de IAM que permita a Amazon RDS acceder a un bucket de Amazon S3**

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

1. En el panel de navegación, seleccione **Políticas**.

1. Elija **Crear política** y, a continuación, elija **JSON**.

1. Agregue acciones por servicio. Para transferir archivos desde un bucket de Amazon S3 a Amazon RDS, debe seleccionar los permisos del bucket y los permisos de objeto.

1. Expanda **Resources** (Recursos). Debe especificar los recursos del bucket y del objeto.

1. Elija **Siguiente**.

1. Escriba un nombre para la política en **Nombre de la política**. 

1. (Opcional) En **Description (Descripción)**, escriba una descripción para esta política.

1. Elija **Crear política**.

### AWS CLI
<a name="creating-iam-policy-cli"></a>

**Para crear una política de IAM que permita a Amazon RDS acceder a un bucket de Amazon S3**

1.  Cree un archivo JSON que contenga la siguiente documentación de política JSON. Sustituya *\$1amzn-s3-demo-bucket\$1* por el nombre del bucket de S3.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowS3BucketAccess",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt",
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:AbortMultipartUpload",
                   "s3:ListBucket",
                   "s3:GetObjectVersion",
                   "s3:ListMultipartUploadParts",
                   "s3:GetBucketAcl",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::${amzn-s3-demo-bucket}/*",
                   "arn:aws:s3:::${amzn-s3-demo-bucket}"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListAllMyBuckets"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

1. Ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html). En el siguiente ejemplo, sustituya *iam\$1policy\$1name* e *iam\$1policy\$1file\$1name* por un nombre para la política de IAM y el nombre del archivo JSON que creó en el paso 1. 

   Para Linux, macOS o Unix:

   ```
   aws iam create-policy \
       --policy-name iam_policy_name \
       --policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "kms:GenerateDataKey",
               "kms:Decrypt",
               "s3:PutObject",
               "s3:GetObject",
               "s3:AbortMultipartUpload",
               "s3:ListBucket",
               "s3:DeleteObject",
               "s3:GetObjectVersion",
               "s3:ListMultipartUploadParts"
             ],
             "Resource": [
               "arn:aws:s3:::s3_bucket_name/*",
               "arn:aws:s3:::s3_bucket_name"
             ]
           }
         ]
       }'
   ```

   Para Windows:

   ```
   aws iam create-policy ^
       --policy-name iam_policy_name ^
       --policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
               "Action": [
                 "s3:PutObject",
                 "s3:GetObject",
                 "s3:AbortMultipartUpload",
                 "s3:ListBucket",
                 "s3:DeleteObject",
                 "s3:GetObjectVersion",
                 "s3:ListMultipartUploadParts"
               ],
               "Resource": [
                 "arn:aws:s3:::s3_bucket_name/*",
                 "arn:aws:s3:::s3_bucket_name"
               ]
           }
         ]
       }'
   ```

1. Después de crear la política, apunte el ARN de la política. Necesita el ARN para [Paso 2: crear un rol de IAM y asociar la política de IAM](#db2-creating-iam-role).

Para obtener más información acerca de cómo crear una política de IAM, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la Guía del usuario de IAM.

## Paso 2: crear un rol de IAM y asociar la política de IAM
<a name="db2-creating-iam-role"></a>

En este paso se supone que se ha creado la política de IAM en [Paso 1: Crear una política de IAM](#db2-creating-iam-policy). En este paso, creará un rol de IAM para la instancia de base de datos de RDS para Db2 y, a continuación, asociará la política de IAM al rol. 

Puede crear un rol de IAM a su instancia de base de datos mediante la Consola de administración de AWS o la AWS CLI.

### Consola
<a name="creating-iam-role-console"></a>

**Para crear un rol de IAM y asociarle la política 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. Seleccione **Roles** en el panel de navegación.

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

1. En **Tipo de entidad de confianza**, elija **Servicio de AWS**.

1. Para el **Servicio o caso de uso**, seleccione **RDS** y, a continuación, seleccione **RDS****:** **Agregar rol a la base de datos**.

1. Elija **Siguiente**.

1. Para **Políticas de permisos**, busque y seleccione el nombre de la política de IAM que creó.

1. Elija **Siguiente**.

1. En **Nombre de rol**, ingrese un nombre de rol.

1. (Opcional) En **Descripción**, ingrese una descripción para el nuevo rol.

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

### AWS CLI
<a name="creating-iam-role-cli"></a>

**Para crear un rol de IAM y asociarle la política de IAM**

1. Cree un archivo JSON que contenga la siguiente documentación de política JSON:

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

****  

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

------

1. Ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html). En el siguiente ejemplo, sustituya *iam\$1role\$1name* e *iam\$1assume\$1role\$1policy\$1file\$1name* por un nombre para el rol de IAM y el nombre del archivo JSON que creó en el paso 1.

   Para Linux, macOS o Unix:

   ```
   aws iam create-role \
       --role-name iam_role_name \
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": {
               "Service": "rds.amazonaws.com"
             },
             "Action": "sts:AssumeRole"
           }
         ]
       }'
   ```

   Para Windows:

   ```
   aws iam create-role ^
       --role-name iam_role_name ^
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": {
               "Service": "rds.amazonaws.com"
             },
             "Action": "sts:AssumeRole"
           }
         ]
       }'
   ```

1. Después de crear el rol, anote el ARN del rol. Necesita el ARN para [Paso 3: agregar su rol de IAM a su instancia de base de datos de RDS para Db2](#db2-adding-iam-role).

1. Ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html). En el siguiente ejemplo, sustituya *iam\$1policy\$1arn* por el ARN de la política de IAM que creó en [Paso 1: Crear una política de IAM](#db2-creating-iam-policy). Reemplace *iam\$1role\$1name* por el nombre del rol de IAM que acaba de crear.

   Para Linux, macOS o Unix:

   ```
   aws iam attach-role-policy \
      --policy-arn iam_policy_arn \
      --role-name iam_role_name
   ```

   Para Windows:

   ```
   aws iam attach-role-policy ^
      --policy-arn iam_policy_arn ^
      --role-name iam_role_name
   ```

Para obtener más información, vea [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) en *Guía del usuario de IAM. *

## Paso 3: agregar su rol de IAM a su instancia de base de datos de RDS para Db2
<a name="db2-adding-iam-role"></a>

En este paso, agregará su rol de IAM a su instancia de base de datos de RDS para Db2 Tenga en cuenta los siguientes requisitos:
+ Debe tener acceso a un rol de IAM con la política de permisos de Amazon S3 requerida adjunta. 
+ Solo puede asociar un rol de IAM a su instancia de base de datos de RDS para Db2 cada vez.
+ Su instancia de base de datos de RDS para Db2 debe tener el estado **Disponible**.

Puede añadir un rol de IAM a su instancia de base de datos mediante la Consola de administración de AWS o la AWS CLI.

### Consola
<a name="db2-adding-iam-role-console"></a>

**Para añadir un rol de IAM a su instancia de base de datos de RDS para Db2**

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

1. En el panel de navegación, elija **Databases** (Bases de datos).

1. Elija el nombre de la instancia de base de datos de RDS para Db2.

1. En la pestaña **Connectivity & Security** (Conectividad y seguridad), desplácese hacia abajo hasta la sección **Manage IAM roles** (Administrar roles de IAM) de la parte inferior de la página.

1. En **Añadir roles de IAM a esta instancia**, elija el rol que creó en [Paso 2: crear un rol de IAM y asociar la política de IAM](#db2-creating-iam-role).

1. En **Feature (Característica)**, elija **S3\$1INTEGRATION**.

1. Seleccione **Add role (Añadir rol)**.  
![\[La característica S3_INTEGRATION se agregó al rol de IAM de una instancia de base de datos.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/db2-s3-integration-role.png)

### AWS CLI
<a name="db2-adding-iam-role-cli"></a>

Para añadir un rol de IAM a su instancia de base de datos de RDS para Db2, ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/add-role-to-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/add-role-to-db-instance.html). En el siguiente ejemplo, sustituya *región*, *db\$1instance\$1name* e *iam\$1role\$1arn* por el nombre de la Región de AWS en la que existe la instancia de la base de datos, el nombre de la instancia de la base de datos y el ARN del rol de IAM que creó en [Paso 2: crear un rol de IAM y asociar la política de IAM](#db2-creating-iam-role). 

Para Linux, macOS o Unix:

```
aws rds add-role-to-db-instance \
    --region $region \
    --db-instance-identifier $db_instance_name \
    --feature-name S3_INTEGRATION \
    --role-arn $iam_role_arn \
```

Para Windows:

```
aws rds add-role-to-db-instance ^
    --region $region \
    --db-instance-identifier db_instance_name ^
    --feature-name S3_INTEGRATION ^
    --role-arn iam_role_arn ^
```

Para confirmar que el rol se agregó correctamente a su instancia de base de datos de RDS para Db2, ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html). En el siguiente ejemplo, sustituya *db\$1instance\$1name* por el nombre de la instancia de base de datos. 

Para Linux, macOS o Unix:

```
aws rds describe-db-instances \
    --filters "Name=db-instance-id,Values=db_instance_name" \
    --query 'DBInstances[].AssociatedRoles'
```

Para Windows:

```
aws rds describe-db-instances ^
    --filters "Name=db-instance-id,Values=db_instance_name" ^
    --query 'DBInstances[].AssociatedRoles'
```

El resultado de este comando debería ser similar al siguiente ejemplo:

```
[
    [
        {
            "RoleArn": "arn:aws:iam::0123456789012:role/rds-db2-s3-role",
            "FeatureName": "S3_INTEGRATION",
            "Status": "ACTIVE"
        }
    ]
]
```