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 aplicada pelo proprietário do bucket para S3 Object Ownership. 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. Você pode 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ço (SCPs) do AWS Organizations, conforme descrito na próxima seção.

Para aplicar a propriedade do objeto para novos objetos sem desabilitar ACLs, aplique a configuração preferencial do proprietário do bucket. Quando você aplica essa configuração, recomendamos enfaticamente atualizar a política de bucket para exigir a ACL bucket-owner-full-control pré-configurada para todas as solicitações PUT para seu bucket. Os clientes também devem ser atualizados para enviar a ACL bucket-owner-full-control pré-configurada de outras contas para seu 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 uma função do IAM específica, a menos que a configuração aplicada pelo proprietário do bucket seja aplicada a Object Ownership. 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 aplicada pelo proprietário do bucket para Object Ownership 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 Object Ownership, 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 aplicada pelo proprietário do bucket, como proprietário do bucket, você automaticamente terá propriedade e controle total sobre todos os objetos de seu 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 padrão 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 padrão bucket-owner-full-control, a operação falhará, e quem realizar o carregamento 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.