La tabella seguente elenca le autorizzazioni Identity and Access Management (IAM) necessario per eseguire ogni comando gsutil di Cloud Storage su una determinata risorsa. Le autorizzazioni IAM vengono raggruppate per creare i ruoli. Tu assegnare ruoli a utenti e gruppi.
In questa pagina sono inoltre disponibili informazioni su:
Utilizzare comandi aggiuntivi che si applicano solo ai bucket con accesso uniforme a livello di bucket disabilitato
Utilizzare 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 | Risorsa in cui puoi 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.delete 1 |
|
config |
Nessuno | ||
cors |
get |
Bucket | storage.buckets.get |
cors |
set |
Bucket | storage.buckets.update |
cp |
Oggetti | storage.objects.list 2storage.objects.get storage.objects.create storage.objects.delete 3 |
|
defstorageclass |
get |
Bucket | storage.buckets.get |
defstorageclass |
set |
Bucket | storage.buckets.update |
du |
Oggetti | storage.objects.get |
|
hash |
Oggetti | storage.objects.get |
|
help |
Nessuno | ||
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.create 4cloudkms.cryptoKeys.setIamPolicy |
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.get 5cloudkms.cryptoKeys.setIamPolicy 5 |
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.getIamPolicy 6 |
|
ls |
Bucket, oggetti | storage.objects.list storage.objects.getIamPolicy 7 |
|
ls -b |
Bucket | storage.buckets.get storage.buckets.getIamPolicy 6 |
|
mb |
Bucket | storage.buckets.create |
|
mv |
Oggetti | 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 |
Bucket | 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 notifiche)pubsub.topics.setIamPolicy 8 (per l'argomento Pub/Sub che riceve 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.setIamPolicy |
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.createBillingAssignment 9 |
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 storage.objects.create storage.objects.delete 11storage.objects.list |
|
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 |
Nessuno; ma l'account di servizio la cui chiave viene utilizzata deve disporre dell'autorizzazione per eseguire la richiesta l'URL firmato. | ||
stat |
Oggetti | storage.objects.get |
|
test |
Nessuno | ||
ubla |
set |
Bucket | storage.buckets.get storage.buckets.update |
ubla |
get |
Bucket | storage.buckets.get |
update |
Nessuno | ||
version |
Nessuno | ||
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 campo contiene un percorso dell'oggetto.
3Questa autorizzazione è richiesta solo se utilizzi
caricamenti compositi paralleli o se non utilizzi il flag -n
ma inserisci un
che ha lo stesso nome di un oggetto già esistente nel bucket.
4Questa autorizzazione è necessaria solo se non disponi di una Account di servizio Cloud Storage associato al progetto.
5Se utilizzi gsutil kms encryption -k
e il servizio del progetto
non dispone dell'autorizzazione necessaria per accedere alla chiave Cloud KMS richiesta,
gsutil esegue gsutil kms authorize
per concedere al tuo account di servizio il
l'autorizzazione richiesta.
6Questa autorizzazione è necessaria solo se vuoi IAM inclusi nei dettagli.
7Questa autorizzazione è necessaria solo se vuoi IAM inclusi 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 a cui può accedere l'account di servizio pertinente.
9Questa autorizzazione è richiesta solo se non includi un modulo di fatturazione progetto nella tua richiesta. Consulta i requisiti di utilizzo e accesso per i pagamenti a carico del richiedente. per ulteriori informazioni.
10Questa autorizzazione non è necessaria se il comando non modifica le dell'impostazione del bucket.
11Questa autorizzazione è richiesta solo se utilizzi il flag -d
o se
inserisci un oggetto che ha lo stesso nome, ma dati diversi,
esiste già nel bucket.
Metodi correlati all'ACL
La tabella seguente elenca le autorizzazioni IAM necessarie per l'esecuzione Comandi gsutil specifici per la gestione degli ACL. Questi I comandi si applicano solo ai bucket per i quali l'opzione Accesso uniforme a livello di bucket è disabilitata.
Comando | Sottocomando | Azione eseguita sulla 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.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 è richiesta solo quando la destinazione nel contiene un percorso dell'oggetto.
bQuesta autorizzazione è richiesta solo se utilizzi
caricamenti compositi paralleli o se non utilizzi il flag -n
ma inserisci un
che ha lo stesso nome di un oggetto già esistente nel bucket.
cQuesta autorizzazione è richiesta solo se utilizzi il flag -d
o se
inserisci un oggetto che ha lo stesso nome, ma dati diversi,
esiste già nel bucket.
La bandiera di primo livello -u
Se usi il flag globale -u
per specificare un progetto che deve essere
addebitato per la tua richiesta, devi disporre dell'autorizzazione serviceusage.services.use
per il progetto specificato. Il flag -u
viene utilizzato, ad esempio, per accedere
in un bucket con l'opzione Pagamenti a carico del richiedente abilitata.
Caratteri jolly e flag ricorsivi
Se utilizzi i caratteri jolly URI per selezionare più oggetti in un comando,
deve disporre dell'autorizzazione storage.objects.list
per il bucket contenente
di oggetti strutturati. Allo stesso modo, se utilizzi caratteri jolly URI per selezionare più bucket
in un comando, devi avere l'autorizzazione storage.buckets.list
per
progetti contenenti i bucket.
Se utilizzi i flag ricorsivi (-r
e -R
), devi avere
storage.objects.list
per il bucket pertinente, oltre a
le autorizzazioni richieste per il comando specifico in uso.
La bandiera di primo livello -m
Solitamente, se utilizzi un comando gsutil che agisce su più oggetti o
bucket, l'errore del comando al primo errore. Tuttavia, quando utilizzi
-m
flag globale, gsutil registra gli errori riscontrati e
continua con l'operazione.
Ad esempio, supponi di provare a eseguire un comando acl set
su una serie
ma disponi dell'autorizzazione per farlo solo su alcuni di essi. Se
non usi il flag -m
, gsutil applica correttamente gli ACL finché non viene
raggiunge un oggetto a cui non disponi dell'autorizzazione per applicare un ACL. A quel punto,
gsutil ha esito negativo. 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
dall'autorizzazione, ma per il resto continua l'operazione.
Passaggi successivi
- Assegna i ruoli IAM a livello di progetto e bucket.
- Esamina i ruoli IAM che contengono autorizzazioni di Cloud Storage.