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:
Utilizzo di comandi aggiuntivi applicabili solo ai bucket in cui l'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 | 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.delete 1 |
|
config |
Nessun valore | ||
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 |
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.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 le notifiche)pubsub.topics.setIamPolicy 8 (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.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 |
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.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 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
- Assegna ruoli IAM a livello di progetto e bucket.
- Esamina i ruoli IAM che contengono autorizzazioni Cloud Storage.