Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Por que meus objetos do Amazon S3 não estão se replicando quando eu configuro a replicação entre meus buckets?
Configurei a replicação entre regiões (CRR) ou a replicação na mesma região (SRR) entre meus buckets do Amazon Simple Storage Service (Amazon S3). No entanto, os objetos não estão se replicando no bucket de destino.
Resolução
Para solucionar problemas com objetos S3 que não estão se replicando no bucket de destino, verifique os diferentes tipos de permissões do seu bucket. Além disso, verifique as configurações de acesso público e de propriedade do bucket.
Dica:
- faça upload de um objeto no bucket de origem para testar a replicação após cada alteração de configuração. A prática recomendada é alterar uma configuração de cada vez para identificar problemas de configuração de replicação.
- Ative a notificação do tipo de evento s3:Replication:OperationFailedReplication para falhas de replicação. O código de erro pode ajudar a determinar a causa da falha.
Depois de resolver os problemas que causam falha na replicação, pode haver objetos no bucket de origem que não foram replicados. Por padrão, a replicação do S3 não replica objetos atuais ou objetos com um status de replicação FAILED ou REPLICA. Para verificar os status de replicação dos objetos, consulte Como faço para visualizar objetos com falha na replicação de um bucket do Amazon S3 para outro?Use a replicação em lote do S3 para replicar esses objetos.
Conceder permissões mínimas do Amazon S3
Confirme se a função do AWS Identity Access Management (IAM) que você usou na regra de replicação tem as permissões corretas. Se os buckets de origem e destino estiverem em contas diferentes da AWS, confirme se a política de bucket da conta de destino também concede permissões suficientes ao perfil de replicação.
No exemplo a seguir, a política do IAM tem as permissões mínimas necessárias para replicação:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::SourceBucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::SourceBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ReplicateTags" ], "Resource": "arn:aws:s3:::DestinationBucket/*" } ] }
Observação: substitua SourceBucket e DestinationBucket pelos nomes dos buckets do S3.
Com base nas opções da regra de replicação, talvez seja necessário conceder permissões adicionais.
O perfil do IAM deve ter uma política de confiança que permita ao Amazon S3 assumir a função de replicar objetos:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Conceder permissões adicionais do Amazon S3
Se você definir a regra de replicação como Change object ownership to the destination bucket owner (Alterar a propriedade do objeto para o proprietário do bucket de destino), o perfil do IAM deverá ter permissões s3:ObjectOwnerOverrideToBucketOwner. Coloque a permissão no recurso do objeto do S3:
{ "Effect": "Allow", "Action": [ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }
A conta de destino também deve conceder a permissão s3:ObjectOwnerOverrideToBucketOwner na política de bucket:
{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }
Observação: se a propriedade do objeto do bucket de destino for Bucket owner enforced (Imposição do proprietário do bucket), você não precisará da configuração Change object ownership to the destination bucket owner (Alterar a propriedade do objeto para o proprietário do bucket de destino) na regra de replicação. A alteração ocorre por padrão.
Se você ativou delete marker replication activated (replicação do marcador de exclusão ativada) na regra de replicação, o perfil do IAM deverá ter permissões s3:ReplicateDelete:
{ "Effect": "Allow", "Action": [ "s3:ReplicateDelete" ], "Resource": "arn:aws:s3:::DestinationBucket/*" }
Se o bucket de destino estiver em outra conta, o proprietário também deverá conceder a permissão na política do bucket:
{ "Version": "2012-10-17", "Id": "PolicyForDestinationBucket", "Statement": [ { "Sid": "Stmt1644945277847", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:ReplicateObject", "s3:ReplicateTags", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateDelete" ], "Resource": "arn:aws:s3:::DestinationBucket/*" } ] }
Observação: substitua arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role pelo ARN do perfil de replicação. Substitua DestinationBucket pelo nome do seu bucket do S3.
Conceder permissões do AWS KMS
Se você criptografou os objetos de origem do bucket com uma chave do AWS Key Management Service (AWS KMS), a regra de replicação deverá incluir objetos criptografados pelo AWS KMS.
Conclua as seguintes etapas:
- Abra o console do Amazon S3.
- Escolha o bucket do S3 que contém os objetos de origem.
- Na guia Management (Gerenciamento), selecione uma regra de replicação.
- Escolha Edit (Editar).
- Em Encryption (Criptografia), selecione Replicate objects encrypted with AWS KMS (Replicar objetos criptografados com o AWS KMS).
- Em AWS KMS key for encrypting destination objects (Chave do AWS KMS para criptografar objetos de destino), selecione uma chave do AWS KMS. A opção padrão é usar a chave do AWS KMS (aws/S3).
Para obter mais informações, consulte Exemplos de políticas - como usar SSE-S3 e SSE-KMS com replicação.
Importante: se o bucket de destino estiver em uma conta diferente, especifique uma chave gerenciada pelo cliente do AWS KMS que seja de propriedade da conta de destino. A chave aws/s3 padrão criptografa os objetos com a chave gerenciada pela AWS que a conta de origem possui. Como não é possível compartilhar a chave gerenciada pela AWS com outra conta, a conta de destino não pode acessar os objetos no bucket de destino.
Conceder permissões adicionais do AWS KMS para cenários entre contas
Para usar a chave do AWS KMS da conta de destino para criptografar os objetos de destino, a conta de destino deve conceder o perfil de replicação na política de chave:
{ "Sid": "AllowS3ReplicationSourceRoleToUseTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "*" }
**Observação:**se você usar um asterisco (*) para Resource (Recurso) na política de chave do AWS KMS, a política concederá permissão somente ao perfil de replicação. A política não permite que o perfil de replicação expanda as permissões.
Além disso, é preciso adicionar as seguintes permissões mínimas à política do IAM do perfil de replicação a partir da conta de origem:
[ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "SourceKmsKeyArn" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": [ "DestinationKmsKeyArn" ] } ]
Por padrão, a política de chave do AWS KMS concede ao usuário-raiz permissões totais para a chave. É possível delegar essas permissões a outros usuários na mesma conta. Além disso, é possível usar uma política do IAM para conceder permissões ao perfil de replicação para a chave KMS de origem. Isso é suficiente, a menos que haja declarações de negação na política de chaves do KMS de origem.
Verificar declarações explícitas de negação e permissão condicional
Se seus objetos ainda não estiverem se replicando após a validação das permissões, verifique se há declarações de negação explícitas que possam causar falha na replicação.
Remova as declarações de negação na política do bucket de destino ou na política de chave do AWS KMS que restringem o acesso ao seguinte:
- Intervalos CIDR específicos;
- Endpoints de nuvem privada virtual (VPC);
- Pontos de acesso S3
Remova as declarações de negação ou os limites de permissões associados ao perfil do IAM. Além disso, remova declarações de negação nas políticas de controle de serviço (SCPs) do AWS Organizations associadas às contas de origem ou de destino.
**Dica:**Antes de remover qualquer declaração de negação explícita, confirme o motivo da negação. Além disso, determine se a instrução afeta a segurança dos dados.
Verificar as chaves do bucket do Amazon S3
Se as chaves do KMS de origem ou de destino concederem permissões com base no contexto de criptografia, verifique se as chaves de bucket do S3 estão sendo usadas. Se os buckets usarem as chaves de bucket, o contexto de criptografia deverá destinar-se ao recurso em nível de bucket:
"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::SOURCE_BUCKET_NAME" ] "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::DESTINATION_BUCKET_NAME" ]
Observação: substitua SOURCE_BUCKET_NAME e DESTINATION_BUCKET_NAME pelos nomes dos seus buckets de origem e de destino.
Se chaves de bucket não forem usadas para os buckets de origem ou destino, o contexto de criptografia deverá ser o recurso em nível de objeto:
"kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::SOURCE_BUCKET_NAME/*" ] "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::DESTINATION_BUCKET_NAME/*" ]
Observação: substitua SOURCE_BUCKET_NAME e DESTINATION_BUCKET_NAME pelos nomes dos seus buckets de origem e de destino.
Verificar ACLs de objeto e bloqueio do acesso público
Verifique se os buckets de origem e destino usam listas de controle de acesso (ACLs). Se o objeto tiver uma ACL anexada que permita acesso público, mas o bucket de destino usa o bloqueio de acesso público, a replicação falhará.
Confirmar a propriedade do objeto de origem
Se outra conta carregar os objetos no bucket de origem, talvez a conta de origem não tenha permissão para esses objetos. Verifique o bucket de origem para determinar se as ACLs estão desativadas.
Se as ACLs estiverem desativadas no bucket de origem, a conta de origem será a proprietária de todos os objetos no bucket. Se as ACLs não estiverem desativadas no bucket de origem, verifique se a propriedade do objeto está definida como Object owner preferred (Proprietário do objeto preferencial) ou Bucket owner preferred (Proprietário do bucket preferencial). Se a propriedade estiver definida como Bucket owner preferred (Proprietário do bucket preferencial), os objetos do bucket de origem deverão ter uma permissão de ACL bucket-owner-full-control.
A conta de origem pode desativar as ACLs para assumir a propriedade de todos os objetos no bucket. A maioria dos casos de uso não exige o uso de ACLs para gerenciar o acesso. É uma prática recomendada usar políticas do IAM e de bucket para gerenciar o acesso a recursos do S3. Para desativar ACLs em seu bucket S3, consulte Controlar a propriedade de objetos e desabilitar ACLs no seu bucket. Suas políticas de bucket e IAM devem conceder permissões suficientes para que você não afete o acesso ao Amazon S3 ao desativar as ACLs.
Especificar o filtro de regra de replicação correto
Certifique-se de que você especificou corretamente o filtro da regra de replicação.
Se você especificar um filtro de regras com uma combinação de prefixo de chave e tags de objeto, o S3 executará uma operação lógica AND para combinar os filtros. A regra se aplica a um subconjunto de objetos com um prefixo de chave específico e tags específicas.
Informações relacionadas
Vídeos relacionados


Conteúdo relevante
- feita há um mêslg...
- feita há 9 diaslg...
- feita há 8 diaslg...
- feita há 2 meseslg...
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 5 meses