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.

In den Abschnitten unter der Tabelle finden Sie weitere Befehle, die nur für Buckets mit deaktiviertem einheitlichen Zugriff auf Bucket-Ebene gelten, sowie Hinweise zur Verwendung von Platzhaltern und der Flags -r, -u und -m.

Befehl Unterbefehl Aufgerufene Ressource Erforderliche IAM-Berechtigungen
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.cryptoKey.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, Projekte7 storage.buckets.get
storage.buckets.update
resourceManager.projects.get7
cloudkms.cryptoKey.setIamPolicy7
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.get5
storage.buckets.getIamPolicy6
ls Buckets, Objekte storage.objects.list
storage.objects.get5
storage.objects.getIamPolicy10
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.update
notification list Buckets storage.buckets.get
notification watchbucket Buckets storage.buckets.update
notification stopchannel Buckets storage.buckets.update
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.get
storage.buckets.update
requesterpays set off Buckets storage.buckets.get
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.get
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. Das mit der Anfrage verbundene Dienstkonto muss jedoch die Berechtigung storage.objects.get haben.
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 das Flag -n nicht verwenden und ein Objekt einfügen, das denselben Namen wie ein Objekt hat, das bereits im Bucket vorhanden ist.

4 Diese Berechtigung ist nur erforderlich, wenn dem Projekt kein Cloud Storage-Dienstkonto zugeordnet ist.

5 Diese Berechtigung ist nur erforderlich, wenn im Befehl das Flag -L oder -l verwendet wird.

6 Diese Berechtigung ist nur erforderlich, wenn Sie IAM-Richtlinien in die Details aufgenommen haben.

7 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.

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 nur erforderlich, wenn in den Details IAM-Richtlinien enthalten sein sollen. Sie gilt nicht für Buckets mit aktiviertem einheitlichem Zugriff auf Bucket-Ebene.

11 Diese Berechtigung ist nur erforderlich, wenn Sie das Flag -d nicht verwenden und ein Objekt einfügen, das denselben Namen wie ein Objekt hat, das bereits im Bucket vorhanden ist.

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 das Flag -n nicht verwenden und ein Objekt einfügen, das denselben Namen wie ein Objekt hat, das bereits im Bucket vorhanden ist.

c Diese Berechtigung ist nur erforderlich, wenn Sie das Flag -d nicht verwenden und ein Objekt einfügen, das denselben Namen wie ein Objekt hat, das bereits im Bucket vorhanden ist.

Top-Level-Flag -u

Wenn Sie zum Festlegen eines Projekts, das für Ihre Anfrage abgerechnet werden soll, das Top-Level-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 Top-Level-Flag -m verwenden, erfasst gsutil alle erkannten Fehler 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.

Weitere Informationen