Configurar o acesso a um bucket do Amazon S3 - Amazon Aurora

Configurar o acesso a um bucket do Amazon S3

Você identifica o bucket do Amazon S3, depois fornece ao snapshot permissão para acessá-lo.

Identificar o bucket do Amazon S3 para exportar

Identifique o bucket do Amazon S3 para o qual exportar o snapshot de banco de dados. Use um bucket do S3 existente ou crie um novo bucket do S3.

nota

O bucket do S3 para o qual exportar deve estar na mesma região da AWS que o snapshot.

Para ter mais informações sobre como trabalhar com buckets do Amazon S3, consulte o seguinte no Guia do usuário do Amazon Simple Storage Service:

Fornecer acesso a um bucket do Amazon S3 usando um perfil do IAM

Antes de exportar dados de snapshot de banco de dados para o Amazon S3, forneça permissões de acesso de gravação ao bucket do Amazon S3 às tarefas de exportação.

Para conceder essa permissão, crie uma política do IAM que forneça acesso ao bucket e, depois, crie um perfil do IAM e anexe a política ao perfil. Posteriormente, você atribui o perfil do IAM à tarefa de exportação de snapshot.

Importante

Se você planeja usar o AWS Management Console para exportar o snapshot, poderá optar por criar a política do IAM e a função automaticamente ao exportar o snapshot. Para obter instruções, consulte Criar tarefas de exportação de snapshot.

Como fornecer acesso ao Amazon S3 às tarefas de snapshot de banco de dados
  1. Crie uma política do IAM. Essa política fornece as permissões de bucket e objeto que permitem que sua tarefa de exportação de snapshot acesse o Amazon S3.

    Na política, inclua as ações necessárias a seguir para permitir a transferência de arquivos do Amazon Aurora para um bucket do S3:

    • s3:PutObject*

    • s3:GetObject*

    • s3:ListBucket

    • s3:DeleteObject*

    • s3:GetBucketLocation

    Na política, inclua os recursos a seguir para identificar o bucket do S3 e os objetos no bucket. A lista de recursos a seguir mostra o formato do nome de recurso da Amazon (ARN) para acessar o Amazon S3.

    • arn:aws:s3:::amzn-s3-demo-bucket

    • arn:aws:s3:::amzn-s3-demo-bucket/*

    Para ter mais informações sobre como criar uma política do IAM para o Amazon Aurora, consulte Criar e usar uma política do IAM para acesso do banco de dados do IAM. Consulte também Tutorial: Criar e anexar sua primeira política gerenciada pelo cliente no Guia do usuário do IAM.

    O comando da AWS CLI a seguir cria uma política do IAM denominada ExportPolicy com essas opções. Ele concede acesso a um bucket denominado amzn-s3-demo-bucket.

    nota

    Depois de criar a política, anote o ARN da política. O ARN será necessário para uma etapa posterior, quando você anexar a política a um perfil do IAM.

    aws iam create-policy --policy-name ExportPolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExportPolicy", "Effect": "Allow", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }'
  2. Crie um perfil do IAM para que o Aurora possa assumir esse perfil do IAM em seu nome a fim de acessar os buckets do Amazon S3. 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.

    O exemplo a seguir mostra como usar o comando da AWS CLI para criar uma função chamada rds-s3-export-role.

    aws iam create-role --role-name rds-s3-export-role --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "export.rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
  3. Anexe a política do IAM que você criou ao perfil do IAM que você criou.

    O seguinte comando da AWS CLI anexa a política criada anteriormente à função chamada rds-s3-export-role. Substitua your-policy-arn pelo ARN da política que você anotou em uma etapa anterior.

    aws iam attach-role-policy --policy-arn your-policy-arn --role-name rds-s3-export-role

Utilizar um bucket do Amazon S3 entre contas

É possível utilizar buckets do Amazon S3 entre contas da AWS. Para utilizar um bucket entre contas, adicione uma política de bucket para permitir o acesso ao perfil do IAM que você está utilizando para as exportações do S3. Para ter mais informações, consulte Exemplo 2: proprietário do bucket concedendo permissões para o bucket entre contas.

  • Vincule uma política de bucket ao bucket, como mostra o exemplo a seguir.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/Admin" }, "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket", "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] } ] }

Utilizar uma conta cruzada AWS KMS key

Você pode utilizar um AWS KMS key entre contas para criptografar exportações do Amazon S3. Primeiro, você adiciona uma política de chaves à conta local e depois adiciona políticas do IAM na conta externa. Para ter mais informações, consulte o tópico sobre como Permitir que usuários de outras contas utilizem uma chave do KMS.

Para utilizar uma chave do KMS entre contas
  1. Adicione uma política de chaves à conta local.

    O exemplo a seguir concede a ExampleRole e ExampleUser na conta externa 444455556666 permissões na conta local 123456789012.

    { "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/ExampleRole", "arn:aws:iam::444455556666:user/ExampleUser" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "*" }
  2. Adicione políticas do IAM à conta externa.

    O seguinte exemplo de política do IAM permite que a entidade principal use a chave do KMS na conta 123456789012 para operações criptográficas. Para conceder essa permissão a ExampleRole e ExampleUser na conta 444455556666, vincule a política a eles nessa conta.

    { "Sid": "Allow use of KMS key in account 123456789012", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }