Integración de una instancia de base de datos de Amazon RDS para Db2 con Amazon S3 - Amazon Relational Database Service

Integración de una instancia de base de datos de Amazon RDS para Db2 con Amazon S3

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.

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.

Paso 1: Crear una política de IAM

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

Cree una política de IAM que incluya los siguientes permisos:

"kms:GenerateDataKey", "kms:Decrypt", "s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload", "s3:ListBucket", "s3:DeleteObject", "s3:GetObjectVersion", "s3:ListMultipartUploadParts"

Puede crear una política de IAM mediante la AWS Management Console o la AWS Command Line Interface (AWS CLI).

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 AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Policies (Políticas).

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

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

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

  6. Elija Siguiente.

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

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

  9. Elija Crear política.

Para crear una política de IAM que permita a Amazon RDS acceder a un bucket de Amazon S3
  1. Ejecute el comando create-policy. En el siguiente ejemplo, sustituya iam_policy_name y s3_bucket_name por un nombre para su política de IAM y el nombre del bucket de Amazon S3 en el que resida su base de datos de RDS para Db2.

    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" ] } ] }'

    En 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" ] } ] }'
  2. 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.

Para obtener más información acerca de cómo crear una política de IAM, consulte Creación de políticas de IAM en la Guía del usuario de IAM.

Paso 2: crear un rol de IAM y asociar la política de IAM

En este paso se supone que se ha creado la política de IAM en Paso 1: Crear una política de IAM. 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 AWS Management Console o la AWS CLI.

Para crear un rol de IAM y asociarle la política de IAM
  1. Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. Seleccione Roles en el panel de navegación.

  3. Elija Crear rol.

  4. En Tipo de entidad de confianza, elija Servicio de AWS.

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

  6. Elija Siguiente.

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

  8. Elija Siguiente.

  9. En Nombre de rol, ingrese un nombre de rol.

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

  11. Elija Crear rol.

Para crear un rol de IAM y asociarle la política de IAM
  1. Ejecute el comando create-role. En el siguiente ejemplo, sustituya iam_role_name por un nombre para su rol de IAM.

    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" } ] }'

    En 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" } ] }'
  2. 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.

  3. Ejecute el comando attach-role-policy. En el siguiente ejemplo, sustituya iam_policy_arn por el ARN de la política de IAM que creó en Paso 1: Crear una política de IAM. Reemplace iam_role_name 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

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

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 AWS Management Console o la AWS CLI.

Para añadir un rol de IAM a su instancia de base de datos de RDS para Db2
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

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

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

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

  6. En Feature (Característica), elija S3_INTEGRATION.

  7. Seleccione Add role (Añadir rol).

    La característica S3_INTEGRATION se agregó al rol de IAM de una instancia de base de datos.

Para añadir un rol de IAM a su instancia de base de datos de RDS para Db2, ejecute el comando add-role-to-db-instance. En el ejemplo siguiente, sustituya db_instance_name e iam_role_arn por el nombre de la instancia de 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.

Para Linux, macOS o Unix:

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

En Windows:

aws rds add-role-to-db-instance ^ --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 describe-db-instances. En el siguiente ejemplo, sustituya db_instance_name 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'

En 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" } ] ]