IAM-Berechtigungen für gsutil-Befehle

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:

Befehl Unterbefehl Ressource, der Sie die Rolle zuweisen können Erforderliche IAM-Berechtigungen
autoclass get Buckets storage.buckets.get
autoclass set Buckets storage.buckets.update
cat Objekte storage.objects.get
compose Objekte storage.objects.get
storage.objects.create
storage.objects.delete1
config Keine
cors get Buckets storage.buckets.get
cors set Buckets storage.buckets.update
cp Objekte storage.objects.list2 (für den Ziel-Bucket)
storage.objects.get (für die Quellobjekte)
storage.objects.create (für den Ziel-Bucket)
storage.objects.delete3 (für den Ziel-Bucket)
defstorageclass get Buckets storage.buckets.get
defstorageclass set Buckets storage.buckets.update
du Objekte storage.objects.get
hash Objekte storage.objects.get
help Keine
hmacKeys create HMAC-Schlüssel storage.hmacKeys.create
hmacKeys delete HMAC-Schlüssel storage.hmacKeys.delete
hmacKeys get HMAC-Schlüssel storage.hmacKeys.get
hmacKeys list HMAC-Schlüssel storage.hmacKeys.list
hmacKeys update HMAC-Schlüssel storage.hmacKeys.update
iam get Buckets storage.buckets.get
storage.buckets.getIamPolicy
iam set oder ch Buckets storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
kms authorize Projekte resourceManager.projects.get
iam.serviceAccounts.create4
cloudkms.cryptoKeys.setIamPolicy (für den autorisierten Cloud KMS-Schlüssel)
kms encryption Buckets storage.buckets.get
kms encryption -d Buckets storage.buckets.get
storage.buckets.update
kms encryption -k Buckets, Projekte5 storage.buckets.get
storage.buckets.update
resourceManager.projects.get5
cloudkms.cryptoKeys.setIamPolicy5
kms serviceaccount Projekte resourceManager.projects.get
label get Buckets storage.buckets.get
label set/ch Buckets storage.buckets.update
lifecycle get Buckets storage.buckets.get
lifecycle set/ch Buckets storage.buckets.update
logging get Buckets storage.buckets.get
logging set Buckets storage.buckets.update
ls Projekte storage.buckets.list
storage.buckets.getIamPolicy6
ls Buckets, Objekte storage.objects.list
storage.objects.getIamPolicy7
ls -b Buckets storage.buckets.get
storage.buckets.getIamPolicy6
mb Buckets storage.buckets.create
mv Objekte storage.objects.list2 (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.delete3 (für den Ziel-Bucket)
notification create Buckets storage.buckets.update
pubsub.topics.get (für das Projekt, das das Pub/Sub-Thema enthält)
pubsub.topics.create8 (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.setIamPolicy8 (für das Pub/Sub-Thema, das Benachrichtigungen erhält)
notification create -s Buckets storage.buckets.update
notification delete Buckets storage.buckets.get
storage.buckets.update
notification list Buckets storage.buckets.get
notification watchbucket Buckets storage.buckets.update
notification stopchannel Buckets storage.buckets.update
pap get Buckets storage.buckets.get
pap set Buckets storage.buckets.get
storage.buckets.update
storage.buckets.setIamPolicy10
perfdiag Buckets storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb Buckets storage.buckets.delete
requesterpays get Buckets storage.buckets.get
requesterpays set on Buckets storage.buckets.update
requesterpays set off Buckets storage.buckets.update
resourcemanager.projects.createBillingAssignment9
retention clear, event-default, lock oder set Buckets storage.buckets.update
retention event oder temp Objekte storage.objects.get
storage.objects.list
storage.objects.update
retention get Buckets storage.buckets.get
rewrite -k Objekte storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
rewrite -s Objekte storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
rm Buckets storage.buckets.delete
storage.objects.delete
storage.objects.list
rm Objekte storage.objects.delete
storage.objects.list
rpo get Buckets storage.buckets.get
rpo set Buckets storage.buckets.get
storage.buckets.update
rsync Objekte storage.objects.get (für die Quellobjekte und den Ziel-Bucket)
storage.objects.create (für den Ziel-Bucket)
storage.objects.delete11 (für den Ziel-Bucket)
storage.objects.list (für die Quell- und Ziel-Buckets)
rsync -n Objekte storage.objects.list (für die Quell- und Ziel-Buckets)
setmeta Objekte 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 Objekte storage.objects.get
test Keine
ubla set Buckets storage.buckets.get
storage.buckets.update
ubla get Buckets storage.buckets.get
update Keine
version Keine
versioning get Buckets storage.buckets.get
versioning set Buckets storage.buckets.update
web get Buckets storage.buckets.get
web set Buckets 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 der Befehl die Bucket-Einstellung nicht ändert.

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.lista (für den Ziel-Bucket)
storage.objects.get (für die Quellobjekte)
storage.objects.create (für den Ziel-Bucket)
storage.objects.deleteb (für den Ziel-Bucket)
storage.objects.getIamPolicy (für die Quellobjekte)
storage.objects.setIamPolicy (für den Ziel-Bucket)
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.lista (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.deleteb (für den Ziel-Bucket)
storage.objects.getIamPolicy (für die Quellobjekte)
storage.objects.setIamPolicy (für den Ziel-Bucket)
rsync -a oder rsync -p Objekte storage.objects.get (für Quellobjekte und Ziel-Bucket)
storage.objects.create (für den Ziel-Bucket)
storage.objects.deletec (für den Ziel-Bucket)
storage.objects.list (für die Quell- und Ziel-Buckets)
storage.objects.getIamPolicy (für die Quellobjekte)
storage.objects.setIamPolicy (für den Ziel-Bucket)

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