Die folgende Tabelle enthält die IAM-Berechtigungen (Identity and Access Management), die zum Ausführen von gcloud storage
-Befehlen erforderlich sind. IAM-Berechtigungen sind zusammengefasst, um Rollen zu erstellen. Sie weisen Hauptkonten Rollen zu.
Hinweise zur Verwendung von Platzhaltern sowie den Flags --recursive
und --billing-project
finden Sie in den Abschnitten unter der Tabelle.
Befehl | Flag | Erforderliche IAM-Berechtigungen | |
---|---|---|---|
buckets add-iam-policy-binding |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
||
buckets create |
storage.buckets.create |
||
buckets delete |
storage.buckets.delete |
||
buckets describe |
storage.buckets.get storage.buckets.getIamPolicy 1 |
||
buckets get-iam-policy |
storage.buckets.get storage.buckets.getIamPolicy |
||
buckets list |
storage.buckets.list storage.buckets.getIamPolicy 1 |
||
buckets notifications create |
storage.buckets.get storage.buckets.update pubsub.topics.get (für das Projekt, das das Pub/Sub-Thema enthält)pubsub.topics.create 3 (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 3 (für das Pub/Sub-Thema, das Benachrichtigungen erhält) |
||
buckets notifications create |
--skip-topic-setup |
storage.buckets.get storage.buckets.update |
|
buckets notifications delete |
storage.buckets.get storage.buckets.update |
||
buckets notifications describe |
storage.buckets.get |
||
buckets notifications list |
storage.buckets.get |
||
buckets remove-iam-policy-binding |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
||
buckets set-iam-policy |
storage.buckets.setIamPolicy storage.buckets.update |
||
buckets update |
storage.buckets.update |
||
buckets update |
--no-requester-pays |
storage.buckets.update resourcemanager.projects.createBillingAssignment 2 |
|
buckets update |
--recovery-point-objective --rpo --[no-]uniform-bucket-level-access |
--[no-]uniform-bucket-level-access |
storage.buckets.get storage.buckets.update |
buckets update |
--clear-pap --clear-public-access-prevention --[no-]pap --[no-]public-access-prevention |
storage.buckets.get storage.buckets.update storage.buckets.setIamPolicy |
|
cat |
storage.objects.get storage.objects.list 13 |
||
cp |
storage.objects.get storage.buckets.get 12storage.objects.list 4 (für den Ziel-Bucket)
storage.objects.create storage.objects.delete 5 |
||
du |
storage.objects.list |
||
hash |
storage.objects.get |
||
hmac create |
storage.hmacKeys.create |
||
hmac delete |
storage.hmacKeys.delete |
||
hmac describe |
storage.hmacKeys.get |
||
hmac list |
storage.hmacKeys.list |
||
hmac update |
storage.hmacKeys.update |
||
ls (für die Bucket-Auflistung) |
storage.buckets.list storage.buckets.getIamPolicy 6 |
||
ls (für die Objektauflistung) |
storage.objects.get 7storage.objects.list storage.objects.getIamPolicy 8 |
||
ls |
--buckets |
storage.buckets.get storage.buckets.getIamPolicy 6 |
|
mv |
storage.objects.list 4 (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 5 (für den Ziel-Bucket) |
||
objects compose |
storage.objects.get storage.objects.create storage.objects.delete 9 |
||
objects describe |
storage.objects.get storage.objects.getIamPolicy 8 |
||
objects list |
storage.objects.list storage.objects.getIamPolicy 8 |
||
objects update |
storage.objects.get storage.objects.list storage.objects.update |
||
objects update |
--storage-class --encryption-key --clear-encryption-key |
storage.objects.get storage.objects.list storage.objects.create storage.objects.delete |
|
objects update |
--retention-mode --retain-until --clear-retention |
storage.objects.get storage.objects.list storage.objects.update storage.objects.setRetention storage.objects.overrideUnlockedRetention 11 |
|
restore |
storage.objects.create storage.objects.delete 9storage.objects.restore |
||
restore |
--async |
storage.objects.create storage.objects.delete 14storage.objects.restore storage.buckets.restore |
|
rm |
storage.buckets.delete storage.objects.delete storage.objects.list |
||
rsync |
storage.objects.get storage.objects.create storage.objects.delete 10storage.objects.list |
||
rsync |
--dry-run |
storage.objects.list (für die Quell- und Ziel-Buckets) |
|
service-agent |
resourceManager.projects.get |
||
sign-url |
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. |
1Diese Berechtigung ist nur erforderlich, wenn Sie IAM-Richtlinien in die Details aufgenommen haben.
2Diese Berechtigung ist nur erforderlich, wenn in Ihrer Anfrage kein Abrechnungsprojekt enthalten ist. Weitere Informationen finden Sie im Artikel "Anfragesteller bezahlt" unter Anforderungen für Zugriff und Verwendung.
3 Diese Berechtigungen sind nicht erforderlich, wenn das Thema bereits existiert und das entsprechende Dienstkonto darauf zugreifen kann.
4 Diese Berechtigung ist nur erforderlich, wenn das Ziel im Befehl einen Objektpfad enthält.
5 Diese Berechtigung ist nur erforderlich, wenn Sie parallele zusammengesetzte Uploads verwenden oder wenn Sie das Flag --no-clobber
nicht verwenden, aber ein Objekt einfügen, das denselben Namen hat wie ein bereits im Bucket vorhandenes Objekt.
6 Diese Berechtigung ist nur erforderlich, wenn Sie IAM-Richtlinien in die Details aufgenommen haben.
7 Diese Berechtigung ist nur erforderlich, wenn Sie das Flag --fetch-encrypted-object-hashes
verwenden.
8 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.
9 Diese Berechtigung ist nur erforderlich, wenn der Vorgang ein Objekt mit demselben Namen wie ein Objekt erstellt, das bereits im Bucket vorhanden ist.
10 Diese Berechtigung ist nur erforderlich, wenn Sie das Flag --delete-unmatched-destination-objects
verwenden oder wenn Sie ein Objekt einfügen, das denselben Namen, aber andere Daten als ein bereits im Bucket vorhandenes Objekt hat.
11 Diese Berechtigung ist nur erforderlich, wenn für die Anfrage auch das Flag --override-unlocked-retention
erforderlich ist.
12 Diese Berechtigung ist erforderlich, um parallele zusammengesetzte Uploads auszuführen, wenn das gcloud CLI-Attribut storage/parallel_composite_upload_compatibility_check
auf True
gesetzt ist.
13 Diese Berechtigung ist nur erforderlich, wenn Sie Objekte mit regulären Ausdrücken abrufen möchten.
14 Diese Berechtigung ist nur erforderlich, wenn die Anfrage das Flag --allow-overwrite
enthält und der Vorgang ein Objekt mit demselben Namen wie ein Objekt erstellt, das bereits im Bucket vorhanden ist.
Top-Level-Flag --billing-project
Wenn Sie zum Festlegen eines Projekts, das für Ihre Anfrage abgerechnet werden soll, das globale Flag--billing-project
verwenden, benötigen Sie für das Projekt die serviceusage.services.use
-Berechtigung. Das Flag --billing-project
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 das Flag --recursive
verwenden, benötigen Sie zusätzlich zu den Berechtigungen für den jeweiligen Befehl die Berechtigung storage.objects.list
für den entsprechenden Bucket.
Nächste Schritte
- Weisen Sie IAM-Rollen auf Projekt- und Bucket-Ebene zu.
- IAM-Rollen mit Cloud Storage-Berechtigungen prüfen