Quando outras contas da AWS carregarem objetos no meu bucket do Amazon S3, como posso exigir que elas me concedam controle total sobre os objetos?

2 minuto de leitura
0

Quero permitir que usuários de outras contas da AWS carreguem objetos no meu bucket do Amazon Simple Storage Service (Amazon S3). No entanto, quero exigir que os usuários me concedam controle total sobre esses objetos.

Resolução

Adicione uma política de bucket que exija que os usuários incluam a lista de controle de acesso (ACL) bucket-owner-full-control ao carregarem objetos no seu bucket.

Por exemplo, esta política de bucket especifica que ExampleUser pode carregar objetos em DOC-EXAMPLE-BUCKET somente quando a ACL do objeto estiver definida como bucket-owner-full-control:

{
  "Id": "Policy1541018284691",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1541018283275",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
      "Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control"
        }
      },
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:user/ExampleUser"
        ]
      }
    }
  ]
}

Depois de adicionar essa política de bucket, os usuários devem incluir a ACL necessária como parte da solicitação de carregamento, como no exemplo seguinte:

aws s3 cp example.jpg s3://DOC-EXAMPLE-BUCKET --acl bucket-owner-full-control

Se os usuários não atenderem ao requisito de ACL na solicitação de carregamento, eles receberão a seguinte mensagem de erro:

"An error occurred (AccessDenied) when calling the PutObject operation: Access Denied"

Para objetos em seu bucket pertencentes a outras contas, o proprietário do objeto pode executar um comando put-object-acl para conceder a você o controle sobre o objeto:

aws s3api put-object-acl --bucket DOC-EXAMPLE-BUCKET --key example.jpg --acl bucket-owner-full-control

A ACL bucket-owner-full-control concede ao proprietário do bucket acesso total a um objeto carregado por outra conta. No entanto, essa ACL sozinha não concede a propriedade do objeto. Para obter automaticamente a propriedade dos objetos carregados com a ACL bucket-owner-full-control, defina a propriedade do objeto do S3 como preferencial do proprietário do bucket. Depois de atualizar a propriedade do objeto do S3, o proprietário do bucket automaticamente se torna proprietário de todos os novos objetos carregados com bucket-owner-full-control.

Informações relacionadas

Por que não consigo acessar um objeto que foi enviado ao meu bucket do Amazon S3 por outra conta da AWS?

Gerenciar buckets usando ACLs predefinidas

Tutorial do IAM: Delegar acesso entre contas da AWS usando funções do IAM

Mapeamento das permissões da ACL e das permissões da política de acesso

AWS OFICIAL
AWS OFICIALAtualizada há 5 meses