Knowledge Center Monthly Newsletter - September 2025
Stay up to date with the latest from the Knowledge Center. See all new Knowledge Center articles published in the last month, and re:Post’s top contributors.
Como conceder acesso entre contas a objetos que estão em buckets do Amazon S3?
Quero conceder acesso para outra conta da AWS a um objeto que está em um bucket do Amazon Simple Storage Service (Amazon S3).
Breve descrição
Como administrador da conta, é possível conceder aos usuários de outra conta acesso entre contas aos objetos existentes na sua conta.
É possível conceder permissões para recursos específicos do S3 que não exigem acesso administrativo total.
Use um dos métodos a seguir para conceder acesso entre contas a objetos:
- Políticas do AWS Identity and Access Management (AWS IAM) e políticas de bucket baseadas em recursos para acesso somente programático a objetos de buckets do S3.
- Políticas do IAM e listas de controle de acesso (ACLs) baseadas em recursos para acesso somente programático a objetos de buckets do S3.
Observação: quando você ativa a configuração Imposto pelo proprietário do bucket, o Amazon S3 desativa todas as ACLs de bucket e objeto. Portanto, não é possível usar ACLs para conceder acesso entre contas. Por padrão, a opção Imposto pelo proprietário do bucket está ativada para todos os buckets recém-criados. Para gerenciar o acesso entre contas, também é uma prática recomendada usar políticas do IAM e políticas de bucket em vez de ACLs. Para obter mais informações, consulte Controlar a propriedade de objetos e a desativação de ACLs do seu bucket. - Perfis do IAM entre contas para acesso programático e via console a objetos de buckets do S3.
Se o solicitante for uma entidade principal do perfil do IAM, a conta proprietária da entidade principal deverá usar a política do IAM para conceder as permissões do bucket do S3. Com base no seu caso de uso, o proprietário do bucket também deve conceder permissões por meio de uma política de bucket ou da ACL. Depois que o acesso for concedido, o acesso programático de buckets entre contas será o mesmo que o acesso aos buckets da conta.
Para acesso entre contas com pontos de acesso Amazon S3 ou AWS Key Management Service (AWS KMS), é necessária uma configuração adicional. Para obter mais informações, consulte Por que usuários de várias contas recebem erros de acesso negado quando tentam acessar meus objetos do S3 que eu criptografei com uma chave gerenciada pelo cliente do AWS KMS?
Para conjuntos de dados grandes que você precisa acessar como objetos entre contas, uma prática recomendada é usar os Pontos de acesso S3. Para obter mais informações, consulte Simplifique e escale o gerenciamento do acesso a conjuntos de dados compartilhados com Pontos de acesso Amazon S3 entre contas.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Nos procedimentos a seguir, a Conta A é a sua conta e a Conta B é a conta para a qual você deseja conceder acesso a objetos.
Políticas do IAM e políticas de bucket baseadas em recursos
Para gerenciar o acesso entre contas e auditar as permissões do objeto do S3, use políticas de bucket baseadas em recursos.
Aplique uma política de bucket no nível do bucket que defina os elementos principal, resource e action. Ao aplicar uma política de bucket no nível do bucket, é possível definir o acesso a diferentes objetos dentro desse bucket. Também pode revisar a política de bucket para ver quem pode acessar objetos em um bucket do S3.
Para usar políticas de bucket para gerenciar o acesso a buckets do S3, conclua as seguintes etapas:
-
Crie um bucket do S3 na Conta A.
-
Crie um usuário ou uma função do IAM na Conta B.
-
Conceda ao usuário ou ao perfil do IAM na Conta B as permissões GetObject e PutObject. Além disso, conceda ao usuário ou função do IAM permissão para chamar PutObjectAcl que concede permissão de objeto ao proprietário do bucket:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::AccountABucketName/*" } ] }
Observação: na política anterior, substitua os valores de exemplo pelos valores do usuário.
Você também pode limitar o acesso a uma pasta de bucket específica que esteja na Conta A. Para isso, defina o nome da pasta no elemento Resource, como “arn:aws:s3:::AccountABucketName/FolderName/*”. Para obter mais informações, consulte Como conceder acesso para um usuário a uma pasta específica no meu bucket do Amazon S3? Você também pode executar o comando create-policy da AWS CLI para criar uma política baseada em identidade do IAM. -
Configure a política de bucket para a Conta A para conceder permissões GetObject e PutObject ao usuário ou função do IAM que você criou na Conta B:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB:user/AccountBUserName" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::AccountABucketName/*" ] } ] }
Você também pode executar o comando put-bucket-policy da AWS CLI para criar uma política de bucket do S3.
Para limitar o acesso a uma pasta de bucket específica, defina o nome dela no elemento Recurso, como “arn:aws:s3:::AccountABucketName/FolderName/*”. Quando você usa a permissão s3:PutObject com uma chave de condição, o proprietário do bucket tem controle total sobre os objetos que outras contas enviam. A chamada da API PutObject impõe a ACL com cabeçalhos específicos.
Políticas do IAM e ACLs baseadas em recursos
Você também pode usar ACLs de objetos para gerenciar permissões para cenários específicos.
As ACLs do Amazon S3 permitem que os usuários definam somente conjuntos de permissões READ, WRITE, READ_ACP, WRITE_ACP e FULL_CONTROL. Você pode usar somente uma conta ou um dos grupos predefinidos do Amazon S3 como beneficiário da ACL do Amazon S3. Quando você especifica um endereço de e-mail ou ID de usuário canônico para uma conta, a ACL se aplica a todas as identidades na conta do beneficiário. Por exemplo, não é possível usar uma ACL para restringir o acesso a usuários ou perfis individuais do IAM. Também não é possível aplicar ACLs a objetos diferentes que compartilham os mesmos prefixos.
Observação: a ACL não oferece suporte para a condição da operação do S3 que a ACL autoriza. Assim, o proprietário do bucket pode não ter controle total sobre os objetos que o beneficiário da ACL carregou.
Para usar ACLs de bucket e objeto para gerenciar o acesso a buckets do S3, conclua as seguintes etapas:
-
Crie um usuário ou uma função do IAM na Conta B.
-
Conceda ao usuário ou perfil permissões para realizar as operações necessárias do Amazon S3. Os usuários que chamam PutObject e GetObject devem ter as permissões listadas na seção Políticas baseadas em recursos e políticas do IAM.
-
Configure a ACL do bucket para incluir pelo menos a permissão WRITE para a Conta B. A permissão WRITE garante que os perfis ou usuários do IAM da Conta B possam fazer upload de objetos em um bucket que a Conta A possui:
...<AccessControlPolicy> <Owner> <ID> AccountACanonicalUserID </ID> <DisplayName> AccountADisplayName </DisplayName> </Owner> <AccessControlList> ... <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"> <ID> AccountBCanonicalUserID </ID> <DisplayName> AccountBDisplayName </DisplayName> </Grantee> <Permission> WRITE </Permission> </Grant> ... </AccessControlList> </AccessControlPolicy>
Observação: para encontrar o CanonicalUserID, consulte Encontrar um ID de usuário canônico da Conta da AWS.
-
Configure ACLs de objetos para incluir pelo menos a permissão READ para a Conta B. A permissão READ permite que perfis ou usuários do IAM na Conta B baixem objetos de um bucket que a Conta A possui:
...<AccessControlPolicy> <Owner> <ID> AccountACanonicalUserID </ID> <DisplayName> AccountADisplayName </DisplayName> </Owner> <AccessControlList> ... <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"> <ID> AccountBCanonicalUserID </ID> <DisplayName> AccountBDisplayName </DisplayName> </Grantee> <Permission> READ </Permission> </Grant> ... </AccessControlList> </AccessControlPolicy>
As permissões de ACL variam de acordo com o recurso, o bucket ou o objeto do S3 ao qual uma ACL é aplicada. Para obter mais informações, consulte Visão geral de listas de controle de acesso (ACLs). Ao criar seu bucket ou carregar um objeto em um bucket existente, configure o bucket e ACLs de objeto.
Perfis do IAM entre contas
Nem todos os serviços da AWS oferecem suporte a políticas baseadas em recursos. Em vez isso, use perfis do IAM entre contas para centralizar o gerenciamento de permissões ao fornecer acesso entre contas a vários serviços. Esse método permite o acesso entre contas a objetos que outra conta ou serviço da AWS possui ou carregou. Se você não usar perfis do IAM entre contas, deverá modificar a ACL do objeto. Para obter mais informações, consulte Como o Amazon S3 autoriza uma solicitação para uma operação de objeto.
Para usar perfis do IAM entre contas para gerenciar o acesso a buckets do S3, conclua as seguintes etapas:
-
Crie um perfil do IAM na Conta A.
-
Conceda ao perfil permissões para realizar as operações necessárias do S3. Na política de confiança do perfil, conceda a um perfil ou usuário da Conta B permissões para assumir o perfil na Conta A:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountB:user/AccountBUserName" }, "Action": "sts:AssumeRole" } ] }
Observação: os perfis do IAM devem ter uma política de confiança que defina as entidades principais que podem assumi-los e quando isso pode acontecer. Os perfis do IAM podem ter várias políticas de permissões que definem as permissões que uma entidade principal que os assume pode realizar e os recursos que eles utilizam.
Você também pode executar o comando create-role da AWS CLI para criar um perfil com a política de confiança.
A política de acesso a seguir permite que um usuário que assumiu esse perfil use o console do Amazon S3 para baixar e fazer upload de objetos programaticamente. Se apenas o acesso programático for necessário, você poderá remover as duas primeiras instruções da política:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": "arn:aws:s3:::AccountABucketName" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::AccountABucketName/*" } ] }
Para obter mais informações, consulte Como conceder acesso para um usuário a uma pasta específica no meu bucket do Amazon S3? Você também pode executar o comando create-policy da AWS CLI para criar uma política baseada em identidade do IAM.
-
Conceda a um perfil ou usuário do IAM na Conta B permissão para assumir o perfil do IAM criado na Conta A. Você deve adicionar a política a seguir como uma política de permissões do usu��rio ou perfil do IAM:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::AccountA:role/AccountARole" } }
Você também pode executar o comando create-policy da AWS CLI para criar uma política baseada em identidade do IAM.
-
A partir de um perfil na Conta B, assuma o perfil na Conta A, para que as identidades do IAM na Conta B possam realizar as operações necessárias do S3.
Observação: quando você assume um perfil do IAM na Conta A, o Amazon S3 determina a operação com base na política de acesso. O perfil do IAM funciona como uma chamada de API invocada por uma identidade do IAM local na Conta A. Não é necessária uma política de bucket ou uma ACL para acesso entre contas. Para obter mais informações, consulte Ações políticas para o Amazon S3.
Informações relacionadas
Ações, recursos e chaves de condição para o Amazon S3
Exemplos de políticas de bucket do Amazon S3
Exemplos de políticas baseadas em identidade para o Amazon S3
- Tópicos
- Storage
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há 6 meses
- feita há um mês