Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Como faço para copiar objetos do Amazon S3 de outra conta da AWS?
Quero copiar objetos do Amazon Simple Storage Service (Amazon S3) em todas as contas da AWS e garantir que a conta de destino seja proprietária dos objetos copiados.
Resolução
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
A conta da AWS que envia os objetos não detém automaticamente os objetos no Amazon S3. Quando você altera a propriedade do objeto do S3, é uma prática recomendada usar a configuração Imposto pelo proprietário do bucket. A configuração Imposto pelo proprietário do bucket simplifica o gerenciamento de acesso aos dados armazenados no Amazon S3. No entanto, essa opção desativa todas as listas de controle de acesso (ACLs) e ACLs de bucket em qualquer objeto em seu bucket.
Com a configuração Imposto pelo proprietário do bucket em Propriedade de objetos do S3, o mesmo proprietário do bucket possui automaticamente todos os objetos em um bucket do Amazon S3. Para buckets existentes, a conta que envia o objeto do S3 é proprietária do objeto, a menos que você desative explicitamente as ACLs.
Se seu método existente depende de ACLs para compartilhar objetos, identifique as entidades principais que usam ACLs para acessar objetos. Para obter mais informações, consulte Pré-requisitos para desativar as ACLs.
Se não for possível desativar suas ACLs, siga estas etapas para assumir a propriedade dos objetos até que possa ajustar sua política de bucket:
-
Na conta de origem, crie uma política gerenciada pelo cliente do AWS Identity and Access Management (AWS IAM) que conceda acesso entre contas a uma identidade do IAM. O usuário do IAM deve ter acesso para recuperar objetos do bucket de origem e colocá-los no bucket de destino.
Exemplo de política:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::source-DOC-EXAMPLE-BUCKET", "arn:aws:s3:::source-DOC-EXAMPLE-BUCKET/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET", "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET/*" ] } ] }Observação: Este exemplo de política do IAM inclui somente as permissões mínimas necessárias para listar objetos e copiar objetos para buckets entre contas. Personalize as ações permitidas do S3 com base no seu caso de uso. Por exemplo, se o usuário precisar copiar objetos que tenham tags de objeto, você também deverá conceder permissões para s3:GetObjectTagging. Se você tiver erros de permissão, isole os problemas relacionados ao IAM como usuário administrador.
-
Na conta de origem, anexe a política gerenciada pelo cliente à identidade do IAM.
-
Na conta de destino, defina a propriedade do objeto do S3 no bucket de destino para o proprietário do bucket preferido. Agora, a conta de destino possui automaticamente os novos objetos que você envia com a ACL definida como bucket-owner-full-control.
-
Na conta de destino, modifique a política de bucket do destino para conceder à conta de origem permissão para fazer upload de objetos. Além disso, inclua uma condição na política de bucket que exija que os uploads de objetos definam a ACL como bucket-owner-full-control.
Exemplo de política:{ "Version": "2012-10-17", "Id": "Policy1611277539797", "Statement": [ { "Sid": "Stmt1611277535086", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:user/Jane" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }, { "Sid": "Stmt1611277877767", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:user/Jane" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET" } ] }Observação: Substitua destination-DOC-EXAMPLE-BUCKET pelo nome do bucket de destino e arn:aws:iam::222222222222:user/Jane pelo ARN da identidade do IAM da conta de origem.
Esse exemplo de política de bucket inclui somente as permissões mínimas necessárias para carregar um objeto com a ACL necessária. Personalize as ações permitidas do S3 com base no seu caso de uso. -
Certifique-se de que a ACL esteja definida como bucket-owner-full-control para que a identidade do IAM da conta de origem possa fazer upload de objetos para o bucket de destino. Por exemplo, a identidade de origem do IAM deve executar o comando cp da AWS CLI com a opção —acl:
aws s3 cp s3://source-DOC-EXAMPLE-BUCKET/object.txt s3://destination-DOC-EXAMPLE-BUCKET/object.txt --acl bucket-owner-full-controlNo exemplo anterior, o comando copia o arquivo object.txt. Para copiar uma pasta inteira, execute o seguinte comando:
aws s3 cp directory/ s3://bucketname/directory --recursive --acl bucket-owner-full-controlObservação: Se você receber um erro AccessDenied, consulte Solucionar erros de acesso negado (403 proibido) no Amazon S3.
Importante: Se seu bucket do S3 tiver criptografia padrão com o AWS Key Management Service (AWS KMS) ativado, você também deverá modificar as permissões de chave do AWS KMS. Para obter instruções, consulte Meu bucket do Amazon S3 tem criptografia padrão usando uma chave personalizada do AWS KMS. Como posso permitir que os usuários façam download e upload para o bucket?
Para copiar grandes quantidades de dados entre buckets do S3, consulte Qual é a melhor maneira de transferir grandes quantidades de dados de um bucket do Amazon S3 para outro? Além disso, consulte Como posso otimizar o desempenho ao fazer upload de grandes quantidades de dados no Amazon S3?
Informações relacionadas
Exemplos de políticas de bucket do Amazon S3
Exemplo 2: Proprietário do bucket concede permissões de bucket entre contas
Usar uma política baseada em recursos para delegar acesso a um bucket do Amazon S3 em outra conta
- Tópicos
- Storage
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há 9 meses
- feita há 5 meses
AWS OFICIALAtualizada há 3 meses