Die folgende Tabelle enthält die IAM-Berechtigungen (Identity and Access Management), die zum Ausführen der einzelnen Cloud Storage-gsutil-Befehle für eine bestimmte Ressource erforderlich sind. IAM-Berechtigungen werden zusammengefasst, um Rollen zu erstellen. Sie weisen Nutzern und Gruppen Rollen zu.
Auf dieser Seite finden Sie auch Informationen zu folgenden Themen:
Zusätzliche Befehle verwenden, die nur für Buckets mit deaktiviertem einheitlichen Zugriff auf Bucket-Ebene gelten
Platzhalter und rekursive Flags verwenden
Flag
-u
verwenden, um Projekte für die Abrechnung anzugebenFlag
-m
verwenden, um Vorgänge parallel auszuführen
Befehl | Unterbefehl | Erforderliche IAM-Berechtigungen |
---|---|---|
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 |
Keine | |
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 |
Keine | |
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 oder 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 (auflistbare Buckets) |
storage.buckets.list storage.buckets.getIamPolicy 6 |
|
ls (Objekte auflisten) |
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 (für den Ziel-Bucket)storage.objects.get (für die Quellobjekte)storage.objects.create (für den Ziel-Bucket)storage.objects.delete (für den Quell-Bucket)storage.objects.delete 3 (für den Ziel-Bucket) |
|
notification |
create |
storage.buckets.update pubsub.topics.get (für das Projekt, das das Pub/Sub-Thema enthält)pubsub.topics.create 8 (für das Projekt, das das Pub/Sub-Thema enthält)pubsub.topics.getIamPolicy (für das Pub/Sub-Thema, das Benachrichtigungen erhält)pubsub.topics.setIamPolicy 8 (für das Pub/Sub-Thema, das Benachrichtigungen erhält) |
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 oder set |
storage.buckets.update |
retention |
event oder 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 (Löschen eines Buckets) |
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 (für die Quell- und Ziel-Buckets) |
|
setmeta |
storage.objects.get storage.objects.list storage.objects.update |
|
signurl |
Keine; Allerdings muss das Dienstkonto, dessen Schlüssel als Teil dieses Befehls verwendet wird, über die Berechtigung verfügen, die in der signierten URL codierte Anfrage auszuführen. | |
stat |
storage.objects.get |
|
test |
Keine | |
ubla |
set |
storage.buckets.get storage.buckets.update |
ubla |
get |
storage.buckets.get |
update |
EUR | |
version |
Keine | |
versioning |
get |
storage.buckets.get |
versioning |
set |
storage.buckets.update |
web |
get |
storage.buckets.get |
web |
set |
storage.buckets.update |
1 Diese Berechtigung ist nur erforderlich, wenn das zusammengesetzte Objekt denselben Namen wie ein Objekt hat, das schon im Bucket vorhanden ist.
2 Diese Berechtigung ist nur erforderlich, wenn das Ziel im Befehl einen Objektpfad enthält.
3 Diese Berechtigung ist nur erforderlich, wenn Sie parallele zusammengesetzte Uploads verwenden oder wenn Sie das Flag -n
nicht verwenden, aber ein Objekt einfügen, das denselben Namen hat wie ein bereits im Bucket vorhandenes Objekt.
4 Diese Berechtigung ist nur erforderlich, wenn dem Projekt kein Cloud Storage-Dienstkonto zugeordnet ist.
5 Wenn Sie gsutil kms encryption -k
verwenden und das Dienstkonto des Projekts nicht dazu berechtigt ist, auf den angeforderten Cloud KMS-Schlüssel zuzugreifen, führt gsutil gsutil kms authorize
aus, um dem Dienstkonto die erforderliche Berechtigung zu erteilen.
6 Diese Berechtigung ist nur erforderlich, wenn Sie IAM-Richtlinien in die Details aufgenommen haben.
7 Diese Berechtigung ist nur erforderlich, wenn in den Details IAM-Richtlinien enthalten sein sollen. Sie gilt nicht für Buckets mit aktiviertem einheitlichem Zugriff auf Bucket-Ebene.
8 Diese Berechtigungen sind nicht erforderlich, wenn das Thema bereits existiert und das entsprechende Dienstkonto darauf zugreifen kann.
9 Diese Berechtigung ist nur erforderlich, wenn in Ihrer Anfrage kein Abrechnungsprojekt enthalten ist. Weitere Informationen finden Sie auf der Seite "Anforderer bezahlt" unter Anforderungen für Zugriff und Verwendung.
10 Diese Berechtigung ist nicht erforderlich, wenn die Bucket-Einstellung durch den Befehl nicht geändert wird.
11 Diese Berechtigung ist nur erforderlich, wenn Sie das Flag -d
verwenden oder wenn Sie ein Objekt einfügen, das denselben Namen, aber andere Daten als ein bereits im Bucket vorhandenes Objekt hat.
ACL-bezogene Methoden
In der folgenden Tabelle sind die IAM-Berechtigungen aufgeführt, die zum Ausführen der speziell für die Verwaltung von ACLs geltenden gsutil-Befehle erforderlich sind. Diese Befehle gelten nur für Buckets, für die der einheitliche Zugriff auf Bucket-Ebene deaktiviert ist.
Befehl | Unterbefehl | Aufgerufene Ressource | Erforderliche IAM-Berechtigungen |
---|---|---|---|
acl |
get |
Buckets | storage.buckets.get storage.buckets.getIamPolicy |
acl |
set oder ch |
Buckets | storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
acl |
get |
Objekte | storage.objects.get storage.objects.getIamPolicy |
acl |
set oder ch |
Objekte | storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
cp -a oder cp -p |
Objekte | storage.objects.list astorage.objects.get storage.objects.create storage.objects.delete bstorage.objects.getIamPolicy storage.objects.setIamPolicy |
|
defacl |
get |
Buckets | storage.buckets.get storage.buckets.getIamPolicy |
defacl |
set oder ch |
Buckets | storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
iam |
get |
Objekte | storage.objects.get storage.objects.getIamPolicy |
iam |
set oder ch |
Objekte | storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
mv -a oder mv -p |
Objekte | 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 |
Objekte | storage.objects.get storage.objects.create storage.objects.delete cstorage.objects.list storage.objects.getIamPolicy storage.objects.setIamPolicy |
a Diese Berechtigung ist nur erforderlich, wenn das Ziel im Befehl einen Objektpfad enthält.
b Diese Berechtigung ist nur erforderlich, wenn Sie parallele zusammengesetzte Uploads verwenden oder wenn Sie das Flag -n
nicht verwenden, aber ein Objekt einfügen, das denselben Namen hat wie ein bereits im Bucket vorhandenes Objekt.
c Diese Berechtigung ist nur erforderlich, wenn Sie das Flag -d
verwenden oder wenn Sie ein Objekt einfügen, das denselben Namen, aber andere Daten als ein bereits im Bucket vorhandenes Objekt hat.
Top-Level-Flag -u
Wenn Sie zum Festlegen eines Projekts, das für Ihre Anfrage abgerechnet werden soll, das globale Flag -u
verwenden, benötigen Sie für das Projekt die Berechtigung serviceusage.services.use
. Das Flag -u
wird beispielsweise beim Zugriff auf einen Bucket mit aktivierter Option Anforderer bezahlt verwendet.
Platzhalter und wiederkehrende Flags
Wenn Sie URI-Platzhalter verwenden, um in einem Befehl mehrere Objekte auszuwählen, ist für den Bucket mit den Objekten die Berechtigung storage.objects.list
erforderlich. Wenn Sie URI-Platzhalter verwenden, um in einem Befehl mehrere Buckets auszuwählen, ist für das Projekt bzw. die Projekte mit den Buckets die Berechtigung storage.buckets.list
erforderlich.
Wenn Sie die rekursiven Flags (-r
und -R
) verwenden, benötigen Sie zusätzlich zu den Berechtigungen, die für den jeweiligen Befehl erforderlich sind, die Berechtigung storage.objects.list
für den entsprechenden Bucket.
Top-Level-Flag -m
Wenn Sie einen gsutil-Befehl verwenden, der für mehrere Objekte oder Buckets gilt, schlägt die Ausführung des Befehls normalerweise fehl, sobald ein Fehler auftritt. Wenn Sie allerdings das globale Flag -m
verwenden, zeichnet gsutil alle erkannten Fehler auf und setzt den Vorgang fort.
Nehmen Sie beispielsweise an, Sie möchten einen acl set
-Befehl für eine Reihe von Objekte ausführen, haben jedoch nur für einige der Objekte die entsprechende Berechtigung. Wenn Sie das Flag -m
nicht verwenden, wendet gsutil die ACLs erfolgreich an, bis ein Objekt erreicht wird, für das Sie keine Berechtigung zum Anwenden einer ACL haben. An dieser Stelle schlägt gsutil fehl. Wenn Sie aber das Flag -m
verwenden, zeichnet gsutil die Fehler auf, die beim Anwenden einer ACL auf ein Objekt auftreten, für das Sie keine Berechtigung haben. Ansonsten wird der Vorgang jedoch fortgeführt.
Nächste Schritte
- Weisen Sie IAM-Rollen auf Projekt- und Bucket-Ebene zu.
- IAM-Rollen mit Cloud Storage-Berechtigungen prüfen