Disabilitare le ACL per tutti i nuovi bucket e applicare Object Ownership - Amazon Simple Storage Service

Disabilitare le ACL per tutti i nuovi bucket e applicare Object Ownership

Ti consigliamo di disabilitare le ACL sui bucket Amazon S3. È possibile farlo applicando l'impostazione Proprietario del bucket applicato per S3 Proprietà dell'oggetto. Una volta applicata questa impostazione, le ACL verranno disabilitate e si possiederanno automaticamente e si avrà il pieno controllo su tutti gli oggetti del bucket. È possibile richiedere che tutti i nuovi bucket vengano creati con ACL disabilitate utilizzando le policy AWS Identity and Access Management (IAM) o le policy di controllo dei servizi (SCP) AWS Organizations, come descritto nella sezione successiva.

Per applicare la proprietà degli oggetti per i nuovi oggetti senza disabilitare le ACL, è possibile eseguire l'impostazione proprietario del bucket preferito. Una volta applicata questa impostazione, si consiglia fortemente di aggiornare la policy del bucket per richiedere l'ACL predefinitabucket-owner-full-control   per tutte le richieste PUT sul tuo bucket. I client devono anch'essi essere aggiornati per inviare l'ACL predefinita bucket-owner-full-control al tuo bucket da altri account.

Disabilitazione degli ACL per tutti i nuovi bucket (proprietario del bucket applicato)

La seguente policy IAM di esempio nega l'autorizzazione s3:CreateBucket per un utente IAM o un ruolo specifico a meno che non venga applicata l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto. La coppia chiave-valore nel blocco di Condition specifica s3:x-amz-object-ownership come chiave e l'impostazione BucketOwnerEnforced come valore corrispondente. In altre parole, l'utente IAM può creare bucket solo se imposta Proprietario del bucket applicato per Proprietà dell'oggetto e disabilita le ACL. Puoi anche utilizzare questa policy come SCP limite per la tua organizzazione AWS.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RequireBucketOwnerFullControl", "Action": "s3:CreateBucket", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals": { "s3:x-amz-object-ownership": "BucketOwnerEnforced" } } } ] }

Richiedere l'ACL predefinita con controllo completo del proprietario del bucket per le operazioni PUT di Amazon S3 (proprietario del bucket preferito)

Con l'impostazione proprietario del bucket preferito per Object Ownership, in qualità di proprietario del bucket possiedi e hai il pieno controllo sui nuovi oggetti che gli altri account scrivono sul tuo bucket con l'ACL predefinita bucket-owner-full-control. Tuttavia, se altri account scrivono oggetti nel tuo bucket senza l'ACL predefinita bucket-owner-full-control, l'object writer mantiene il pieno controllo degli accessi. In qualità di proprietario del bucket, è possibile implementare una policy del bucket che consenta la scrittura solo se si specifica l'ACL predefinita bucket-owner-full-control.

Nota

Se le ACL sono disabilitate con l'impostazione Proprietario del bucket applicato, in qualità di proprietario del bucket possiedi automaticamente e hai il controllo completo di tutti gli oggetti del bucket. Non è necessario utilizzare questa sezione per aggiornare la policy del bucket per applicare la proprietà degli oggetti per il proprietario del bucket.

La seguente policy del bucket specifica che l'account 111122223333 può caricare oggetti amzn-s3-demo-bucket solo quando l'ACL dell'oggetto è impostata su bucket-owner-full-control. Assicurati di sostituire 111122223333 con un account reale e amzn-s3-demo-bucket con il nome del tuo bucket.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "OnlyAllowWritesToMyBucketWithBucketOwnerFullControl", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/ExampleUser" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }

Di seguito è riportata un'operazione di copia di esempio che include l'ACL bucket-owner-full-control predefinito utilizzando AWS Command Line Interface (AWS CLI).

aws s3 cp file.txt s3://amzn-s3-demo-bucket --acl bucket-owner-full-control

Dopo che la policy del bucket è diventata efficace, se il client non include l'ACL predefinita bucket-owner-full-control, l'operazione non riuscirà e l'uploader riceverà il seguente errore:

Si è verificato un errore (AccessDenied) durante la chiamata all'operazione PutObject: Accesso negato.

Nota

Se i client hanno bisogno di accedere agli oggetti dopo il caricamento, sarà necessario concedere autorizzazioni aggiuntive per l'account di caricamento. Per informazioni sulla concessione agli account dell'accesso alle risorse, consulta la sezione Passaggi che utilizzano le policy per gestire l'accesso alle risorse Amazon S3.