La seguente tabella elenca le autorizzazioni Identity and Access Management (IAM) necessarie per eseguire ogni 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 trovare anche informazioni su:
Utilizzando comandi aggiuntivi che si applicano solo ai bucket con accesso uniforme a livello di bucket disattivato
Utilizzo di caratteri jolly e flag ricorsivi
Utilizzo del flag
-uper specificare i progetti per la fatturazioneUtilizzo del flag
-mper eseguire operazioni in parallelo
| Comando | Sottocomando | Autorizzazioni IAM obbligatorie |
|---|---|---|
autoclass |
get |
storage.buckets.get |
autoclass |
set |
storage.buckets.update |
cat |
storage.objects.get |
|
compose |
storage.objects.getstorage.objects.createstorage.objects.delete1 |
|
config |
Nessuno | |
cors |
get |
storage.buckets.get |
cors |
set |
storage.buckets.update |
cp |
storage.objects.list2storage.objects.getstorage.objects.createstorage.objects.delete3 |
|
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.getstorage.buckets.getIamPolicy |
iam |
set o ch |
storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
kms |
authorize |
resourceManager.projects.getiam.serviceAccounts.create4cloudkms.cryptoKeys.setIamPolicy |
kms |
encryption |
storage.buckets.get |
kms |
encryption -d |
storage.buckets.getstorage.buckets.update |
kms |
encryption -k |
storage.buckets.getstorage.buckets.updateresourceManager.projects.get5cloudkms.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 (elenco dei bucket) |
storage.buckets.liststorage.buckets.getIamPolicy6 |
|
ls (elenco di oggetti) |
storage.objects.liststorage.objects.getIamPolicy7 |
|
ls -b |
storage.buckets.getstorage.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.updatepubsub.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.getstorage.buckets.update |
notification |
list |
storage.buckets.get |
pap |
get |
storage.buckets.get |
pap |
set |
storage.buckets.getstorage.buckets.updatestorage.buckets.setIamPolicy |
perfdiag |
storage.buckets.getstorage.objects.createstorage.objects.deletestorage.objects.liststorage.objects.get |
|
rb |
storage.buckets.delete |
|
requesterpays |
get |
storage.buckets.get |
requesterpays |
set on |
storage.buckets.update |
requesterpays |
set off |
storage.buckets.updateresourcemanager.projects.createBillingAssignment9 |
retention |
clear, event-default, lock o set |
storage.buckets.update |
retention |
event o temp |
storage.objects.getstorage.objects.liststorage.objects.update |
retention |
get |
storage.buckets.get |
rewrite -k |
storage.objects.liststorage.objects.getstorage.objects.createstorage.objects.delete |
|
rewrite -s |
storage.objects.liststorage.objects.getstorage.objects.createstorage.objects.deletestorage.objects.update |
|
rm |
storage.objects.delete |
|
rm -a |
storage.objects.deletestorage.objects.list |
|
rm -r (eliminazione di un bucket) |
storage.buckets.deletestorage.objects.deletestorage.objects.list |
|
rpo |
get |
storage.buckets.get |
rpo |
set |
storage.buckets.getstorage.buckets.update |
rsync |
storage.objects.getstorage.objects.createstorage.objects.delete11storage.objects.list |
|
rsync -n |
storage.objects.list (per i bucket di origine e di destinazione) |
|
setmeta |
storage.objects.getstorage.objects.liststorage.objects.update |
|
signurl |
Nessuna; tuttavia, il account di servizio la cui chiave viene utilizzata 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.getstorage.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 |
1 Questa autorizzazione è necessaria solo se l'oggetto composto ha lo stesso nome di un oggetto già esistente nel bucket.
2 Questa autorizzazione è obbligatoria solo quando la destinazione nel comando contiene un percorso dell'oggetto.
3Questa autorizzazione è necessaria solo se utilizzi
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.
4 Questa autorizzazione è necessaria solo se non disponi di un account di servizio Cloud Storage esistente associato al progetto.
5Se utilizzi gsutil kms encryption -k e il service account del tuo progetto non ha l'autorizzazione per accedere alla chiave Cloud KMS richiesta, gsutil esegue gsutil kms authorize per concedere al account di servizio l'autorizzazione richiesta.
6 Questa autorizzazione è necessaria solo se vuoi che le policy IAM siano incluse nei dettagli.
7Questa autorizzazione è necessaria solo se vuoi includere i criteri IAM nei dettagli e non si applica ai bucket con l'accesso uniforme a livello di bucket abilitato.
8 Queste autorizzazioni non sono necessarie se l'argomento esiste già e il account di servizio pertinente ha accesso.
9 Questa autorizzazione è obbligatoria solo se non includi un progetto di fatturazione nella richiesta. Per saperne di più, consulta i requisiti di utilizzo e accesso per i pagamenti a carico del richiedente.
10 Questa autorizzazione non è richiesta se il comando non modifica l'impostazione del bucket.
11Questa autorizzazione è necessaria solo se utilizzi il flag -d o se
inserisci un oggetto con lo stesso nome, ma dati diversi, rispetto a
un oggetto già esistente nel bucket.
Metodi correlati alle ACL
La tabella seguente elenca le autorizzazioni IAM necessarie per eseguire i comandi gsutil che si applicano specificamente alla gestione degli elenchi di controllo degli accessi. Questi comandi si applicano solo ai bucket per i quali l'accesso uniforme a livello di bucket è disattivato.
| Comando | Sottocomando | Risorsa su cui è stata eseguita l'azione | Autorizzazioni IAM obbligatorie |
|---|---|---|---|
acl |
get |
Bucket | storage.buckets.getstorage.buckets.getIamPolicy |
acl |
set o ch |
Bucket | storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
acl |
get |
Oggetti | storage.objects.getstorage.objects.getIamPolicy |
acl |
set o ch |
Oggetti | storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update |
cp -a o cp -p |
Oggetti | storage.objects.listastorage.objects.getstorage.objects.createstorage.objects.deletebstorage.objects.getIamPolicystorage.objects.setIamPolicy |
|
defacl |
get |
Bucket | storage.buckets.getstorage.buckets.getIamPolicy |
defacl |
set o ch |
Bucket | storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
iam |
get |
Oggetti | storage.objects.getstorage.objects.getIamPolicy |
iam |
set o ch |
Oggetti | storage.objects.getstorage.objects.getIamPolicystorage.objects.setIamPolicystorage.objects.update |
mv -a o mv -p |
Oggetti | storage.objects.listastorage.objects.getstorage.objects.createstorage.objects.deletestorage.objects.deletebstorage.objects.getIamPolicystorage.objects.setIamPolicy |
|
rsync -arsync -p |
Oggetti | storage.objects.getstorage.objects.createstorage.objects.deletecstorage.objects.liststorage.objects.getIamPolicystorage.objects.setIamPolicy |
a Questa autorizzazione è obbligatoria solo quando la destinazione nel comando contiene un percorso dell'oggetto.
bQuesta autorizzazione è necessaria solo se utilizzi
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 è richiesta solo se utilizzi il flag -d o se inserisci un oggetto con lo stesso nome, ma con dati diversi, rispetto a un oggetto già esistente nel bucket.
Il flag di primo livello -u
Se utilizzi il flag globale -u per specificare un progetto a cui addebitare la 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 l'opzione Pagamenti a carico del richiedente abilitata.
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 contenente gli oggetti. Analogamente, se utilizzi i 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 ricorsivi (-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
Normalmente, 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 flag globale -m, gsutil registra eventuali errori riscontrati e continua con l'operazione.
Ad esempio, supponiamo che tu provi a eseguire un comando acl set su una serie di oggetti, ma disponi dell'autorizzazione per farlo solo su alcuni di questi. Se non utilizzi il flag -m, gsutil applica correttamente gli ACL finché non raggiunge un oggetto per il quale non hai l'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 comunque con l'operazione.
Passaggi successivi
- Assegna ruoli IAM a livello di progetto e bucket.
- Esamina i ruoli IAM che contengono autorizzazioni Cloud Storage.