Desabilitar ACLs de todos os novos buckets e aplicar Object Ownership
Recomendamos desabilitar ACLs nos buckets do Amazon S3. Faça isso aplicando a configuração Imposto pelo proprietário do bucket para Propriedade de objeto do S3. Quando você aplica essa configuração, as ACLs são desabilitadas, e você automaticamente tem a propriedade e o controle total sobre todos os objetos de seu bucket. Para exigir que todos os novos buckets sejam criados com ACLs desabilitadas usando políticas do AWS Identity and Access Management (IAM) ou políticas de controle de serviços (SCPs) do AWS Organizations, conforme descrito na próxima seção.
Para aplicar a propriedade do objeto a novos objetos sem desabilitar ACLs, aplique a configuração preferencial do proprietário do bucket. Quando você aplica essa configuração, é altamente recomendável atualizar a política de bucket para exigir a ACL bucket-owner-full-control
pré-configurada para todas as solicitações PUT
para o bucket. Atualize também os clientes para enviar a ACL bucket-owner-full-control
pré-configurada de outras contas para o bucket.
Tópicos
Desabilitar ACLs para todos os novos buckets (aplicada pelo proprietário do bucket)
O exemplo a seguir de política do IAM nega a permissão s3:CreateBucket
para um usuário ou um perfil do IAM específico, a menos que a configuração Imposto pelo proprietário do bucket seja adotada em Propriedade de objeto. O par de chave-valor no bloco Condition
especifica a chave s3:x-amz-object-ownership
e a configuração BucketOwnerEnforced
como valor. Em outras palavras, o usuário do IAM pode criar buckets somente se definir a configuração Imposto pelo proprietário do bucket para Propriedade de objeto e desabilitar ACLs. Também é possível usar essa política como um SCP de limite para sua organização da AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireBucketOwnerFullControl", "Action": "s3:CreateBucket", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals": { "s3:x-amz-object-ownership": "BucketOwnerEnforced" } } } ] }
Exigir a ACL pré-configurada bucket-owner-full-control para operações PUT
do Amazon S3 (preferencial do proprietário do bucket)
Com a configuração preferencial do proprietário do bucket para Propriedade de objeto, como proprietário do bucket, você tem a propriedade e o controle total sobre novos objetos que outras contas gravam em seu bucket com a ACL bucket-owner-full-control
pré-configurada. Porém, se outras contas gravarem objetos em seu bucket sem a ACL bucket-owner-full-control
pré-configurada, o gravador de objetos manterá o acesso de controle total. Como proprietário do bucket, você pode implementar uma política de bucket que permita gravações somente se especificarem a ACL bucket-owner-full-control
pré-configurada.
nota
Caso tenha ACLs desabilitadas com a configuração Imposto pelo proprietário do bucket, como proprietário do bucket, você automaticamente terá propriedade e controle total sobre todos os objetos do bucket. Não é necessário usar esta seção para atualizar sua política de bucket a fim de aplicar a propriedade do objeto para o proprietário do bucket.
A política de bucket a seguir especifica que a conta
pode fazer upload de objetos 111122223333
somente quando a ACL do objeto estiver definida como DOC-EXAMPLE-BUCKET
bucket-owner-full-control
. Substitua
por uma conta real e 111122223333
pelo nome de seu bucket.DOC-EXAMPLE-BUCKET
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
Only allow writes to my bucket with bucket owner full control
", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333
:user/ExampleUser
" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
Veja a seguir um exemplo de operação de cópia que inclui a ACL pré-configurada bucket-owner-full-control
usando a AWS Command Line Interface (AWS CLI).
aws s3 cp
file.txt
s3://DOC-EXAMPLE-BUCKET
--acl bucket-owner-full-control
Depois que a política de bucket entrar em vigor, se o cliente não incluir a ACL pré-configurada bucket-owner-full-control
, a operação falhará, e quem carregar receberá o seguinte erro:
An error occurred (AccessDenied) when calling the PutObject operation: Access Denied (Ocorreu um erro (AccessDenied) ao chamar a operação PutObject: acesso negado
.
nota
Se os clientes precisarem de acesso a objetos após o upload, será necessário conceder permissões adicionais à conta de upload. Para obter informações sobre como conceder a contas acesso aos seus recursos, consulte Demonstrações que usam políticas para gerenciar o acesso a recursos do Amazon S3.