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 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.delete1
config Keine
cors get storage.buckets.get
cors set storage.buckets.update
cp 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 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.create4
cloudkms.cryptoKeys.setIamPolicy (für den autorisierten Cloud KMS-Schlüssel)
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.get5
cloudkms.cryptoKeys.setIamPolicy5
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.getIamPolicy6
ls (Objekte auflisten) storage.objects.list
storage.objects.getIamPolicy7
ls -b storage.buckets.get
storage.buckets.getIamPolicy6
mb storage.buckets.create
mv 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 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 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.setIamPolicy10
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.createBillingAssignment9
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 (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 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.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