Autorizzazioni IAM per i comandi gsutil

La tabella seguente elenca le autorizzazioni Identity and Access Management (IAM) necessarie per eseguire ogni comando gsutil di Cloud Storage su una determinata risorsa. Le autorizzazioni IAM vengono raggruppate per formare i ruoli. Concessi i ruoli a utenti e gruppi.

In questa pagina puoi anche trovare informazioni su:

Comando Sottocomando Autorizzazioni IAM richieste
autoclass get storage.buckets.get
autoclass set storage.buckets.update
cat storage.objects.get
compose storage.objects.get
storage.objects.create
storage.objects.delete1
config Nessuno
cors get storage.buckets.get
cors set storage.buckets.update
cp 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 storage.buckets.get
defstorageclass set storage.buckets.update
du storage.objects.get
hash storage.objects.get
help Nessuno
hmacKeys create storage.hmacKeys.create
hmacKeys delete storage.hmacKeys.delete
hmacKeys get storage.hmacKeys.get
hmacKeys list storage.hmacKeys.list
hmacKeys update storage.hmacKeys.update
iam get storage.buckets.get
storage.buckets.getIamPolicy
iam set o ch storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
kms authorize resourceManager.projects.get
iam.serviceAccounts.create4
cloudkms.cryptoKeys.setIamPolicy (per la chiave Cloud KMS da autorizzare)
kms encryption storage.buckets.get
kms encryption -d storage.buckets.get
storage.buckets.update
kms encryption -k storage.buckets.get
storage.buckets.update
resourceManager.projects.get5
cloudkms.cryptoKeys.setIamPolicy5
kms serviceaccount resourceManager.projects.get
label get storage.buckets.get
label set/ch storage.buckets.update
lifecycle get storage.buckets.get
lifecycle set/ch storage.buckets.update
logging get storage.buckets.get
logging set storage.buckets.update
ls (bucket delle schede) storage.buckets.list
storage.buckets.getIamPolicy6
ls (oggetti della scheda) storage.objects.list
storage.objects.getIamPolicy7
ls -b storage.buckets.get
storage.buckets.getIamPolicy6
mb storage.buckets.create
mv 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 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 storage.buckets.update
notification delete storage.buckets.get
storage.buckets.update
notification list storage.buckets.get
notification watchbucket storage.buckets.update
notification stopchannel storage.buckets.update
pap get storage.buckets.get
pap set storage.buckets.get
storage.buckets.update
storage.buckets.setIamPolicy10
perfdiag storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb storage.buckets.delete
requesterpays get storage.buckets.get
requesterpays set on storage.buckets.update
requesterpays set off storage.buckets.update
resourcemanager.projects.createBillingAssignment9
retention clear, event-default, lock o set storage.buckets.update
retention event o temp storage.objects.get
storage.objects.list
storage.objects.update
retention get storage.buckets.get
rewrite -k storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
rewrite -s storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
rm storage.objects.delete
rm -a storage.objects.delete
storage.objects.list
rm -r (eliminazione di un bucket) storage.buckets.delete
storage.objects.delete
storage.objects.list
rpo get storage.buckets.get
rpo set storage.buckets.get
storage.buckets.update
rsync 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 storage.objects.list (per i bucket di origine e di destinazione)
setmeta storage.objects.get
storage.objects.list
storage.objects.update
signurl Nessuno. Tuttavia, l'account di servizio di cui viene utilizzata la chiave nell'ambito di questo comando deve disporre dell'autorizzazione per eseguire la richiesta codificata nell'URL firmato.
stat storage.objects.get
test Nessuno
ubla set storage.buckets.get
storage.buckets.update
ubla get storage.buckets.get
update Nessuno
version Nessuno
versioning get storage.buckets.get
versioning set storage.buckets.update
web get storage.buckets.get
web set storage.buckets.update

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

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

3Questa autorizzazione è obbligatoria solo se utilizzi i caricamenti compositi paralleli o se non utilizzi il flag -n, ma inserisci un oggetto con lo stesso nome di un oggetto esistente nel bucket.

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

5Se 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 all'account di servizio l'autorizzazione richiesta.

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

7Questa autorizzazione è obbligatoria solo se vuoi includere i criteri IAM nei dettagli e non si applica ai bucket con accesso uniforme a livello di bucket abilitato.

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

9Questa autorizzazione è obbligatoria solo se non includi un progetto di fatturazione nella richiesta. Per ulteriori informazioni, consulta i requisiti di utilizzo e accesso di Requester Pays.

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

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

Metodi relativi all'ACL

La tabella seguente elenca 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 Risorsa su cui è stato eseguito un'azione 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 o 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 è obbligatoria solo quando la destinazione nel comando contiene un percorso dell'oggetto.

bQuesta autorizzazione è obbligatoria solo se utilizzi i caricamenti compositi paralleli o se non utilizzi il flag -n, ma inserisci un oggetto con lo stesso nome di un oggetto già esistente nel bucket.

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

Il flag di primo livello -u

Se utilizzi il flag globale -u per specificare un progetto per il quale deve essere addebitato il costo della 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 con i pagamenti a carico del richiedente abilitati.

Caratteri jolly e flag ricorsivi

Se utilizzi sostituzioni generiche URI per selezionare più oggetti in un comando, devi disporre dell'autorizzazione storage.objects.list per il bucket contenente gli oggetti. Analogamente, se utilizzi caratteri jolly URI per selezionare più bucket in un comando, devi disporre dell'autorizzazione storage.buckets.list per i progetti contenenti i bucket.

Se utilizzi i flag di ricorsione (-r e -R), devi disporre dell'autorizzazione storage.objects.list per il bucket pertinente, oltre alle autorizzazioni richieste per il comando specifico che stai utilizzando.

Il flag di primo livello -m

In genere, se utilizzi un comando gsutil che agisce su più oggetti o bucket, il comando non va a buon fine al primo errore. Tuttavia, quando utilizzi il -m flag globale, gsutil registra gli errori rilevati e prosegue con l'operazione.

Ad esempio, supponiamo che tu tenti di eseguire un comando acl set su una serie di oggetti, ma che tu abbia l'autorizzazione a farlo solo su alcuni di questi. Se non utilizzi il flag -m, gsutil applica le ACL correttamente finché non raggiunge un oggetto a cui non disponi dell'autorizzazione per applicare un'ACL. A quel punto, gsutil non riesce. 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