Integrar uma instância de banco de dados do Amazon RDS para Db2 ao Amazon S3 - Amazon Relational Database Service

Integrar uma instância de banco de dados do Amazon RDS para Db2 ao Amazon S3

É possível transferir arquivos entre uma instância de banco de dados do Amazon RDS para Db2 e um bucket do Amazon Simple Storage Service (Amazon S3) com os procedimentos armazenados do Amazon RDS. Para ter mais informações, consulte Referência de procedimentos armazenados do Amazon RDS para Db2.

nota

A instância de banco de dados e o bucket do Amazon S3 devem estar na mesma Região da AWS.

Para que o RDS para Db2 se integre ao Amazon S3, a instância de banco de dados deve ter acesso a um bucket do Amazon S3 no qual se encontra o RDS para Db2. Se você não tiver um bucket do S3, crie um bucket.

Etapa 1: criar uma política do IAM

Nesta etapa, crie uma política do AWS Identity and Access Management (IAM) com as permissões necessárias para transferir arquivos do bucket do Amazon S3 para a instância de banco de dados do RDS. Esta etapa pressupõe que você já tenha criado um bucket do S3. Para obter mais informações, consulte Como criar um bucket no Guia do usuário do Amazon S3.

Antes de criar a política, observe as seguintes informações:

  • Nome do recurso da Amazon (ARN) do bucket.

  • O ARN da chave do AWS Key Management Service (AWS KMS), se o bucket usar criptografia SSE-KMS ou SSE-S3.

Crie uma política do IAM que inclua as seguintes permissões:

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

É possível criar uma política do IAM usando o AWS Management Console ou a AWS Command Line Interface (AWS CLI).

Como criar uma política do IAM para permitir acesso do Amazon RDS a um bucket do Amazon S3
  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Políticas.

  3. Selecione Criar política e, depois, escolha a guia JSON.

  4. Adicione ações por serviço. Para transferir arquivos de um bucket do Amazon S3 para o Amazon RDS, é necessário selecionar permissões de bucket e permissões de objeto.

  5. Ampliar os Resources (Recursos). É necessário especificar os recursos de bucket e objeto.

  6. Escolha Próximo.

  7. Em Nome da política, digite um nome para essa política.

  8. (Opcional) Em Descrição, digite uma descrição para essa política.

  9. Escolha Criar política.

Como criar uma política do IAM para permitir acesso do Amazon RDS a um bucket do Amazon S3
  1. Execute o comando create-policy. No exemplo a seguir, substitua iam_policy_name e s3_bucket_name pelo nome da política do IAM e o nome do bucket do Amazon S3 no qual reside o banco de dados do RDS para Db2.

    Para Linux, macOS ou 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" ] } ] }'
  2. Depois de criar a política, anote o ARN da política. É necessário ter o ARN do Etapa 2: Criar um perfil do IAM e associar a política do IAM.

Para ter informações sobre como criar uma política do IAM, consulte Criação de políticas do IAM no Guia do usuário do IAM.

Etapa 2: Criar um perfil do IAM e associar a política do IAM

Esta etapa pressupõe que você tenha criado a política do IAM no Etapa 1: criar uma política do IAM. Nesta etapa, você vai criar um perfil do IAM para a instância de banco de dados do RDS para Db2 e associar a política ao perfil.

É possível criar um perfil do IAM para a instância de banco de dados usando o AWS Management Console ou a AWS CLI.

Como criar um perfil do IAM e associar a política do IAM a ele
  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Roles.

  3. Escolha Criar Perfil.

  4. Em Tipo de entidade confiável, selecione Serviço da AWS.

  5. Para Serviço ou caso de uso, selecione RDS e, depois, selecione RDS: Adicionar perfil ao banco de dados.

  6. Escolha Próximo.

  7. Em Políticas de permissões, pesquise e selecione o nome da política do IAM que você criou.

  8. Escolha Próximo.

  9. Em Role name (Nome da função), insira um nome.

  10. (Opcional) Em Descrição da função, insira uma descrição para a nova função.

  11. Selecione Criar função.

Como criar um perfil do IAM e associar a política do IAM a ele
  1. Execute o comando create-role. No exemplo a seguir, substitua iam_role_name por um nome para o perfil do IAM.

    Para Linux, macOS ou 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" } ] }'
  2. Depois que a função for criada, observe seu ARN. É necessário ter o ARN do Etapa 3: Adicionar o perfil do IAM à instância de banco de dados do RDS para Db2.

  3. Execute o comando attach-role-policy. No exemplo a seguir, substitua iam_policy_arn pelo ARN da política do IAM que você criou em Etapa 1: criar uma política do IAM. Substitua iam_role_name pelo nome do perfil do IAM que você acabou de criar.

    Para Linux, macOS ou 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 ter mais informações, consulte Criar um perfil para delegar permissões a um usuário do IAM no Guia do usuário do IAM.

Etapa 3: Adicionar o perfil do IAM à instância de banco de dados do RDS para Db2

Nesta etapa, você vai adicionar o perfil do IAM à instância de banco de dados do RDS para Db2. Observe os seguintes requisitos:

  • Você precisa ter acesso a um perfil do IAM com a política de permissões do Amazon S3 necessária anexada a ele.

  • Só é possível associar um perfil do IAM à instância de banco de dados do RDS para Db2 por vez.

  • A instância de banco de dados do RDS para Db2 deve estar no estado Disponível.

É possível adicionar um perfil do IAM à instância de banco de dados usando o AWS Management Console ou a AWS CLI.

Como adicionar um perfil do IAM à instância de banco de dados do RDS para Db2
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Bancos de dados.

  3. Selecione o nome da instância de banco de dados do RDS para Db2.

  4. Na guia Connectivity & security (Conectividade e segurança), role para baixo até a seção Manage IAM roles (Gerenciar funções do IAM) na parte inferior da página.

  5. Em Adicionar perfis do IAM a essa instância, selecione o perfil que você criou em Etapa 2: Criar um perfil do IAM e associar a política do IAM.

  6. Em Feature (Recurso), escolha S3_INTEGRATION.

  7. Escolha Add role (adicionar função).

    O recurso S3_INTEGRATION foi adicionado ao perfil do IAM para uma instância de banco de dados.

Para adicionar um perfil do IAM à instância de banco de dados do RDS para Db2, execute o comando add-role-to-db-instance. No exemplo a seguir, substitua db_instance_name e iam_role_arn pelo nome da instância de banco de dados e pelo ARN do perfil do IAM criado em Etapa 2: Criar um perfil do IAM e associar a política do IAM.

Para Linux, macOS ou Unix:

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

Para 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 o perfil foi adicionado com êxito à instância de banco de dados do RDS para Db2, execute o comando describe-db-instances. No exemplo a seguir, substitua db_instance_name pelo nome da instância de banco de dados.

Para Linux, macOS ou 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'

O comando gerará uma saída semelhante ao seguinte exemplo:

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