Desabilitar ACLs de todos os novos buckets e aplicar Object Ownership - Amazon Simple Storage Service

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.

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 111122223333 pode fazer upload de objetos DOC-EXAMPLE-BUCKET somente quando a ACL do objeto estiver definida como bucket-owner-full-control. Substitua 111122223333 por uma conta real e DOC-EXAMPLE-BUCKET pelo nome de seu 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 de exemplo: gerenciar o acesso aos recursos do Amazon S3.