Autorizzazioni IAM per i comandi gsutil

Nella tabella seguente sono elencate le autorizzazioni di Identity and Access Management (IAM) necessarie per eseguire ciascun comando gsutil di Cloud Storage su una determinata risorsa. Le autorizzazioni IAM sono raggruppate per creare ruoli. Puoi concedere ruoli a utenti e gruppi.

In questa pagina puoi anche trovare informazioni su:

Comando Sottocomando Risorsa in cui è possibile concedere il ruolo Autorizzazioni IAM richieste
autoclass get Bucket storage.buckets.get
autoclass set Bucket storage.buckets.update
cat Oggetti storage.objects.get
compose Oggetti storage.objects.get
storage.objects.create
storage.objects.delete1
config Nessun valore
cors get Bucket storage.buckets.get
cors set Bucket storage.buckets.update
cp Oggetti storage.objects.list2 (per il bucket di destinazione)
storage.objects.get (per gli oggetti di origine)
storage.objects.create (per il bucket di destinazione)
storage.objects.delete3 (per il bucket di destinazione)
defstorageclass get Bucket storage.buckets.get
defstorageclass set Bucket storage.buckets.update
du Oggetti storage.objects.get
hash Oggetti storage.objects.get
help Nessun valore
hmacKeys create Chiavi HMAC storage.hmacKeys.create
hmacKeys delete Chiavi HMAC storage.hmacKeys.delete
hmacKeys get Chiavi HMAC storage.hmacKeys.get
hmacKeys list Chiavi HMAC storage.hmacKeys.list
hmacKeys update Chiavi HMAC storage.hmacKeys.update
iam get Bucket storage.buckets.get
storage.buckets.getIamPolicy
iam set o ch Bucket storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
kms authorize Progetti resourceManager.projects.get
iam.serviceAccounts.create4
cloudkms.cryptoKeys.setIamPolicy (per la chiave Cloud KMS autorizzata)
kms encryption Bucket storage.buckets.get
kms encryption -d Bucket storage.buckets.get
storage.buckets.update
kms encryption -k Bucket, progetti5 storage.buckets.get
storage.buckets.update
resourceManager.projects.get5
cloudkms.cryptoKeys.setIamPolicy5
kms serviceaccount Progetti resourceManager.projects.get
label get Bucket storage.buckets.get
label set/ch Bucket storage.buckets.update
lifecycle get Bucket storage.buckets.get
lifecycle set/ch Bucket storage.buckets.update
logging get Bucket storage.buckets.get
logging set Bucket storage.buckets.update
ls Progetti storage.buckets.list
storage.buckets.getIamPolicy6
ls Bucket, oggetti storage.objects.list
storage.objects.getIamPolicy7
ls -b Bucket storage.buckets.get
storage.buckets.getIamPolicy6
mb Bucket storage.buckets.create
mv Oggetti storage.objects.list2 (per il bucket di destinazione)
storage.objects.get (per gli oggetti di origine)
storage.objects.create (per il bucket di destinazione)
storage.objects.delete (per il bucket di origine)
storage.objects.delete3 (per il bucket di destinazione)
notification create Bucket storage.buckets.update
pubsub.topics.get (per il progetto contenente l'argomento Pub/Sub)
pubsub.topics.create8 (per il progetto contenente l'argomento Pub/Sub)
pubsub.topics.getIamPolicy (per l'argomento Pub/Sub che riceve le notifiche)
pubsub.topics.setIamPolicy8 (per l'argomento Pub/Sub che riceve le notifiche)
notification create -s Bucket storage.buckets.update
notification delete Bucket storage.buckets.get
storage.buckets.update
notification list Bucket storage.buckets.get
notification watchbucket Bucket storage.buckets.update
notification stopchannel Bucket storage.buckets.update
pap get Bucket storage.buckets.get
pap set Bucket storage.buckets.get
storage.buckets.update
storage.buckets.setIamPolicy10
perfdiag Bucket storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb Bucket storage.buckets.delete
requesterpays get Bucket storage.buckets.get
requesterpays set on Bucket storage.buckets.update
requesterpays set off Bucket storage.buckets.update
resourcemanager.projects.createBillingAssignment9
retention clear, event-default, lock o set Bucket storage.buckets.update
retention event o temp Oggetti storage.objects.get
storage.objects.list
storage.objects.update
retention get Bucket storage.buckets.get
rewrite -k Oggetti storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
rewrite -s Oggetti storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
rm Bucket storage.buckets.delete
storage.objects.delete
storage.objects.list
rm Oggetti storage.objects.delete
storage.objects.list
rpo get Bucket storage.buckets.get
rpo set Bucket storage.buckets.get
storage.buckets.update
rsync Oggetti storage.objects.get (per gli oggetti di origine e il bucket di destinazione)
storage.objects.create (per il bucket di destinazione)
storage.objects.delete11 (per il bucket di destinazione)
storage.objects.list (per i bucket di origine e di destinazione)
rsync -n Oggetti storage.objects.list (per i bucket di origine e di destinazione)
setmeta Oggetti storage.objects.get
storage.objects.list
storage.objects.update
signurl Nessuna; tuttavia, l'account di servizio la cui chiave viene utilizzata come parte di questo comando deve disporre dell'autorizzazione per eseguire la richiesta di codifica nell'URL firmato.
stat Oggetti storage.objects.get
test Nessun valore
ubla set Bucket storage.buckets.get
storage.buckets.update
ubla get Bucket storage.buckets.get
update Nessun valore
version Nessun valore
versioning get Bucket storage.buckets.get
versioning set Bucket storage.buckets.update
web get Bucket storage.buckets.get
web set Bucket storage.buckets.update

1 Questa autorizzazione è richiesta solo se l'oggetto composto ha lo stesso nome di un oggetto già esistente nel bucket.

2 Questa autorizzazione è richiesta solo quando la destinazione nel comando contiene un percorso dell'oggetto.

3 Questa autorizzazione è richiesta solo se utilizzi i caricamenti composti paralleli o se non usi il flag -n ma inserisci un oggetto che ha lo stesso nome di un oggetto già esistente nel bucket.

4 Questa autorizzazione è necessaria solo se non disponi di un account di servizio Cloud Storage associato al progetto.

5 Se utilizzi gsutil kms encryption -k e l'account di servizio del tuo progetto non dispone dell'autorizzazione per accedere alla chiave Cloud KMS richiesta, gsutil esegue gsutil kms authorize per concedere al tuo account di servizio l'autorizzazione richiesta.

6 Questa autorizzazione è richiesta solo se vuoi includere i criteri IAM nei dettagli.

7 Questa autorizzazione è richiesta solo se vuoi includere i criteri IAM nei dettagli e non si applica ai bucket in cui è abilitato l'accesso uniforme a livello di bucket.

8Queste autorizzazioni non sono necessarie se l'argomento esiste già e l'account di servizio pertinente ha accesso.

9 Questa autorizzazione è necessaria solo se non includi un progetto di fatturazione nella richiesta. Per ulteriori informazioni, consulta i requisiti di utilizzo e accesso per i pagamenti a carico del richiedente.

10 Questa autorizzazione non è necessaria se il comando non modifica l'impostazione del bucket.

11Questa autorizzazione è richiesta solo se utilizzi il flag -d o se inserisci un oggetto con lo stesso nome di un oggetto già esistente nel bucket, ma con dati diversi,

Metodi correlati all'ACL

Nella tabella seguente sono elencate le autorizzazioni IAM necessarie per eseguire i comandi gsutil che si applicano specificamente alla gestione degli ACL. Questi comandi si applicano solo ai bucket in cui l'accesso uniforme a livello di bucket è disabilitato.

Comando Sottocomando Data dell'azione della risorsa Autorizzazioni IAM richieste
acl get Bucket storage.buckets.get
storage.buckets.getIamPolicy
acl set o ch Bucket storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
acl get Oggetti storage.objects.get
storage.objects.getIamPolicy
acl set o ch Oggetti storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
cp -a o cp -p Oggetti storage.objects.lista (per il bucket di destinazione)
storage.objects.get (per gli oggetti di origine)
storage.objects.create (per il bucket di destinazione)
storage.objects.deleteb (per il bucket di destinazione)
storage.objects.getIamPolicy (per gli oggetti di origine)
storage.objects.setIamPolicy (per il bucket di destinazione)
defacl get Bucket storage.buckets.get
storage.buckets.getIamPolicy
defacl set o ch Bucket storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
iam get Oggetti storage.objects.get
storage.objects.getIamPolicy
iam set o ch Oggetti storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
mv -a o mv -p Oggetti storage.objects.lista (per il bucket di destinazione)
storage.objects.get (per gli oggetti di origine)
storage.objects.create (per il bucket di destinazione)
storage.objects.delete (per il bucket di origine)
storage.objects.deleteb (per il bucket di destinazione)
storage.objects.getIamPolicy (per gli oggetti di origine)
storage.objects.setIamPolicy (per il bucket di destinazione)
rsync -a oppure rsync -p Oggetti storage.objects.get (per gli oggetti di origine e il bucket di destinazione)
storage.objects.create (per il bucket di destinazione)
storage.objects.deletec (per il bucket di destinazione)
storage.objects.list (per i bucket di origine e di destinazione)
storage.objects.getIamPolicy (per gli oggetti di origine)
storage.objects.setIamPolicy (per il bucket di destinazione)

a Questa autorizzazione è richiesta solo quando la destinazione nel comando contiene un percorso dell'oggetto.

bQuesta autorizzazione è richiesta solo se utilizzi caricamenti composti paralleli o se non utilizzi il flag -n ma inserisci un oggetto che ha lo stesso nome di un oggetto già esistente nel bucket.

cQuesta autorizzazione è necessaria solo se utilizzi il flag -d o se inserisci un oggetto con lo stesso nome di un oggetto già esistente nel bucket, ma con dati diversi, ma con lo stesso nome.

Il flag di primo livello -u

Se utilizzi il flag globale -u per specificare un progetto che deve essere fatturato per la tua richiesta, devi disporre dell'autorizzazione serviceusage.services.use per il progetto specificato. Il flag -u viene utilizzato, ad esempio, quando si accede a un bucket in cui è abilitata la funzionalità Pagamenti a carico del richiedente.

Caratteri jolly e flag ricorsivi

Se utilizzi caratteri jolly URI per selezionare più oggetti in un comando, devi disporre dell'autorizzazione storage.objects.list per il bucket che contiene gli oggetti. Analogamente, se utilizzi caratteri jolly nell'URI per selezionare più bucket in un comando, devi disporre dell'autorizzazione storage.buckets.list per i progetti che contengono i bucket.

Se utilizzi i flag ricorsivi (-r e -R), devi avere l'autorizzazione storage.objects.list per il bucket pertinente, oltre alle autorizzazioni richieste per lo specifico comando in uso.

Il flag di primo livello -m

Normalmente, se si utilizza un comando gsutil che agisce su più oggetti o bucket, il comando non riesce al primo errore. Tuttavia, quando utilizzi il flag globale -m, gsutil registra gli eventuali errori riscontrati e continua con l'operazione.

Ad esempio, supponiamo che tu stia tentando di eseguire un comando acl set su una serie di oggetti, ma che tu abbia l'autorizzazione per farlo solo su alcuni oggetti. Se non utilizzi il flag -m, gsutil applica correttamente gli ACL finché raggiunge un oggetto per cui non disponi dell'autorizzazione per applicare un ACL. A quel punto, gsutil non funziona. Se utilizzi il flag -m, gsutil registra gli errori che si verificano quando tenta di applicare un ACL a un oggetto per il quale non disponi dell'autorizzazione, ma continua con l'operazione.

Passaggi successivi