Resolução
Ativar o Bloqueio de Objetos no bucket de destino
Para configurar a replicação em um bucket do Amazon S3, ative o Bloqueio de Objetos no bucket de destino.
Observação: depois de ativar o Bloqueio de Objetos do S3, não será possível desativar o Bloqueio de Objetos nem suspender o versionamento do bucket.
Crie um perfil do IAM para replicação com as permissões necessárias
Crie um perfil de replicação do AWS Identity and Access Management (AWS IAM) no console do IAM para a conta de origem com uma relação de confiança para o Amazon S3.
Exemplo:
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Anexe as seguintes permissões ao perfil do IAM:
{ "Version": "2012-10-17",
"Statement": [
{
"Sid": "SourceBucketPermissions",
"Effect": "Allow",
"Action": [
"s3:GetObjectRetention",
"s3:GetObjectVersionTagging",
"s3:GetObjectVersionAcl",
"s3:ListBucket",
"s3:GetObjectVersionForReplication",
"s3:GetObjectLegalHold",
"s3:GetReplicationConfiguration"
],
"Resource": [
"arn:aws:s3:::SourceBucketName/*",
"arn:aws:s3:::SourceBucketName"
]
},
{
"Sid": "DestinationBucketPermissions",
"Effect": "Allow",
"Action": [
"s3:ReplicateObject",
"s3:ObjectOwnerOverrideToBucketOwner",
"s3:GetObjectVersionTagging",
"s3:ReplicateTags",
"s3:ReplicateDelete"
],
"Resource": [
"arn:aws:s3:::DestBucketName/*"
]
}
]
}
Se você usa as chaves do AWS Key Management Service (AWS KMS), anexe também as seguintes permissões ao perfil do IAM:
{ "Version": "2012-10-17",
"Statement": [
{
"Sid": "SourceBucketPermissions",
"Effect": "Allow",
"Action": [
"s3:GetObjectRetention",
"s3:GetObjectVersionTagging",
"s3:GetObjectVersionAcl",
"s3:ListBucket",
"s3:GetObjectVersionForReplication",
"s3:GetObjectLegalHold",
"s3:GetReplicationConfiguration"
],
"Resource": [
"arn:aws:s3:::SourceBucketName/*",
"arn:aws:s3:::SourceBucketName"
]
},
{
"Sid": "DestinationBucketPermissions",
"Effect": "Allow",
"Action": [
"s3:ReplicateObject",
"s3:ObjectOwnerOverrideToBucketOwner",
"s3:GetObjectVersionTagging",
"s3:ReplicateTags",
"s3:ReplicateDelete"
],
"Resource": [
"arn:aws:s3:::DestBucketName/*"
]
},
{
"Sid": "SourceBucketKMSKey",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Effect": "Allow",
"Resource": "SourceBucketKMSKeyARN"
},
{
"Sid": "DestinationBucketKMSKey",
"Action": [
"kms:Encrypt",
"kms:GenerateDataKey"
],
"Effect": "Allow",
"Resource": "DestinationBucketKMSKeyARN"
}
]
}
Atualizar as permissões de chave do AWS KMS
Configure a chave do AWS KMS para a conta de destino para permitir o acesso ao perfil replicado do IAM na conta de origem. É possível usar a criptografia SSE-S3, mas não é possível usar a chave gerenciada do AWS KMS aws/S3 para replicação entre contas. Para obter mais informações, consulte Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).
Exemplo:
{ "Sid": "AllowS3ReplicationSourceRoleToUseTheKey",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789101:role/s3-replication-role"
},
"Action": [
"kms:GenerateDataKey",
"kms:Encrypt"
],
"Resource": "*"
}
Observação: se você usar um curinga (\ *) para Recurso na política de chave, a política concederá permissão somente ao perfil do IAM replicado para a chave do AWS KMS. A política não permite que o perfil replicado eleve suas permissões.
Adicione a seguinte política de bucket à conta de destino
Na seção Entidade principal, adicione o nome do recurso da Amazon (ARN) do perfil de replicação do IAM que você criou.
Exemplo:
{ "Version": "2012-10-17",
"Id": "PolicyForDestinationBucket",
"Statement": [
{
"Sid": "ReplicationPermissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role"
},
"Action": [
"s3:ReplicateDelete",
"s3:ReplicateObject",
"s3:ObjectOwnerOverrideToBucketOwner",
"s3:GetBucketVersioning",
"s3:PutBucketVersioning"
],
"Resource": [
"arn:aws:s3:::DestBucketName/*",
"arn:aws:s3:::DestBucketName"
]
}
]
}
Replique o perfil do IAM para seu bucket do S3
Conclua as etapas a seguir:
- Abra o console do Amazon S3.
- Escolha Buckets e, em seguida, selecione seu bucket de origem.
- Escolha a guia Gerenciamento.
- Em Regras de replicação, escolha Criar regra de replicação.
- Insira um nome para sua regra.
- Em Bucket de origem, escolha um escopo de regra para determinar se a replicação se aplica a um prefixo de objeto específico ou a todo o conteúdo do bucket.
- Na seção Destino, selecione Especificar um bucket em outra conta e digite o nome do bucket de destino e o ID da conta.
- Em Perfil do IAM, escolha Escolher entre perfis do IAM já criados.
- Escolha Criar novo perfil.
- ou -
Insira o ARN do perfil do IAM para usar um perfil que você já criou ou se tiver regras de replicação existentes.
- Para replicar objetos criptografados com o AWS KMS:
Em Criptografia, selecione Replicar objetos criptografados com o AWS Key Management Service (AWS KMS).
Insira o ARN da sua chave do AWS KMS.
- (Opcional) Configure a Classe de armazenamento de destino e as Opções adicionais de replicação.
- Revise a configuração e, em seguida, escolha Salvar.
- (Opcional) Replique objetos existentes com uma tarefa única de operações em lote do Amazon S3.
Verificar se replicou o perfil do IAM em todas as contas
Para testar a regra de replicação, adicione novos objetos ao bucket de origem e, em seguida, verifique se há objetos replicados no bucket de destino.
Informações relacionadas
Configurar a funcionalidade Bloqueio de Objetos do S3
Como funciona o Bloqueio de Objetos do S3