IAM-Richtlinien für verwaltete Ordner festlegen und verwalten

Auf dieser Seite wird beschrieben, wie Sie IAM-Richtlinien (Identity and Access Management) für verwaltete Ordner festlegen, um eine detaillierte Zugriffssteuerung für bestimmte Gruppen von Objekten in einem Bucket zu erhalten.

Wenn Sie nach anderen Methoden der Zugriffssteuerung suchen, finden Sie weitere Informationen in den folgenden Ressourcen:

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Storage Folder Admin“ (roles/storage.folderAdmin) für den Bucket zuzuweisen, der die Berechtigungen zum Festlegen und Verwalten von Richtlinien für verwaltete Ordner enthält. Die verwalteten Ordner.

Diese Rolle enthält die folgenden Berechtigungen, die zum Festlegen und Verwalten von IAM-Richtlinien für verwaltete Ordner erforderlich sind:

  • storage.managedfolders.getIamPolicy

  • storage.managedfolders.setIamPolicy

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen erhalten.

Informationen zum Zuweisen von Rollen für Buckets finden Sie unter IAM-Richtlinien für Buckets festlegen und verwalten.

IAM-Richtlinie für einen verwalteten Ordner festlegen

Console

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets, der den verwalteten Ordner enthält, für den Sie eine IAM-Richtlinie festlegen möchten.

  3. Klicken Sie auf der Seite Bucket-Details auf das Symbol Weitere Optionen im Bereich Ordnerbrowser neben dem Ordner, für den Sie eine IAM-Richtlinie festlegen möchten.

    Wenn der Ordner, für den Sie den Zugriff steuern möchten, ein simulierter Ordner ist, führen Sie die Schritte unter Verwalteten Ordner erstellen aus, um zuerst den simulierten Ordner in einen verwalteten Ordner zu konvertieren.

  4. Klicken Sie auf Zugriff bearbeiten.

  5. Klicken Sie im Bereich Berechtigungen für MANAGED_FOLDER_NAME auf Hauptkonto hinzufügen.

  6. Geben Sie im Feld Neue Hauptkonten das Hauptkonto ein, dem Sie Zugriff gewähren möchten. Weitere Informationen zu Hauptkonten, die Sie einschließen können, finden Sie unter Hauptkonto-Kennungen.

  7. Wählen Sie im Abschnitt Rollen zuweisen die Drop-down-Liste Rolle auswählen aus, um die Zugriffsebene anzugeben, die Sie dem Hauptkonto zuweisen möchten.

  8. Klicken Sie auf Speichern.

Befehlszeile

  1. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    Wobei:

    • IAM_ROLE ist die IAM-Rolle, die Sie zuweisen. Beispiel: roles/storage.objectViewer

    • PRINCIPAL_IDENTIFIER gibt an, wem Sie den Zugriff auf verwaltete Ordner gewähren. Beispiel: user:jane@gmail.com Eine Liste der Formate für Hauptkonto-IDs finden Sie unter Hauptkonto-Kennungen.

  2. Führen Sie den Befehl gcloud storage managed-folders set-iam-policy aus:

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE

    Wobei:

    • BUCKET_NAME ist der Name des Buckets mit dem verwalteten Ordner, auf den Sie die IAM-Richtlinie anwenden möchten. Beispiel: my-bucket.

    • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, auf den Sie die IAM-Richtlinie anwenden möchten. Beispiel: my-managed-folder/

    • POLICY_FILE ist der Pfad zur JSON-Datei, die Sie in Schritt 1 erstellt haben.

REST APIs

JSON

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

    Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header Authorization einfügen.

  2. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    Wobei:

    • IAM_ROLE ist die IAM-Rolle, die Sie zuweisen. Beispiel: roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER gibt an, wem Sie den Zugriff auf verwaltete Ordner gewähren. Beispiel: user:jane@gmail.com Eine Liste der Formate für Hauptkonto-IDs finden Sie unter Hauptkonto-Kennungen.

  3. Verwenden Sie cURL, um die JSON API mit einer PUT setIamPolicy-Anfrage aufzurufen:

    curl -X PUT --data-binary @POLICY_FILE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Wobei:

    • POLICY_FILE ist der Pfad zur JSON-Richtliniendatei, die Sie im vorherigen Schritt erstellt haben.

    • BUCKET_NAME ist der Name des Buckets mit dem verwalteten Ordner, auf den Sie die IAM-Richtlinie anwenden möchten. Beispiel: my-bucket.

    • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, auf den Sie dem Hauptkonto Zugriff gewähren möchten. Beispiel: my-managed-folder/.

IAM-Richtlinie für einen verwalteten Ordner aufrufen

Console

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets mit dem verwalteten Ordner, für den Sie IAM-Richtlinien aufrufen möchten.

  3. Klicken Sie auf der Seite Bucket-Details auf das Symbol Weitere Optionen im Bereich Ordnerbrowser neben dem verwalteten Ordner, für den Sie die IAM-Richtlinie aufrufen möchten.

  4. Klicken Sie auf Zugriff bearbeiten.

Im Bereich Berechtigungen für FOLDER_NAME werden die Berechtigungen für den verwalteten Ordner angezeigt, einschließlich Hauptkonto, Rolle, übernommener Rollen und IAM-Bedingungen.

Befehlszeile

Führen Sie den Befehl gcloud storage managed-folder get-iam-policy aus:

gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME

Wobei:

  • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, dessen IAM-Richtlinie Sie aufrufen möchten. Beispiel: my-bucket

  • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, dessen IAM-Richtlinie Sie aufrufen möchten. Beispiel: my-managed-folder/

REST APIs

JSON

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

    Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header Authorization einfügen.

  2. Verwenden Sie cURL, um die JSON API mit einer GET getIamPolicy-Anfrage aufzurufen:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Wobei:

    • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, dessen IAM-Richtlinie Sie aufrufen möchten. Beispiel: my-bucket.

    • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, dessen IAM-Richtlinie Sie aufrufen möchten. Beispiel: my-managed-folder/

Hauptkonten aus einer Richtlinie für verwaltete Ordner entfernen

Console

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets mit dem verwalteten Ordner, für den Sie IAM-Richtlinien aufrufen möchten.

  3. Klicken Sie auf der Seite Bucket-Details auf das Symbol Weitere Optionen im Bereich Ordnerbrowser neben dem verwalteten Ordner, für den Sie ein Hauptkonto entfernen möchten.

  4. Klicken Sie auf Zugriff bearbeiten.

  5. Geben Sie im Bereich Berechtigungen für FOLDER_NAME den Namen des Hauptkontos in das Feld Filter ein.

  6. Klicken Sie auf das Symbol Löschen, um den Bericht zu löschen.

Cloud Storage löscht das Hauptkonto aus Ihrem verwalteten Ordner.

Befehlszeile

Führen Sie den Befehl gcloud storage managed-folder remove-iam-policy-binding aus:

gcloud storage managed-folders remove-iam-policy-binding  gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE

Wobei:

  • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, für den Sie den Zugriff widerrufen möchten. Beispiel: my-bucket

  • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, dessen IAM-Richtlinie Sie entfernen möchten. Beispiel: my-managed-folder/

  • PRINCIPAL_IDENTIFIER gibt an, wem Sie den Zugriff entziehen möchten. Beispiel: user:jane@gmail.com Eine Liste der Formate für Hauptkonto-IDs finden Sie unter Hauptkonto-Kennungen.

  • IAM_ROLE ist die IAM-Rolle, die Sie widerrufen. Beispiel: roles/storage.objectViewer

REST APIs

JSON

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

    Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header Authorization einfügen.

  2. Rufen Sie die vorhandene Richtlinie ab, die für Ihren verwalteten Ordner gilt. Verwenden Sie dazu cURL, um die JSON API mit einer GET getIamPolicy-Anfrage aufzurufen:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Wobei:

    • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, für den Sie den Zugriff widerrufen möchten. Beispiel: my-bucket

    • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, dessen IAM-Richtlinie Sie entfernen möchten. Beispiel: my-managed-folder/

  3. Erstellen Sie eine JSON-Datei mit der Richtlinie, die Sie im vorherigen Schritt abgerufen haben.

  4. Entfernen Sie in der JSON-Datei das gewünschte Mitglied aus der Richtlinie.

  5. Verwenden Sie cURL, um die JSON API mit einer PUT setIamPolicy-Anfrage aufzurufen:

    curl -X PUT --data-binary @JSON_FILE_NAME \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Wobei:

    • JSON_FILE_NAME ist der Pfad für die Datei, die Sie in Schritt 3 erstellt haben.

    • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, für den Sie den Zugriff widerrufen möchten. Beispiel: my-bucket

    • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, dessen IAM-Richtlinie Sie entfernen möchten. Beispiel: my-managed-folder/.

IAM Conditions für verwaltete Ordner verwenden

In den folgenden Abschnitten wird gezeigt, wie Sie IAM-Bedingungen zu Ihren verwalteten Ordnern hinzufügen und daraus entfernen. Informationen zur Anzeige von IAM-Bedingungen für Ihre verwalteten Ordner finden Sie unter IAM-Richtlinie für einen verwalteten Ordner ansehen. Weitere Informationen zur Verwendung von IAM-Bedingungen mit Cloud Storage finden Sie unter Bedingungen.

Bevor Sie verwalteten Ordnern Bedingungen hinzufügen, müssen Sie den einheitlichen Bucket-Zugriff für den Bucket aktivieren.

Neue Bedingung für einen verwalteten Ordner festlegen

Befehlszeile

  1. Erstellen Sie eine JSON- oder YAML-Datei, die die Bedingung definiert, einschließlich des title der Bedingung, der attributbasierten Logik expression für die Bedingung und optional eines description für die Bedingung.

    Beachten Sie, dass Cloud Storage in der expression nur die Attribute Datum/Uhrzeit, Ressourcentyp und Ressourcenname unterstützt.

  2. Führen Sie den Befehl gcloud storage managed-folders add-iam-policy-binding mit dem Flag --condition-from-file aus:

gcloud storage managed-folders add-iam-policy-binding  gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE

Wobei:

  • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, auf den Sie dem Hauptkonto Zugriff gewähren. Beispiel: my-bucket

  • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, auf den Sie dem Hauptkonto Zugriff gewähren. Beispiel: my-managed-folder/

  • PRINCIPAL_IDENTIFIER gibt an, für wen die Bedingung gilt. Beispiel: user:jane@gmail.com Eine Liste der Formate für Hauptkonto-IDs finden Sie unter Hauptkonto-Kennungen.

  • IAM_ROLE ist die IAM-Rolle, die Sie dem Hauptkonto zuweisen. Beispiel: roles/storage.objectViewer.

  • CONDITION_FILE ist die Datei, die Sie im vorherigen Schritt erstellt haben.

Alternativ können Sie die Bedingung direkt in den Befehl einfügen. Dazu nutzen Sie das Flag --condition anstelle des Flags --condition-from-file.

REST APIs

JSON

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

    Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header Authorization einfügen.

  2. Verwenden Sie eine GET getIamPolicy-Anfrage, um die IAM-Richtlinie des verwalteten Ordners in einer temporären JSON-Datei zu speichern:

    curl \
    'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \
    --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json

    Wobei:

    • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, für den Sie eine IAM-Bedingung festlegen möchten.

    • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, für den Sie eine IAM-Bedingung festlegen möchten.

  3. Bearbeiten Sie die Datei tmp-policy.json in einem Texteditor und fügen Sie den Bindungen in der IAM-Richtlinie neue Bedingungen hinzu:

    {
        "version": VERSION,
        "bindings": [
          {
            "role": "IAM_ROLE",
            "members": [
              "PRINCIPAL_IDENTIFIER"
            ],
            "condition": {
              "title": "TITLE",
              "description": "DESCRIPTION",
              "expression": "EXPRESSION"
            }
          }
        ],
        "etag": "ETAG"
    }

    Wobei:

    • VERSION ist die Version der IAM-Richtlinie. Für verwaltete Ordner mit IAM-Bedingungen muss es die Version 3 sein.

    • IAM_ROLE ist die Rolle, für die die Bedingung gilt. Beispiel: roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER gibt an, für wen die Bedingung gilt. Beispiel: user:jane@gmail.com. Eine Liste der Formate für Hauptkonto-IDs finden Sie unter Hauptkonto-Kennungen.

    • TITLE ist der Titel der Bedingung. Beispiel: expires in 2019

    • DESCRIPTION ist eine optionale Beschreibung der Bedingung. Beispiel: Permission revoked on New Year's

    • EXPRESSION ist ein attributbasierter logischer Ausdruck. Beispiel: request.time < timestamp(\"2019-01-01T00:00:00Z\"). Weitere Beispiele für Ausdrücke finden Sie in der Referenz zu Bedingungsattributen. Cloud Storage unterstützt nur die Attribute Datum/Uhrzeit, Ressourcentyp und Ressourcenname.

    Ändern Sie ETAG nicht.

  4. Legen Sie mit einer PUT setIamPolicy-Anfrage die geänderte IAM-Richtlinie für den Bucket fest:

    curl -X PUT --data-binary @tmp-policy.json \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"

    Wobei:

    • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, für den Sie eine IAM-Bedingung festlegen möchten.

    • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, für den Sie eine IAM-Bedingung festlegen möchten.

Bedingung aus einem verwalteten Ordner entfernen

Befehlszeile

  1. Geben Sie zum Speichern der IAM-Richtlinie des verwalteten Ordners den Befehl gcloud storage managed-folders get-iam-policy in einer temporären JSON-Datei ein:

    gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
  2. Bearbeiten Sie die Datei tmp-policy.json in einem Texteditor, um Bedingungen aus der IAM-Richtlinie zu entfernen.

  3. Legen Sie mit dem Befehl gcloud storage managed-folders set-iam-policy die geänderte IAM-Richtlinie für den verwalteten Ordner fest.

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json

REST APIs

JSON

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

    Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header Authorization einfügen.

  2. Verwenden Sie eine GET getIamPolicy-Anfrage, um die IAM-Richtlinie des verwalteten Ordners in einer temporären JSON-Datei zu speichern:

    curl \
    'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \
    --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json

    Wobei:

    • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, auf den Sie den Zugriff ändern. Beispiel: my-bucket

    • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, für den Sie den Zugriff ändern. Beispiel: my-managed-folder/

  3. Bearbeiten Sie die Datei tmp-policy.json in einem Texteditor, um Bedingungen aus der IAM-Richtlinie zu entfernen.

  4. Legen Sie mit einer PUT setIamPolicy-Anfrage die geänderte IAM-Richtlinie für den verwalteten Ordner fest:

    curl -X PUT --data-binary @tmp-policy.json \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"

    Wobei:

    • BUCKET_NAME ist der Name des Buckets, der den verwalteten Ordner enthält, auf den Sie den Zugriff ändern. Beispiel: my-bucket

    • MANAGED_FOLDER_NAME ist der Name des verwalteten Ordners, für den Sie den Zugriff ändern. Beispiel: my-managed-folder/

IAM mit Projekten verwenden

Informationen zum Zuweisen und Widerrufen von IAM-Rollen auf Projektebene und höher finden Sie unter Zugriff auf Projekte, verwaltete Ordner und Organisationen verwalten.

Best Practices

Gewähren Sie immer nur die geringstmögliche Rolle, die das Hauptkonto für den Zugriff benötigt. Wenn ein Teammitglied beispielsweise nur die verwalteten Ordner in einem Bucket aufrufen muss, weisen Sie ihm die Rolle "Storage Object Admin" (roles/storage.objectAdmin) anstelle der Rolle "Storage Folder Admin" (roles/storage.folderAdmin) zu. Wenn das Teammitglied dagegen uneingeschränkten Zugriff auf die verwalteten Ordner in einem Bucket benötigt, weisen Sie ihm die Rolle "Storage Folder Admin" (roles/storage.folderAdmin) anstelle der Rolle "Storage Admin" (roles/storage.admin) zu.

Nächste Schritte