Questa pagina descrive come controllare l'accesso a bucket e oggetti utilizzando gli elenchi di controllo di accesso (ACL). Gli ACL sono un meccanismo che puoi utilizzare per definire chi ha accesso ai tuoi bucket e ai tuoi oggetti, nonché il livello di accesso avere.
Consulta la panoramica sugli ACL per scoprire se è opportuno utilizzare gli ACL per per controllare l'accesso alle tue risorse.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare e gestire gli ACL, chiedi al tuo
che ti concede il ruolo Amministratore Storage
(roles/storage.admin
) ruolo IAM nel bucket
contiene gli oggetti per i quali vuoi creare e gestire gli ACL.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e gestire ACL. Per vedere con esattezza le autorizzazioni necessarie, espandi la sezione Sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
storage.buckets.get
storage.buckets.list
- Questa autorizzazione è richiesta solo per utilizzare la console Google Cloud per eseguire le attività in questa pagina.
storage.buckets.setIamPolicy
storage.buckets.update
storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
Puoi ottenere queste autorizzazioni anche con i ruoli personalizzati.
Per informazioni sulla concessione dei ruoli nei bucket, consulta Utilizzare IAM con i bucket.
Impostare o modificare gli ACL
Console
Vai al browser di Cloud Storage nella console Google Cloud.
Vai al browser di Cloud StorageNell'elenco dei bucket, fai clic sul nome del bucket che contiene l'oggetto di cui vuoi modificare l'ACL.
Fai clic sul nome dell'oggetto per cui vuoi impostare o modificare gli ACL.
Fai clic su Modifica accesso.
Si apre una finestra di dialogo delle autorizzazioni con l'ACL corrente dell'oggetto.
Fai clic su + Aggiungi voce.
Scegli il tipo di entità a cui concedere l'autorizzazione.
L'entità specifica il tipo di elemento che riceve l'autorizzazione. (ad esempio, un utente o un gruppo). Fai riferimento ad Ambiti di controllo dell'accesso. per un elenco dei valori supportati per Entità.
Inserisci un valore in Nome.
Nome identifica un utente, un gruppo o un altro tipo di entità specifico. Invita a Ambiti di controllo dell'accesso per un elenco dei valori supportati per Nome.
Insieme, Entità e Nome definiscono a chi si applica l'autorizzazione.
Scegli un valore in Accesso.
Accesso definisce l'autorizzazione da impostare per l'oggetto. Fai riferimento alle Autorizzazioni di controllo dell'accesso per un elenco dei valori supportati. per Accesso.
Fai clic su Salva.
Scopri come ottenere informazioni dettagliate sugli errori di Cloud Storage non riusciti nella console Google Cloud, vedi Risoluzione dei problemi.
Riga di comando
Per aggiungere, modificare o rimuovere una singola concessione su un oggetto, utilizza la
Comando objects update
con il flag pertinente:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME FLAG
Dove:
BUCKET_NAME
è il nome del bucket contiene l'oggetto a cui si applica la modifica. Ad esempio:example-travel-maps
.OBJECT_NAME
è il nome dell'oggetto che a cui si applica la modifica. Ad esempio,paris.jpg
.FLAG
corrisponde a uno dei seguenti:--add-acl-grant
, insieme alla concessione che vuoi aggiungere o modificare. Ad esempio:--add-acl-grant=entity=user-jane@gmail.com,role=READER
.--remove-acl-grant
, insieme all'entità di cui hai accesso da rimuovere. Ad esempio:--remove-acl-grant=user-jane@gmail.com
.
Per sostituire tutti gli ACL per un oggetto:
Definisci gli ACL in un file in formato JSON o YAML.
Utilizza il comando
objects update
con il flag--acl-file
:gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --acl-file=FILE_LOCATION
Dove:
BUCKET_NAME
è il nome del bucket contiene l'oggetto a cui si applicano gli ACL. Ad esempio:example-travel-maps
.OBJECT_NAME
è il nome dell'oggetto che a cui si applicano gli ACL. Ad esempio,paris.jpg
.FILE_LOCATION
è il percorso locale contenente gli ACL che hai definito. Ad esempio:Desktop/acls.json
.
Di seguito è riportato il contenuto di un file ACL di esempio. Questi ACL concedono
i proprietari del progetto 867489160491
e l'utente jane@gmail.com
OWNER
per l'oggetto paris.jpg
e concede i membri
dell'autorizzazione READER
del gruppo gs-announce
per questo oggetto:
[ { "entity": "project-owners-867489160491", "role": "OWNER", "projectTeam": { "projectNumber": "867489160491", "team": "owners" }, }, { "entity": "user-jane@gmail.com", "email": "jane@gmail.com", "role": "OWNER" }, { "entity": "group-gs-announce@googlegroups.com", "email": "gs-announce@googlegroups.com", "role": "READER" } ]
Librerie client
C++
Per ulteriori informazioni, consulta API Cloud Storage C++ documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL a un oggetto:
L'esempio seguente rimuove un ACL da un oggetto:
C#
Per ulteriori informazioni, consulta API Cloud Storage C# documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL a un oggetto:
L'esempio seguente rimuove un ACL da un oggetto:
Go
Per ulteriori informazioni, consulta API Cloud Storage Go documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL a un oggetto:
L'esempio seguente rimuove un ACL da un oggetto:
Java
Per ulteriori informazioni, consulta API Cloud Storage Java documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL a un oggetto:
L'esempio seguente rimuove un ACL da un oggetto:
Node.js
Per ulteriori informazioni, consulta API Cloud Storage Node.js documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL a un oggetto:
L'esempio seguente rimuove un ACL da un oggetto:
PHP
Per ulteriori informazioni, consulta API Cloud Storage PHP documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL a un oggetto:
L'esempio seguente rimuove un ACL da un oggetto:
Python
Per ulteriori informazioni, consulta API Cloud Storage Python documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL a un oggetto:
L'esempio seguente rimuove un ACL da un oggetto:
Ruby
Per ulteriori informazioni, consulta API Cloud Storage Ruby documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL a un oggetto:
L'esempio seguente rimuove un ACL da un oggetto:
API REST
API JSON
Quando crei un oggetto, puoi specificare la proprietà acl[]
in
il corpo della richiesta o il parametro di query predefinedAcl
in un parametro insert
richiesta. Per un oggetto esistente, specifica la proprietà acl[]
o la proprietà
Parametro di query predefinedAcl
in una richiesta patch o update.
Per la definizione della proprietà ACL dell'oggetto, consulta
ObjectAccessControls
.
Definisci gli ACL in un file JSON.
Ad esempio, se l'ACL concede i proprietari del progetto
867489160491
e l'autorizzazionejane@gmail.com
OWNER
dell'utente, insieme a per aver concesso ai membri dell'autorizzazioneREADER
del gruppogs-announce
, potresti avere un file denominatoacls.json
con il seguente codice contenuti:{ "acl": [ { "entity": "project-owners-867489160491", "role": "OWNER", "projectTeam": { "projectNumber": "867489160491", "team": "owners" } }, { "entity": "user-jane@gmail.com", "role": "OWNER", "email": "jane@gmail.com" }, { "entity": "group-gs-announce@googlegroups.com", "role": "READER", "email": "gs-announce@googlegroups.com" } ] }
Invia una richiesta patch con il file JSON e specifica l'oggetto da per impostare gli ACL.
Ad esempio, il seguente comando cURL applica un payload JSON dal
documento acls.json
in un oggetto denominato paris.jpg
nel bucket
example-travel-maps
:
curl -X PATCH --data @acls.json -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg
API XML
Nell'API XML, puoi utilizzare gli ACL in formato XML. Devi allegare un Documento XML nel corpo delle richieste di modifica degli ACL di bucket e oggetti. Quando ottieni gli ACL di bucket e oggetti, viene restituito un documento XML. Il file XML che contiene le singole voci ACL del bucket o dell'oggetto.
Dopo aver creato un bucket con una richiesta
PUT
Bucket, utilizza una seconda Richiesta PUT di bucket con il parametro?acl
per modificare l'ACL del bucket.Dopo aver caricato un oggetto con una richiesta Oggetto
PUT
, modifica l'ACL con un'altra richiesta PUT utilizzando il parametro?acl
o l'intestazione della richiestax-googl-acl
.
Ad esempio, il seguente comando cURL applica un payload XML dalla
documento acls.xml
in un oggetto denominato paris.jpg
nel bucket
example-travel-maps
:
curl -X PUT --data-binary @acls.xml \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/example-travel-maps/paris.jpg?acl
Utilizza la seguente sintassi ACL per il documento XML:
Elemento | Descrizione |
---|---|
AccessControlList |
Contenitore per gli elementi Entries e Owner . |
Owner |
Contenitore per gli elementi DisplayName e ID . Questo elemento non è obbligatorio per gli oggetti, poiché un oggetto è sempre di proprietà dell'utente che lo ha caricato. Questo elemento viene utilizzato quando utilizzi la sintassi ACL di Amazon S3 in uno scenario di migrazione. Amazon Simple Storage Service e Amazon S3 sono marchi di Amazon.com, Inc. o delle sue società consociate negli Stati Uniti e/o in altri paesi. |
ID |
ID Google Cloud Storage del proprietario del bucket. |
DisplayName |
Non implementata al momento. Il valore è sempre una stringa vuota. |
Entries |
Contenitore per zero o più elementi Entry . |
Entry |
Contenitore per gli elementi Scope e Permission . Un elemento Entry deve contenere solo un elemento Scope e un elemento Permission . |
Scope |
Contenitore per un elemento ID , EmailAddress o Domain che definisce l'ambito ACL. Questo elemento deve avere un attributo type che contiene uno dei seguenti valori: UserByID , UserByEmail , GroupByID , GroupByEmail , GroupByDomain , AllUsers o AllAuthenticatedUsers . |
ID |
Un identificatore del beneficiario quando la voce dell'autorizzazione è specificata dall'ID. |
EmailAddress |
L'identificatore email del beneficiario quando la voce dell'autorizzazione viene specificata via email. |
Domain |
L'identificatore di dominio del beneficiario quando la voce di autorizzazione viene specificata dal dominio. |
Name |
Elemento facoltativo che può essere specificato o che può essere aggiunto automaticamente se l'ambito è UserByEmail o GroupByEmail . |
Permission |
L'autorizzazione concessa a READ , WRITE o FULL_CONTROL . |
Quando si utilizzano gli ACL utilizzando l'API XML:
- Puoi utilizzare solo il formato XML descritto sopra.
Non puoi impostare ambiti duplicati.
Il tuo XML ACL può contenere molte voci, ma non le voci con ambiti duplicati. Ad esempio, non puoi avere due voci con lo stesso elemento di ambito di
jane@example.com
.
L'esempio seguente mostra diverse voci ACL di bucket:
<?xml version="1.0" encoding="UTF-8"?> <AccessControlList> <Owner> <ID>00b4903a9721...</ID> </Owner> <Entries> <Entry> <Scope type="GroupById"> <ID>00b4903a9722...</ID> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type="GroupByDomain"> <Domain>example.com</Domain> </Scope> <Permission>READ</Permission> </Entry> <Entry> <Scope type="GroupByEmail"> <EmailAddress>gs-announce@googlegroups.com</EmailAddress> </Scope> <Permission>READ</Permission> </Entry> <Entry> <Scope type="UserByEmail"> <EmailAddress>jane@gmail.com</EmailAddress> <Name>jane</Name> </Scope> <Permission>READ</Permission> </Entry> <Entry> <Scope type="AllUsers"/> <Permission>READ</Permission> </Entry> <Entry> <Scope type="AllAuthenticatedUsers"/> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Impostare l'elemento Name nel file XML ACL
Quando recuperi un ACL da un bucket o da un oggetto, potresti notare
<Name>
elemento aggiuntivo aggiunto ad alcune delle voci. Per
Ad esempio, potresti notare una voce simile alla seguente:
<Entry> <Scope type="UserByEmail"> <EmailAddress>jane@gmail.com</EmailAddress> <Name>Jane</Name> </Scope> <Permission>FULL_CONTROL</Permission> </Entry>
Questi elementi <Name>
facoltativi vengono completati in due circostanze:
Quando gli ACL del bucket o dell'oggetto includono
<Name>
come elemento.Quando imposti gli ACL, puoi scegliere di includere l'elemento
<Name>
con le tue voci ACL. Puoi specificare qualsiasi valore nell'elemento<Name>
e Cloud Storage conserva questi valori finché l'ACL non viene rimosso o sostituiti. Questo approccio può essere utile se utilizzi identificatori che non sono facilmente identificabili, come gli ID Google Cloud Storage.Quando un ambito
UserByEmail
oGroupByEmail
contiene un profilo Google pubblico.Se utilizzi uno di questi ambiti, ma non fornisci un valore
<Name>
Cloud Storage controlla se l'utente o il gruppo Google associato all'email ha un profilo Google pubblico con un nome pubblico. Se sì, Cloud Storage compila automaticamente l'elemento<Name>
con il nome pubblico.
Applica un ACL predefinito
Invece di specificare l'intera ACL una voce alla volta come illustrato sopra, puoi utilizzare un ACL predefinito, che applicherà automaticamente una serie di voci in base a uno specifico scenario. Puoi applicare un ACL predefinito a un un bucket o un oggetto utilizzando Google Cloud CLI, l'API JSON o l'API XML.
Su nuovi oggetti
Per applicare un ACL predefinito a un oggetto durante il caricamento:
Console
Non puoi applicare un ACL predefinito utilizzando la console Google Cloud. Utilizza le funzionalità di
gcloud storage
in alternativa.
Riga di comando
Utilizza il comando gcloud storage cp
con --predefined-acl
Segnala:
gcloud storage cp OBJECT gs://BUCKET_NAME --predefined-acl=PREDEFINED_ACL
Ad esempio, per applicare l'ACL predefinito bucketOwnerRead
mentre
Caricamento di un oggetto paris.jpg
nel bucket example-travel-maps
:
gcloud storage cp paris.jpg gs://example-travel-maps --predefined-acl=bucketOwnerRead
API REST
API JSON
Utilizzare il parametro della stringa di query predefinedAcl
in una richiesta insert per
e applicare l'ACL predefinito.
Ad esempio, per applicare l'ACL predefinito bucketOwnerRead
durante il caricamento
un oggetto paris.jpg
in un bucket example-travel-maps
:
curl -X POST --data-binary @paris.jpg -H "Content-Type: image/jpeg" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/upload/storage/v1/b/example-travel-maps/o?name=paris.jpg&predefinedAcl=bucketOwnerRead"
API XML
Utilizza l'intestazione x-goog-acl
in una richiesta Put Object per applicare il
predefinito.
Ad esempio, per applicare l'ACL predefinito bucket-owner-read
mentre
Caricamento di un oggetto paris.jpg
nel bucket example-travel-maps
:
curl -X PUT --upload-file paris.jpg -H "x-goog-acl: bucket-owner-read" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/example-travel-maps/paris.jpg
Su bucket o oggetti esistenti
Puoi anche applicare un ACL predefinito a un bucket o un oggetto esistente, utile se vuoi passare da un ACL predefinito a un altro per aggiornare gli ACL personalizzati con un ACL predefinito.
Console
Non puoi applicare un ACL predefinito utilizzando la console Google Cloud. Utilizza le funzionalità di
gcloud storage
in alternativa.
Riga di comando
Utilizza il comando objects update
con il flag --predefined-acl
:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --predefined-acl=PREDEFINED_ACL_NAME
Ad esempio, per applicare l'ACL predefinito private
all'oggetto
paris.jpg
nel bucket example-travel-maps
:
gcloud storage objects update gs://example-travel-maps/paris.jpg --predefined-acl=private
API REST
API JSON
Usa il parametro della stringa di query predefinedAcl
e specifica un campo acl
vuoto
in una richiesta patch per applicare l'ACL predefinito.
Ad esempio, per applicare l'ACL predefinito private
all'oggetto
paris.jpg
nel bucket example-travel-maps
:
curl -X PATCH --data '{"acl": []}' -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg?predefinedAcl=private
API XML
Utilizza l'intestazione x-goog-acl
con il parametro della stringa di query acl
in un
Inserisci oggetto, ma non includere un documento XML nella
richiesta.
Ad esempio, per applicare l'ACL predefinito private
all'oggetto
paris.jpg
nel bucket example-travel-maps
:
curl -X PUT -H "Content-Length: 0" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-acl: private" \ https://storage.googleapis.com/example-travel-maps/paris.jpg?acl
Imposta ACL degli oggetti predefiniti
Per evitare di impostare ACL ogni volta che crei un nuovo oggetto, puoi impostare un valore predefinito su un bucket. Dopodiché, ogni nuovo oggetto aggiunto al bucket a cui non è applicato esplicitamente un ACL sarà associato vengono applicate per impostazione predefinita. Ad esempio, potresti voler specificare che alcuni gruppi di utenti hanno accesso alla maggior parte degli oggetti di un determinato bucket. Tu modificare l'ACL degli oggetti predefiniti e quindi aggiungere oggetti al bucket. Questi agli oggetti aggiunti viene applicato automaticamente l'ACL predefinito che hai specificato them; tuttavia, puoi assegnare ACL diversi a oggetti specifici, nel qual caso agli oggetti non è applicato l'ACL predefinito.
Per visualizzare e modificare l'ACL predefinito degli oggetti per un bucket:
Console
Non puoi impostare ACL degli oggetti predefiniti utilizzando la console Google Cloud. Utilizza le funzionalità di
gcloud storage
in alternativa.
Riga di comando
Utilizza il comando
buckets describe
con il flag--format
per recupera l'ACL dell'oggetto predefinito per il bucket:gcloud storage buckets describe gs://BUCKET_NAME --format="default(default_acl)"
Dove
BUCKET_NAME
è il nome del bucket di cui vuoi visualizzare l'ACL predefinito dell'oggetto. Ad esempio,my-bucket
.Utilizza il comando
buckets update
con il flag desiderato per modifica l'ACL dell'oggetto predefinito per il bucket:gcloud storage buckets update gs://BUCKET_NAME FLAG
Dove:
BUCKET_NAME
è il nome del bucket di cui vuoi modificare l'ACL dell'oggetto predefinito. Ad esempio:my-bucket
.FLAG
corrisponde a uno dei seguenti:--add-default-object-acl-grant
e una concessione che vuoi concedere all'ACL complessivo degli oggetti predefiniti per il bucket.--default-object-acl-file
e il percorso di un file locale che definisce un nuovo ACL dell'oggetto predefinito per il bucket.--predefined-default-object-acl
e il nome di un oggetto l'ACL dell'oggetto che vuoi sostituire quello predefinito esistente l'ACL dell'oggetto per il bucket.--remove-default-object-acl-grant
e un'entità di cui tu da rimuovere dall'ACL predefinito degli oggetti per di sincronizzare la directory di una VM con un bucket.
Librerie client
C++
Per ulteriori informazioni, consulta API Cloud Storage C++ documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL degli oggetti predefinito a un bucket:
Nell'esempio seguente viene eliminato un ACL di oggetto predefinito da un bucket:
C#
Per ulteriori informazioni, consulta API Cloud Storage C# documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene stampato l'ACL degli oggetti predefinito per un bucket:
Nell'esempio seguente viene aggiunto un ACL degli oggetti predefinito a un bucket:
Nell'esempio seguente viene eliminato un ACL di oggetto predefinito da un bucket:
Go
Per ulteriori informazioni, consulta API Cloud Storage Go documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL degli oggetti predefinito a un bucket:
Nell'esempio seguente viene eliminato un ACL di oggetto predefinito da un bucket:
Java
Per ulteriori informazioni, consulta API Cloud Storage Java documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL degli oggetti predefinito a un bucket:
Nell'esempio seguente viene eliminato un ACL di oggetto predefinito da un bucket:
Node.js
Per ulteriori informazioni, consulta API Cloud Storage Node.js documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL degli oggetti predefinito a un bucket:
Nell'esempio seguente viene eliminato un ACL di oggetto predefinito da un bucket:
PHP
Per ulteriori informazioni, consulta API Cloud Storage PHP documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL degli oggetti predefinito a un bucket:
Nell'esempio seguente viene eliminato un ACL di oggetto predefinito da un bucket:
Python
Per ulteriori informazioni, consulta API Cloud Storage Python documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL degli oggetti predefinito a un bucket:
Nell'esempio seguente viene eliminato un ACL di oggetto predefinito da un bucket:
Ruby
Per ulteriori informazioni, consulta API Cloud Storage Ruby documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Nell'esempio seguente viene aggiunto un ACL degli oggetti predefinito a un bucket:
Nell'esempio seguente viene eliminato un ACL di oggetto predefinito da un bucket:
API REST
API JSON
Recupera l'ACL dell'oggetto predefinito con una richiesta GET. Ad esempio:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?projection=full
Utilizza una richiesta patch per sostituire l'ACL dell'oggetto predefinito. Per Ad esempio, la seguente richiesta sostituisce l'ACL dell'oggetto predefinito con l'ACL specificato in
defacls.json
per un bucketexample-travel-maps
:curl -X PATCH --data @defacls.json -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/example-travel-maps
Un esempio di
defacls.json
:{ "defaultObjectAcl": [ { "email": "jane@gmail.com", "entity": "user-jane@gmail.com", "role": "READER" } ] }
API XML
Recupera l'ACL degli oggetti predefinito con una richiesta
GET
limitata a del bucket e il parametro?defaultObjectAcl
. Ad esempio:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/BUCKET_NAME?defaultObjectAcl
Utilizza una richiesta
PUT
limitata al tuo bucket con le Parametro?defaultObjectAcl
per sostituire l'ACL dell'oggetto predefinito con l'ACL specificato inacls.xml
. Ad esempio:curl -X PUT --data-binary @acls.xml -H "Authorization: Bearer $(gcloud auth print-access-token)" \ http://storage.googleapis.com/BUCKET_NAME?defaultObjectAcl
Un esempio di
acls.xml
:<AccessControlList> <Entries> <Entry> <Permission>
FULL_CONTROL
</Permission> <Scope type="GroupByEmail"> <EmailAddress>travel-companions@googlegroups.com</EmailAddress> </Scope> </Entry> </Entries> </AccessControlList>
La sintassi degli ACL è illustrata nell'articolo Impostazione degli ACL. Puoi anche specificare un ACL predefinito come ACL degli oggetti predefinito.
Per impostare l'ACL predefinito degli oggetti per un bucket su un ACL predefinito:
Console
Non puoi impostare ACL degli oggetti predefiniti utilizzando la console Google Cloud. Utilizza le funzionalità di
gcloud storage
in alternativa.
Riga di comando
Utilizza il comando buckets update
con
Flag --predefined-default-object-acl
:
gcloud storage buckets update gs://BUCKET_NAME --predefined-default-object-acl=PREDEFINED_ACL
Dove:
BUCKET_NAME
è il nome del bucket di cui vuoi modificare l'ACL dell'oggetto predefinito. Ad esempio:my-bucket
.PREDEFINED_ACL
è il nome di un indirizzo predefinito. Ad esempio,projectPrivate
.
API REST
API JSON
Utilizza una richiesta PUT e il parametro predefinedAcl
.
Ad esempio:
curl -X PUT -H "Content-Length: 0" -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?predefinedAcl=private
API XML
Utilizza una richiesta PUT
limitata al tuo bucket con ?defaultObjectAcl
e l'intestazione x-goog-acl
.
Ad esempio:
curl -X PUT -H "x-goog-acl: project-private" -H "Content-Length: 0" -H "Authorization: Bearer $(gcloud auth print-access-token)" \ http://storage.googleapis.com/BUCKET_NAME?defaultObjectAcl
ACL predefiniti degli oggetti per i bucket appena creati:
Gli esempi seguenti mostrano gli ACL degli oggetti predefiniti che vengono applicati automaticamente alle nuovi bucket creati quando non specifichi i tuoi ACL degli oggetti predefiniti parte della richiesta. Per vedere se gli ACL degli oggetti predefiniti del bucket sono stati modificato, confronta gli ACL degli oggetti predefiniti attuali del tuo bucket con gli esempi di seguito.
Console
Non puoi utilizzare gli ACL degli oggetti predefiniti utilizzando la console Google Cloud.
Usa invece il criterio gcloud storage
.
Riga di comando
Nell'esempio riportato di seguito, l'ID progetto è "123412341234"; il tuo ID progetto saranno diversi.
defaultObjectAcl: – entity: project-owners-123412341234 etag: CAE= kind: storage#objectAccessControl projectTeam: projectNumber: '123412341234' team: owners role: OWNER – entity: project-editors-123412341234 etag: CAE= kind: storage#objectAccessControl projectTeam: projectNumber: '123412341234' team: editors role: OWNER – entity: project-viewers-123412341234 etag: CAE= kind: storage#objectAccessControl projectTeam: projectNumber: '123412341234' team: viewers role: READER
API REST
API JSON
Nell'esempio riportato di seguito, l'ID progetto è "123412341234"; il tuo ID progetto saranno diversi.
"defaultObjectAcl": [ { "kind": "storage#objectAccessControl", "entity": "project-owners-123412341234", "role": "OWNER", "projectTeam": { "projectNumber": "123412341234", "team": "owners" } }, { "kind": "storage#objectAccessControl", "entity": "project-editors-123412341234", "role": "OWNER", "projectTeam": { "projectNumber": "123412341234", "team": "editors" } }, { "kind": "storage#objectAccessControl", "entity": "project-viewers-123412341234", "role": "READER", "projectTeam": { "projectNumber": "123412341234", "team": "viewers" } } ]
API XML
Nell'esempio riportato di seguito, gli ID ruolo del progetto iniziano con "00b4903a97..."; gli ID progetto saranno diversi.
<?xml version='1.0' encoding='UTF-8'?> <AccessControlList> <Entries> <Entry> <Scope type='GroupById'> <ID>00b4903a9721...</ID> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type='GroupById'> <ID>00b4903a9722...</ID> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type='GroupById'> <ID>00b4903a9723...</ID> </Scope> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Tieni presente che l'ACL predefinito degli oggetti per un bucket appena creato equivale a
l'ACL projectPrivate
predefinito.
Recupero degli ACL
Per ottenere l'ACL di una risorsa esistente:
Console
Vai al browser di Cloud Storage nella console Google Cloud.
Vai al browser di Cloud StorageVai all'oggetto di cui vuoi visualizzare l'ACL.
Scegli Accesso in modifica dal menu a discesa dell'oggetto.
Dovresti visualizzare una finestra di dialogo delle autorizzazioni con le autorizzazioni dell'oggetto.
Scopri come ottenere informazioni dettagliate sugli errori di Cloud Storage non riusciti nella console Google Cloud, vedi Risoluzione dei problemi.
Riga di comando
Utilizza il comando
objects describe
con il flag--format
per recupera l'ACL di un oggetto:gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(acl)"
Dove:
BUCKET_NAME
è il nome del bucket contenente l'oggetto di cui vuoi visualizzare l'ACL. Ad esempio:my-bucket
.OBJECT_NAME
è il nome dell'oggetto di cui vuoi visualizzare l'ACL. Ad esempio,paris.jpg
.
Librerie client
C++
Per ulteriori informazioni, consulta API Cloud Storage C++ documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente restituisce un ACL degli oggetti:
C#
Per ulteriori informazioni, consulta API Cloud Storage C# documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente restituisce un ACL degli oggetti:
Go
Per ulteriori informazioni, consulta API Cloud Storage Go documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente restituisce un ACL degli oggetti:
Java
Per ulteriori informazioni, consulta API Cloud Storage Java documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente restituisce un ACL degli oggetti:
Node.js
Per ulteriori informazioni, consulta API Cloud Storage Node.js documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente restituisce un ACL degli oggetti:
PHP
Per ulteriori informazioni, consulta API Cloud Storage PHP documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente restituisce un ACL degli oggetti:
Python
Per ulteriori informazioni, consulta API Cloud Storage Python documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente restituisce un ACL degli oggetti:
Ruby
Per ulteriori informazioni, consulta API Cloud Storage Ruby documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente restituisce un ACL degli oggetti:
API REST
API JSON
Assicurati di disporre dell'autorizzazione
OWNER
per l'oggetto.Recupera l'ACL dell'oggetto con una richiesta
GET
.L'ACL dell'oggetto viene restituito in formato JSON, collegato al corpo del la risposta.
Ad esempio, per restituire l'ACL per l'oggetto paris.jpg
nel bucket
example-travel-maps
:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg?projection=full
Dovresti vedere una risposta simile alla seguente:
{ "kind": "storage#object", "id": "example-travel-maps/paris.jpg/1412805837131000", "selfLink": "https://www.googleapis.com/storage/v1/b/example-travel-maps/o/paris.jpg", "name": "paris.jpg", "bucket": "example-travel-maps", ... "acl": [ { ... "entity": "project-owners-867489160491", "role": "OWNER", "projectTeam": { "projectNumber": "867489160491", "team": "owners" }, ... }, { ... "entity": "user-jane@gmail.com", "role": "OWNER", "email": "jane@gmail.com", ... }, { ... "entity": "group-gs-announce@googlegroups.com", "role": "READER", "email": "gs-announce@googlegroups.com", ... } ], "owner": { "entity": "user-jane@gmail.com" }, ... }
Puoi anche utilizzare il metodo della risorsa objectAccessControls
GET
per
restituiscono le singole voci nell'ACL di un oggetto.
API XML
Assicurati di disporre dell'autorizzazione
FULL_CONTROL
per il bucket o l'oggetto.Recupera l'ACL del bucket o dell'oggetto utilizzando la stringa di query
acl
in una richiesta GET Object.
Gli ACL sono descritti in XML, allegati al corpo della risposta.
Ad esempio, per restituire l'ACL per l'oggetto paris.jpg
nel bucket
example-travel-maps
:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/example-travel-maps/paris.jpg?acl
Dovresti vedere una risposta simile alla seguente:
<?xml version="1.0" encoding="UTF-8"?> <AccessControlList> <Owner> <ID>84fac329bceSAMPLE777d5d22b8SAMPLE77d85ac2SAMPLE2dfcf7c4adf34da46</ID> <Name>Owner Name</Name> </Owner> <Entries> <Entry> <Scope type="UserById"> <ID>84fac329bceSAMPLE777d5d22b8SAMPLE77d85ac2SAMPLE2dfcf7c4adf34da46</ID> <Name>Name</Name> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type="UserByEmail"> <EmailAddress>jane@gmail.com</EmailAddress> <Name>Jane</Name> </Scope> <Permission>FULL_CONTROL</Permission> </Entry> <Entry> <Scope type="GroupByEmail"> <EmailAddress>gs-announce@googlegroups.com</EmailAddress> </Scope> <Permission>READ</Permission> </Entry> </Entries> </AccessControlList>
Puoi anche utilizzare il metodo GET
JSON del metodo ObjectAccessControls
per restituire una specifica voce ACL.
Passaggi successivi
- Scopri di più sugli ACL.
- Scopri come semplificare il controllo dell'accesso utilizzando l'accesso uniforme a livello di bucket.
- Scopri le best practice per l'utilizzo degli ACL.