View a markdown version of this page

Risoluzione dei problemi - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi

Quando esegui l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto S3, le liste di controllo degli accessi (ACL) vengono disabilitate e tu, in qualità di proprietario del bucket, possiedi automaticamente tutti gli oggetti nel bucket. Le ACL non influiscono più sulle autorizzazioni per gli oggetti nel bucket. Puoi utilizzare le policy per concedere autorizzazioni. Tutte le richieste PUT S3 devono specificare l'ACL predefinita bucket-owner-full-control o non specificare una ACL; in caso contrario non andranno a buon fine. Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

Se viene specificato un'ACL non valida o le autorizzazioni ACL del bucket garantiscono l'accesso al di fuori del tuo Account AWS, potrebbero essere visualizzate le seguenti risposte di errore.

AccessControlListNotSupported

Dopo aver applicato l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto, le ACL vengono disabilitate. Le richieste di impostazione degli ACL o di aggiornamento degli ACL hanno esito negativo e restituiscono il codice AccessControlListNotSupporteddi errore. 400 Le richieste di lettura delle ACL sono ancora supportate. Le richieste di lettura delle ACL restituiscono sempre una risposta che mostra il pieno controllo per il proprietario del bucket. Nelle operazioni PUT è necessario specificare le ACL di controllo completo del proprietario del bucket o non specificare un'ACL. Altrimenti, le tue operazioni PUT falliranno.

Il put-object AWS CLI comando di esempio seguente include l'public-readACL predefinito.

aws s3api put-object --bucket amzn-s3-demo-bucket --key object-key-name --body doc-example-body --acl public-read

Se il bucket utilizza l'impostazione Proprietario del bucket applicato per disabilitare le ACL, questa operazione non va a buon fine e l'uploader riceve il seguente messaggio di errore:

Si è verificato un errore (AccessControlListNotSupported) durante la chiamata dell'PutObject operazione: il bucket non consente gli ACL

InvalidBucketAclWithObjectOwnership

Se desideri applicare l'impostazione Proprietario del bucket applicato per disabilitare le ACL, l'ACL bucket dovrà fornire il controllo completo solo al proprietario del bucket. L'ACL del bucket non può consentire l'accesso a un gruppo esterno Account AWS o a qualsiasi altro gruppo. Ad esempio, se la tua CreateBucket richiesta imposta Bucket owner enforced e specifica un bucket ACL che fornisce l'accesso a un bucket ACL che fornisce l'accesso a un file esterno Account AWS, la richiesta ha esito negativo e restituisce il codice di errore. 400 InvalidBucketAclWithObjectOwnership Allo stesso modo, se la tua richiesta PutBucketOwnershipControls imposta il proprietario del bucket applicato su un bucket con un ACL di bucket che concede autorizzazioni ad altri, la richiesta avrà esito negativo.

Esempio: l'ACL del bucket esistente concede l'accesso pubblico in lettura

Ad esempio, se un ACL bucket esistente concede l'accesso pubblico in lettura, non potrai applicare l'impostazione Proprietario del bucket applicato per Proprietà dell'oggetto finché queste autorizzazioni ACL non vengono migrate a una policy del bucket e l'ACL bucket non viene ripristinata sull'ACL privata di default. Per ulteriori informazioni, consulta Prerequisiti per la disabilitazione delle ACL.

Questo esempio di ACL di bucket concede l'accesso pubblico in lettura:

{ "Owner": { "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }

Il put-bucket-ownership-controls AWS CLI comando di esempio seguente applica l'impostazione Bucket owner enforced per Object Ownership:

aws s3api put-bucket-ownership-controls --bucket amzn-s3-demo-bucket --ownership-controls Rules=[{ObjectOwnership=BucketOwnerEnforced}]

Poiché l'ACL del bucket consente l'accesso pubblico in lettura, la richiesta sarà respinta e restituirà il seguente codice di errore:

Si è verificato un errore (InvalidBucketAclWithObjectOwnership) durante la chiamata dell' PutBucketOwnershipControls operazione: Bucket non può avere ACL impostati con l'impostazione ObjectOwnership BucketOwnerEnforced