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:
Utilizzo di comandi aggiuntivi che si applicano solo ai bucket con accesso uniforme a livello di bucket disabilitato
Utilizzo di caratteri jolly e flag ricorsivi
Utilizzo del flag
-u
per specificare i progetti per la fatturazioneUtilizzo del flag
-m
per eseguire operazioni in parallelo
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.delete 1 |
|
config |
Nessuno | |
cors |
get |
storage.buckets.get |
cors |
set |
storage.buckets.update |
cp |
storage.objects.list 2storage.objects.get storage.objects.create storage.objects.delete 3 |
|
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.create 4cloudkms.cryptoKeys.setIamPolicy |
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.get 5cloudkms.cryptoKeys.setIamPolicy 5 |
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.getIamPolicy 6 |
|
ls (oggetti della scheda) |
storage.objects.list storage.objects.getIamPolicy 7 |
|
ls -b |
storage.buckets.get storage.buckets.getIamPolicy 6 |
|
mb |
storage.buckets.create |
|
mv |
storage.objects.list 2 (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.delete 3 (per il bucket di destinazione) |
|
notification |
create |
storage.buckets.update pubsub.topics.get (per il progetto contenente l'argomento Pub/Sub)pubsub.topics.create 8 (per il progetto contenente l'argomento Pub/Sub)pubsub.topics.getIamPolicy (per l'argomento Pub/Sub che riceve le notifiche)pubsub.topics.setIamPolicy 8 (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.setIamPolicy |
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.createBillingAssignment 9 |
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 storage.objects.create storage.objects.delete 11storage.objects.list |
|
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 hai un account di servizio Cloud Storage esistente 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.list astorage.objects.get storage.objects.create storage.objects.delete bstorage.objects.getIamPolicy storage.objects.setIamPolicy |
|
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.list astorage.objects.get storage.objects.create storage.objects.delete storage.objects.delete bstorage.objects.getIamPolicy storage.objects.setIamPolicy |
|
rsync -a rsync -p |
Oggetti | storage.objects.get storage.objects.create storage.objects.delete cstorage.objects.list storage.objects.getIamPolicy storage.objects.setIamPolicy |
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
- Assegna i ruoli IAM a livello di progetto e bucket.
- Esamina i ruoli IAM che contengono autorizzazioni Cloud Storage.