Panoramica delle liste di controllo accessi (ACL)
Le liste di controllo accessi (ACL) di Amazon S3 permettono di gestire l'accesso ai bucket e agli oggetti. A ogni bucket e oggetto è associata una ACL come sottorisorsa. Essa definisce a quali Account AWS o gruppi è garantito l'accesso e il tipo di accesso. Quando viene ricevuta una richiesta relativa a una risorsa, Amazon S3 controlla la lista ACL corrispondente per verificare che il richiedente disponga delle autorizzazioni di accesso necessarie.
S3 Proprietà dell'oggetto è un'impostazione a livello di bucket Amazon S3 che è possibile utilizzare per controllare la proprietà degli oggetti caricati nel bucket e per disabilitare o abilitare le liste di controllo degli accessi (ACL). Per impostazione predefinita, Proprietà dell'oggetto è impostata su Proprietario del bucket applicato e tutte le ACL sono disabilitate. Quando le ACL sono disabilitate, il proprietario del bucket dispone di tutti gli oggetti nel bucket e gestisce l'accesso ad essi in maniera esclusiva utilizzando policy di gestione dell'accesso.
La maggior parte degli attuali casi d'uso in Amazon S3 non richiede più l'uso delle ACL. È consigliabile mantenere le ACL disabilitate, tranne nelle circostanze in cui è necessario controllare individualmente l'accesso per ciascun oggetto. Con le ACL disabilitate, puoi utilizzare le policy per controllare l'accesso a tutti gli oggetti nel bucket, a prescindere da chi ha caricato gli oggetti nel bucket. Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.
Importante
Se il bucket utilizza l'impostazione proprietario del bucket applicato per S3 Object Ownership, è necessario utilizzare le policy per concedere l'accesso al bucket e agli oggetti in esso contenuti. Con l'impostazione Proprietario del bucket applicato abilitata, le richieste per impostare liste di controllo degli accessi (ACL) e aggiornare le ACL non vanno a buon fine e restituiscono il codice di errore AccessControlListNotSupported
. Le richieste di lettura delle ACL sono ancora supportate.
Quando crei un bucket o un oggetto, Amazon S3 crea una lista ACL predefinita che concede al proprietario della risorsa il controllo completo su di essa. Questa situazione è illustrata nella seguente ACL del bucket di esempio (l'oggetto ACL predefinito ha la medesima struttura):
<?xml version="1.0" encoding="UTF-8"?> <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>*** Owner-Canonical-User-ID ***</ID> <DisplayName>owner-display-name</DisplayName> </Owner> <AccessControlList> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Canonical User"> <ID>*** Owner-Canonical-User-ID ***</ID> <DisplayName>display-name</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> </AccessControlList> </AccessControlPolicy>
L'ACL di esempio include un elemento Owner
che identifica il proprietario tramite l'ID utente canonico dell'Account AWS. Per istruzioni sulla ricerca dell'ID utente canonico, consulta Ricerca di un ID utente canonico di un Account AWS. L'elemento Grant
identifica l'assegnatario (un Account AWS o un gruppo predefinito) e l'autorizzazione concessa. Questa ACL predefinita possiede un elemento Grant
per il proprietario. Per concedere le autorizzazioni aggiungere elementi Grant
; ognuno di questi elementi identifica l'assegnatario e l'autorizzazione.
Nota
Un ACL può avere fino a 100 di questi elementi.
Argomenti
Che cosa si intende per assegnatario?
Un assegnatario può essere un Account AWS o uno dei gruppi Amazon S3 predefiniti. Per concedere un'autorizzazione a un Account AWS, si utilizza l'indirizzo e-mail o l'ID utente canonico. Se tuttavia specifichi un indirizzo e-mail nella richiesta di concessione, Amazon S3 recupera l'ID utente canonico di tale account e lo aggiunge alla lista ACL. Le ACL risultanti contengono sempre l'ID utente canonico dell'Account AWS e non l'indirizzo e-mail dell'Account AWS.
Quando si concedono i diritti di accesso, si specifica ogni assegnatario come coppia
in cui type
="value
"
è uno dei seguenti:type
id
: se il valore specificato è l'ID utente canonico di un Account AWSuri
: ee si concedono autorizzazioni a un gruppo predefinitoemailAddress
: se il valore specificato è l'indirizzo e-mail di un Account AWS
Importante
L'utilizzo di indirizzi e-mail per specificare un assegnatario è supportato soltanto nelle seguenti Regioni AWS:
-
Stati Uniti orientali (Virginia settentrionale)
-
Stati Uniti occidentali (California settentrionale)
-
Stati Uniti occidentali (Oregon)
-
Asia Pacifico (Singapore)
-
Asia Pacifico (Sydney)
-
Asia Pacifico (Tokyo)
-
Europa (Irlanda)
-
Sud America (San Paolo)
Per un elenco di tutti gli endpoint e le regioni Amazon S3 supportati, consultare Regioni ed endpoint in Riferimenti generali di Amazon Web Services.
Esempio: indirizzo e-mail
Ad esempio, l'intestazione x-amz-grant-read
seguente concede agli Account AWS identificati dagli indirizzi e-mail le autorizzazioni per leggere i dati degli oggetti e i relativi metadati:
x-amz-grant-read: emailAddress="xyz@example.com", emailAddress="abc@example.com"
avvertimento
Quando concedi l'accesso alle tue risorse ad altri Account AWS, tieni presente che tutti gli Account AWS possono delegare le autorizzazioni agli utenti sotto i loro account. Questa operazione è nota con il nome di accesso multiaccount. Per informazioni sull'utilizzo dell'accesso multiaccount, consulta Creazione di un ruolo per delegare le autorizzazioni a un utente IAM nella Guida per l'utente di IAM.
Ricerca di un ID utente canonico di un Account AWS
L'ID utente canonico è associato al tuo Account AWS. Questo ID è una stringa di caratteri lunga, ad esempio:
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
Per informazioni su come trovare l'ID utente canonico per l'account, consulta Ricerca dell'ID utente canonico per l'Account AWS.
Puoi inoltre cercare l'ID utente canonico di un Account AWS leggendo l'ACL di un bucket o di un oggetto per cui l'Account AWS dispone delle autorizzazioni di accesso. Quando si concedono autorizzazioni a un singolo Account AWS tramite una richiesta di concessione, una voce apposita viene aggiunta all'ACL con l'ID utente canonico dell'account.
Nota
Se rendi pubblico il bucket (non consigliato) qualsiasi utente non autenticato può caricare oggetti nel bucket. Questi utenti anonimi non dispongono di un Account AWS. Quando un utente anonimo carica un oggetto nel tuo bucket Amazon S3 aggiunge un ID utente canonico speciale (65a011a29cdf8ec533ec3d1ccaae921c
) in quanto proprietario dell'oggetto nell'ACL. Per ulteriori informazioni, consulta Proprietà di bucket e oggetti di Amazon S3.
Gruppi predefiniti di Amazon S3
Amazon S3 include un set di gruppi predefiniti. Quando si concede l'accesso a un gruppo a livello di account, viene specificato uno degli URI Amazon S3 anziché un ID utente canonico. Amazon S3 fornisce i seguenti gruppi predefiniti:
-
Gruppo Authenticated Users – Rappresentato da
http://acs.amazonaws.com/groups/global/AuthenticatedUsers
.Questo gruppo rappresenta tutti gli Account AWS. L'autorizzazione di accesso per questo gruppo consente a qualsiasi Account AWS di accedere alla risorsa. Tuttavia, tutte le richieste devono essere firmate (autenticate).
avvertimento
Quando si concede l'accesso al gruppo Utenti autenticati, qualsiasi utente autenticato AWS al mondo può accedere alla risorsa.
-
Gruppo All Users – Rappresentato da
http://acs.amazonaws.com/groups/global/AllUsers
.L'autorizzazione di accesso per questo gruppo consente a qualsiasi persona al mondo di accedere alla risorsa. Le richieste possono essere firmate (autenticate) o non firmate (anonime). Le richieste non firmate mancano dell'intestazione di autenticazione.
avvertimento
È vivamente consigliato non concedere mai al gruppo All Users autorizzazioni
WRITE
,WRITE_ACP
oFULL_CONTROL
. Ad esempio, mentre le autorizzazioniWRITE
non consentono ai non proprietari di sovrascrivere o eliminare oggetti esistenti, le autorizzazioniWRITE
consentono comunque a chiunque di memorizzare oggetti nel bucket, per i quali vengono fatturati. Per ulteriori dettagli su queste autorizzazioni, consulta la sezione Quali autorizzazioni è possibile concedere?. -
Gruppo Log Delivery – Rappresentato da
http://acs.amazonaws.com/groups/s3/LogDelivery
.L'autorizzazione
WRITE
per un bucket consente a questo gruppo di scriver log di credenziali d'accesso al server (consulta Registrazione delle richieste con registrazione dell'accesso al server) per il bucket.
Nota
Quando utilizzi le ACL, un assegnatario può essere un Account AWS o uno dei gruppi predefiniti di Amazon S3. Tuttavia, l'assegnatario non può essere un utente IAM. Per ulteriori informazioni sugli utenti AWS e sulle autorizzazioni in IAM, consulta Utilizzo di AWS Identity and Access Management.
Quali autorizzazioni è possibile concedere?
La seguente tabella elenca il set di autorizzazioni che Amazon S3 supporta in una lista ACL. L'insieme di autorizzazioni ACL è lo stesso per le ACL degli oggetti e dei bucket. Tuttavia, a seconda del contesto (bucket ACL o oggetto ACL), queste autorizzazioni si riferiscono a specifiche operazioni sui bucket o sugli oggetti. La tabella elenca le autorizzazioni e ne descrive il significato nel contesto degli oggetti e dei bucket.
Per ulteriori informazioni sulle autorizzazioni ACL nella console di Amazon S3, consulta Configurazione delle ACL.
Autorizzazioni ACL | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Autorizzazione | Concessione a livello di bucket | Concessione a livello di oggetto | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
READ |
Consente all'assegnatario di elencare gli oggetti del bucket | Consente all'assegnatario di leggere i dati dell'oggetto e i relativi metadata | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
WRITE |
Consente all'assegnatario di creare nuovi oggetti del bucket. Per i proprietari di bucket e oggetti di oggetti esistenti, consente anche di eliminare e sovrascrivere tali oggetti. | Non applicabile. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
READ_ACP |
Consente all'assegnatario di leggere l'ACL del bucket | Consente all'assegnatario di leggere l'ACL dell'oggetto | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
WRITE_ACP |
Consente all'assegnatario di scrivere l'ACL del bucket interessato | Consente all'assegnatario di scrivere l'ACL dell'oggetto interessato | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FULL_CONTROL |
Consente al beneficiario le autorizzazioni READ , WRITE , READ_ACP e WRITE_ACP sul bucket |
Consente al beneficiario le autorizzazioni READ , READ_ACP e WRITE_ACP sull'oggetto |
avvertimento
Prestare attenzione a concedere le autorizzazioni di accesso ai bucket e agli oggetti S3. Ad esempio, la concessione dell'accesso WRITE
a un bucket consente all'assegnatario di creare oggetti nel bucket. È vivamente consigliato di leggere tutta questa sezione Panoramica delle liste di controllo accessi (ACL) prima di concedere autorizzazioni.
Mappatura delle autorizzazioni ACL e delle autorizzazioni della policy di accesso
Come illustrato nella tabella precedente, un'ACL concede solo un insieme finito di autorizzazioni rispetto al numero di autorizzazioni che possono essere definite in una policy d'accesso predefinita (consulta Operazioni di Amazon S3). Ognuna di queste autorizzazioni permette di eseguire una o più operazioni di Amazon S3.
La seguente tabella mostra come ogni autorizzazione ACL è mappata sulle autorizzazioni corrispondenti della policy d'accesso predefinita. Come si può vedere, la policy di accesso predefinita concede un numero maggiore di autorizzazioni rispetto all'ACL. Le ACL possono essere utilizzate principalmente per concedere autorizzazioni di base di lettura/scrittura, analogamente alle autorizzazioni sul file system. Per ulteriori informazioni su quando utilizzare una lista ACL, consulta Linee guida per le policy di accesso.
Per ulteriori informazioni sulle autorizzazioni ACL nella console di Amazon S3, consulta Configurazione delle ACL.
Autorizzazione ACL | Autorizzazioni corrispondenti della policy d'accesso predefinita quando l'autorizzazione ACL viene concessa su un bucket | Autorizzazioni corrispondenti della policy d'accesso predefinita quando l'autorizzazione ACL viene concessa su un oggetto |
---|---|---|
READ |
s3:ListBucket , s3:ListBucketVersions e s3:ListBucketMultipartUploads |
s3:GetObject e s3:GetObjectVersion |
WRITE |
Il proprietario del bucket può creare, sovrascrivere ed eliminare qualsiasi oggetto nel bucket e il proprietario dell'oggetto ha Inoltre, quando l'assegnatario è il proprietario del bucket, la concessione dell'autorizzazione |
Non applicabile. |
READ_ACP |
s3:GetBucketAcl
|
s3:GetObjectAcl e s3:GetObjectVersionAcl |
WRITE_ACP |
s3:PutBucketAcl |
s3:PutObjectAcl e s3:PutObjectVersionAcl |
FULL_CONTROL |
Equivale alla concessione delle autorizzazioni ACL READ , WRITE , READ_ACP e WRITE_ACP . Di conseguenza, questa autorizzazione ACL è mappata su una combinazione delle autorizzazioni corrispondenti della policy d'accesso predefinita. |
Equivale alla concessione delle autorizzazioni ACL READ , READ_ACP e WRITE_ACP . Di conseguenza, questa autorizzazione ACL è mappata su una combinazione delle autorizzazioni corrispondenti della policy d'accesso predefinita. |
Chiavi di condizione
Quando si concedono autorizzazioni per le policy di accesso, è possibile utilizzare le chiavi di condizione per limitare il valore dell'ACL su un oggetto utilizzando una policy del bucket. Le chiavi di contesto riportate di seguito corrispondono alle ACL. È possibile utilizzare queste chiavi di contesto per richiedere l'utilizzo di un'ACL specifica in una richiesta:
s3:x-amz-grant-read
– Richiedere l'accesso in lettura.s3:x-amz-grant-write
– Richiedere l'accesso in scrittura.s3:x-amz-grant-read-acp
– Richiedere l'accesso in lettura alla lista ACL del bucket.s3:x-amz-grant-write-acp
‐ Richiedere l'accesso in scrittura alla lista ACL del bucket.s3:x-amz-grant-full-control
– Richiedere il controllo completo.s3:x-amz-acl
– Richiedere una lista ACL predefinita.
Per policy di esempio con intestazioni specifiche delle liste ACL, consulta Esempio 1: assegnazione di autorizzazione s3:PutObject con la condizione che richiede che il proprietario del bucket abbia il controllo completo. Per un elenco completo delle chiavi di condizione specifiche di Amazon S3, consulta Operazioni, risorse e chiavi di condizione per Amazon S3.
Valori aclRequired
per le richieste di Amazon S3
Per identificare le richieste Amazon S3 che richiedono le ACL per l'autorizzazione, puoi utilizzare il valore aclRequired
nei log degli accessi del server Amazon S3 oppure AWS CloudTrail. Il valore aclRequired
che appare nei log di accesso al server CloudTrail o Amazon S3 dipende dalle operazioni richiamate e da alcune informazioni sul richiedente, il proprietario dell'oggetto e il proprietario del bucket. Se non sono richiesti ACL, se stai impostando l'ACL predefinito bucket-owner-full-control
o se le richieste sono consentite dalla tua policy del bucket, la stringa di valore aclRequired
è "-
" nei log di accesso al server Amazon S3 ed è assente in CloudTrail.
Le tabelle seguenti elencano i valori aclRequired
previsti nei log di accesso al server CloudTrail o Amazon S3 per le varie operazioni dell'API Amazon S3. Puoi utilizzare queste informazioni per capire quali operazioni di Amazon S3 dipendono dagli ACL per l'autorizzazione. Nelle tabelle seguenti, A, B e C rappresentano i diversi account associati al richiedente, al proprietario dell'oggetto e al proprietario del bucket. Le voci con un asterisco (*) indicano uno degli account A, B o C.
Nota
Le operazioni PutObject
nella tabella seguente, se non diversamente specificato, indicano richieste che non impostano un ACL, a meno che l'ACL non sia un bucket-owner-full-control
ACL. Un valore nullo per aclRequired
indica che aclRequired
è assente nei log AWS CloudTrail.
Valori aclRequired per CloudTrail | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nome operazione | Richiedente | Proprietario dell'oggetto. | Proprietario del bucket | La politica dei bucket garantisce l'accesso | aclRequired value |
Motivo | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetObject |
A | A | A | Sì o No | null | Accesso allo stesso account | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | B | A | Sì o No | null | È stato imposto l'accesso allo stesso account con il proprietario del bucket | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | A | B | Sì | null | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | A | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | A | B | Sì | null | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | B | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | B | C | Sì | null | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | B | C | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PutObject |
A | Non applicabile | A | Sì o No | null | Accesso allo stesso account | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | Sì | null | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PutObject con un ACL (ad eccezione di bucket-owner-full-control ) |
* | Non applicabile | * | Sì o No | Sì | Richiesta di autorizzazioni ACL | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ListObjects |
A | Non applicabile | A | Sì o No | null | Accesso allo stesso account | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | Sì | null | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteObject |
A | Non applicabile | A | Sì o No | null | Accesso allo stesso account | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | Sì | null | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PutObjectAcl |
* | * | * | Sì o No | Sì | Richiesta di autorizzazioni ACL | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PutBucketAcl |
* | Non applicabile | * | Sì o No | Sì | Richiesta di autorizzazioni ACL |
Nota
Le operazioni REST.PUT.OBJECT
nella tabella seguente, se non diversamente specificato, indicano richieste che non impostano un ACL, a meno che l'ACL non sia un bucket-owner-full-control
ACL. Una stringa di valori aclRequired
di "-
" indica un valore nullo nei log di accesso al server Amazon S3.
Valori aclRequired per i log di accesso al server Amazon S3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nome operazione | Richiedente | Proprietario dell'oggetto. | Proprietario del bucket | La politica dei bucket garantisce l'accesso | aclRequired value |
Motivo | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REST.GET.OBJECT |
A | A | A | Sì o No | - | Accesso allo stesso account | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | B | A | Sì o No | - | È stato imposto l'accesso allo stesso account con il proprietario del bucket | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | A | B | Sì | - | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | A | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | B | B | Sì | - | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | B | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | B | C | Sì | - | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | B | C | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REST.PUT.OBJECT |
A | Non applicabile | A | Sì o No | - | Accesso allo stesso account | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | Sì | - | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REST.PUT.OBJECT con un ACL (ad eccezione di bucket-owner-full-control ) |
* | Non applicabile | * | Sì o No | Sì | Richiesta di autorizzazioni ACL | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REST.GET.BUCKET |
A | Non applicabile | A | Sì o No | - | Accesso allo stesso account | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | Sì | - | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REST.DELETE.OBJECT |
A | Non applicabile | A | Sì o No | - | Accesso allo stesso account | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | Sì | - | Accesso tra account a causa della politica tra account | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | Non applicabile | B | No | Sì | L'accesso tra account si basa su ACL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REST.PUT.ACL |
* | * | * | Sì o No | Sì | Richiesta di autorizzazioni ACL |
ACL di esempio
La seguente ACL di esempio su un bucket identifica il proprietario della risorsa e un insieme di concessioni. Il suo formato è la rappresentazione XML di una lista ACL in REST API di Amazon S3. Il proprietario del bucket ha il FULL_CONTROL
della risorsa. La lista ACL mostra inoltre come vengono concesse le autorizzazioni per una risorsa a due Account AWS, identificati dall'ID utente canonico, e a due gruppi predefiniti di Amazon S3, illustrati nella sezione precedente.
<?xml version="1.0" encoding="UTF-8"?> <AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>Owner-canonical-user-ID</ID> <DisplayName>display-name</DisplayName> </Owner> <AccessControlList> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"> <ID>Owner-canonical-user-ID</ID> <DisplayName>display-name</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"> <ID>user1-canonical-user-ID</ID> <DisplayName>display-name</DisplayName> </Grantee> <Permission>WRITE</Permission> </Grant> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"> <ID>user2-canonical-user-ID</ID> <DisplayName>display-name</DisplayName> </Grantee> <Permission>READ</Permission> </Grant> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI> </Grantee> <Permission>READ</Permission> </Grant> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"> <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> </Grantee> <Permission>WRITE</Permission> </Grant> </AccessControlList> </AccessControlPolicy>
ACL predefinita
Amazon S3 supporta un set di concessioni predefinite, dette liste ACL predefinite. Ogni ACL predefinita ha un insieme predefinito di assegnatari e autorizzazioni. La seguente tabella elenca l'insieme di ACL predefinite e le concessioni predefinite associate.
ACL predefinita | Si applica a | Autorizzazioni aggiunte a un'ACL |
---|---|---|
private |
Bucket e oggetto | Il proprietario ottiene il FULL_CONTROL . Nessun altro ha diritti di accesso (impostazione predefinita). |
public-read |
Bucket e oggetto | Il proprietario ottiene il FULL_CONTROL . Il gruppo AllUsers (consulta Che cosa si intende per assegnatario?) ottiene l'accesso READ . |
public-read-write |
Bucket e oggetto | Il proprietario ottiene il FULL_CONTROL . Il gruppo AllUsers ottiene l'accesso READ e WRITE . In genere la concessione di queste autorizzazioni su un bucket non è consigliata. |
aws-exec-read |
Bucket e oggetto | Il proprietario ottiene il FULL_CONTROL . Amazon EC2 ottiene l'accesso di tipo READ per la richiesta GET con cui ottenere un bundle Amazon Machine Image (AMI) da Amazon S3. |
authenticated-read |
Bucket e oggetto | Il proprietario ottiene il FULL_CONTROL . Il gruppo AuthenticatedUsers ottiene l'accesso READ . |
bucket-owner-read |
Oggetto | Il proprietario dell'oggetto ottiene il FULL_CONTROL . Il proprietario del bucket ottiene l'accesso READ . Se specifichi questa lista ACL predefinita durante la creazione di un bucket, Amazon S3 la ignora. |
bucket-owner-full-control |
Oggetto | Sia il proprietario dell'oggetto che il proprietario del bucket ottengono il FULL_CONTROL dell'oggetto. Se specifichi questa lista ACL predefinita durante la creazione di un bucket, Amazon S3 la ignora. |
log-delivery-write |
Bucket | Il gruppo LogDelivery ottiene le autorizzazioni WRITE e READ_ACP sul bucket. Per ulteriori informazioni sui log, consulta (Registrazione delle richieste con registrazione dell'accesso al server). |
Nota
È possibile specificare solo una di queste ACL predefinite nella richiesta.
Per specificare un'ACL predefinita nella richiesta si utilizza l'intestazione di richiesta x-amz-acl
. Quando Amazon S3 riceve una richiesta contenente una lista ACL predefinita, aggiunge le concessioni predefinite alla lista ACL della risorsa.