Bedingte Rollenbindungen verwalten

In diesem Abschnitt wird beschrieben, wie Sie bedingte Rollenbindungen zu IAM-"allow"-Richtlinien (Identity and Access Management) hinzufügen, darin ändern und daraus entfernen.

Hinweis

  • IAM API aktivieren.

    Aktivieren Sie die API

  • Lesen Sie die Übersicht über IAM Conditions, um sich mit den Grundlagen von bedingten IAM-Rollenbindungen vertraut zu machen.

  • In der Attributreferenz finden Sie Informationen zu den verschiedenen Bedingungsattributen, die in einem Ausdruck verwendet werden können.

Erforderliche Rollen

Zum Verwalten bedingter Rollenbindungen in der "allow"-Richtlinie einer Ressource benötigen Sie Berechtigungen zum Abrufen der Ressource sowie zum Abrufen und Festlegen der "allow"-Richtlinie für die Ressource. Diese Berechtigungen haben das folgende Format, wobei SERVICE der Name des Dienstes ist, zu dem die Ressource gehört, und RESOURCE_TYPE der Name des Ressourcentyps, für den Sie den Zugriff verwalten möchten:

  • SERVICE.RESOURCE_TYPE.get
  • SERVICE.RESOURCE_TYPE.getIamPolicy
  • SERVICE.RESOURCE_TYPE.setIamPolicy

Wenn Sie beispielsweise bedingte Rollenbindungen in der "allow"-Richtlinie eines Projekts verwalten möchten, benötigen Sie die folgenden Berechtigungen:

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

Bitten Sie Ihren Administrator, Ihnen eine vordefinierte oder benutzerdefinierte Rolle zuzuweisen, die die Berechtigungen enthält. Beispielsweise kann Ihr Administrator Ihnen die Rolle des Sicherheitsadministrators (roles/iam.securityAdmin) zuweisen, die Berechtigungen zum Abrufen von fast allen Google Cloud-Ressourcen und zum Verwalten ihrer "allow"-Richtlinien enthält.

Einer Richtlinie eine bedingte Rollenbindung hinzufügen

Bedingte Rollenbindungen können neuen oder vorhandenen "allow"-Richtlinien hinzugefügt werden, um den Zugriff auf Google Cloud-Ressourcen genauer zu steuern. In diesem Abschnitt erfahren Sie, wie Sie mithilfe der Cloud Console, der Google Cloud CLI oder der REST API einer vorhandenen "allow"-Richtlinie eine einfache zeitliche Bedingung hinzufügen.

So fügen Sie einer vorhandenen "allow"-Richtlinie eine bedingte Rollenbindung hinzu:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite IAM.

    Zur IAM-Seite

  2. Suchen Sie in der Liste der Hauptkonten das gewünschte Hauptkonto und klicken Sie auf die Schaltfläche .

  3. Suchen Sie im Bereich Berechtigungen bearbeiten die gewünschte Rolle, für die Sie eine Bedingung konfigurieren möchten. Klicken Sie dann unter IAM-Bedingung (optional) auf IAM-Bedingung hinzufügen.

  4. Geben Sie im Bereich Bedingung bearbeiten einen Titel und eine optionale Beschreibung für die Bedingung ein.

  5. Sie können einen Bedingungsausdruck entweder mit dem Builder für IAM-Bedingungen oder dem Bedingungseditor hinzufügen. Der Builder für IAM-Bedingungen bietet eine interaktive Oberfläche, in der Sie die gewünschte Bedingung, den Operator und andere Details zum Ausdruck auswählen können. Der Bedingungseditor bietet eine textbasierte Oberfläche zur manuellen Eingabe eines Ausdrucks mit der CEL-Syntax.

    Builder für IAM-Bedingungen:

    1. Wählen Sie im Drop-down-Menü Bedingungstyp die Option Ablaufender Zugriff aus.
    2. Wählen Sie im Drop-down-Menü Operator die Option von aus.
    3. Klicken Sie im Drop-down-Menü Zeit auf die Schaltfläche , um einen Datums- und Uhrzeitbereich auszuwählen.
    4. Klicken Sie auf Speichern, um die Bedingung anzuwenden.
    5. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie im Bereich Berechtigungen bearbeiten noch einmal auf Speichern, um die "allow"-Richtlinie zu aktualisieren.

    Bedingungseditor:

    1. Klicken Sie auf den Tab Bedingungseditor und geben Sie den folgenden Ausdruck ein. Ersetzen Sie dabei den Zeitstempel durch Ihren eigenen:

      request.time < timestamp("2019-12-31T12:00:00.000Z")
    2. Nachdem Sie den Ausdruck eingegeben haben, können Sie optional die CEL-Syntax validieren, indem Sie rechts oben oberhalb des Textfeldes auf Linter ausführen klicken.

    3. Klicken Sie auf Speichern, um die Bedingung anzuwenden.

    4. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie im Bereich Berechtigungen bearbeiten noch einmal auf Speichern, um die Zulassungsrichtlinie zu aktualisieren.

gcloud

"allow"-Richtlinien werden mit dem Muster Read-Modify-Write festgelegt.

Rufen Sie mit dem Befehl gcloud projects get-iam-policy die aktuelle "allow"-Richtlinie für das Projekt ab. Im folgenden Beispiel wird die JSON-Version der "allow"-Richtlinie in einen Pfad auf dem Laufwerk heruntergeladen.

Befehl:

gcloud projects get-iam-policy project-id --format json > file-path

Das JSON-Format der "allow"-Richtlinie wird heruntergeladen:

{
  "bindings": [
    {
      "members": [
        "user:project-owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "user:travis@example.com"
      ],
      "role": "roles/iam.securityReviewer"
    }
  ],
  "etag": "BwWKmjvelug=",
  "version": 1
}

Beachten Sie die aktuelle version der "allow"-Richtlinie, nämlich 1. Fügen Sie den folgenden hervorgehobenen Bedingungsausdruck hinzu, um die "allow"-Richtlinie mit ablaufendem Zugriff zu konfigurieren. Ersetzen Sie dabei den Zeitstempel durch Ihren eigenen. Die gcloud CLI aktualisiert die Version automatisch:

{
  "bindings": [
    {
      "members": [
        "user:project-owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "user:travis@example.com"
      ],
      "role": "roles/iam.securityReviewer",
      "condition": {
          "title": "Expires_2019",
          "description": "Expires at noon on 2019-12-31",
          "expression":
            "request.time < timestamp('2019-12-31T12:00:00Z')"
      }
    }
  ],
  "etag": "BwWKmjvelug=",
  "version": 3
}

Legen Sie als Nächstes die neue "allow"-Richtlinie fest, indem Sie den Befehl gcloud projects set-iam-policy ausführen:

gcloud projects set-iam-policy project-id file-path

Die neue "allow"-Richtlinie wird angewendet und die Rollenbindung von travis@example.com läuft zum angegebenen Zeitpunkt ab.

REST

Verwenden Sie das Muster read-modify-write, um den Zugriff bis zu einer bestimmten Zeit zuzulassen.

Lesen Sie zuerst die "allow"-Richtlinie für das Projekt:

Die Methode projects.getIamPolicy der Resource Manager API ruft die Zulassungsrichtlinie eines Projekts ab.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.
  • POLICY_VERSION: Die Richtlinienversion, die zurückgegeben werden soll. Anfragen sollten die neueste Richtlinienversion angeben. Diese ist Richtlinienversion 3. Weitere Informationen finden Sie unter Richtlinienversion beim Abrufen einer Richtlinie festlegen.

HTTP-Methode und URL:

POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy

JSON-Text anfordern:

{
  "options": {
    "requestedPolicyVersion": POLICY_VERSION
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "version": 1,
  "etag": "BwWKmjvelug=",
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:project-owner@example.com"
      ]
    },
    {
      "role": "roles/iam.securityReviewer",
      "members": [
        "user:travis@example.com"
      ]
    }
  ]
}

Beachten Sie die aktuelle version der "allow"-Richtlinie, nämlich 1.

Ändern Sie als Nächstes die "allow"-Richtlinie so, dass der Zugriff bis zu einem bestimmten Zeitpunkt möglich ist. Setzen Sie dabei das Feld version auf den Wert 3:

{
  "etag": "BwWKmjvelug=",
  "version": 3,
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:project-owner@example.com"
      ]
    },
    {
      "role": "roles/iam.securityReviewer",
      "condition": {
        "title": "Expires_2019",
        "description": "Expires at noon on 2019-12-31",
        "expression": "request.time < timestamp('2019-12-31T12:00:00Z')"
      },
      "members": [
        "user:travis@example.com"
      ]
    }
  ]
}

Schreiben Sie anschließend die aktualisierte Zulassungsrichtlinie:

Die Methode projects.setIamPolicy der Resource Manager API legt die Zulassungsrichtlinie in der Anfrage als neue Zulassungsrichtlinie des Projekts fest.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.

HTTP-Methode und URL:

POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy

JSON-Text anfordern:

{
  "policy": {
    "version": 3,
    "etag": "BwWKmjvelug=",
    "bindings": [
      {
        "role": "roles/owner",
        "members": [
          "user:project-owner@example.com"
        ]
      },
      {
        "role": "roles/iam.securityReviewer",
        "members": [
          "user:travis@example.com"
        ],
        "condition": {
          "title": "Expires_July_1_2020",
          "description": "Expires on July 1, 2020",
          "expression":
            "request.time < timestamp('2020-07-01T00:00:00.000Z')"
        }
      }
    ]
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält die aktualisierte Zulassungsrichtlinie:


Vorhandene bedingte Rollenbindung ändern

Nachdem Sie eine bedingte Rollenbindung erstellt haben, können Sie den Bedingungsausdruck jederzeit ändern. In diesem Abschnitt erfahren Sie, wie Sie eine zeitbasierte Bedingung in einer vorhandenen "allow"-Richtlinie mit der Cloud Console, der Google Cloud CLI und der REST API aktualisieren.

So ändern Sie eine bedingte Rollenbindung in einer vorhandenen "allow"-Richtlinie:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite IAM.

    Zur IAM-Seite

  2. Suchen Sie in der Liste der Hauptkonten das gewünschte Hauptkonto und klicken Sie auf die Schaltfläche .

  3. Suchen Sie im Bereich Berechtigungen bearbeiten die gewünschte Rolle, für die Sie eine Bedingung konfigurieren möchten. Klicken Sie dann unter IAM-Bedingung (optional) auf den Namen der vorhandenen Bedingung, um sie zu bearbeiten.

  4. Im Bereich Bedingung bearbeiten können Sie den vorhandenen Titel und die Beschreibung für die Bedingung beibehalten oder aktualisieren.

  5. Sie können entweder den vorhandenen Bedingungsausdruck bearbeiten oder mit dem Builder für IAM-Bedingungen oder dem Bedingungseditor einen neuen hinzufügen. Der Builder für IAM-Bedingungen bietet eine interaktive Oberfläche, in der Sie die gewünschte Bedingung, den Operator und andere Details zum Ausdruck auswählen können. Der Bedingungseditor bietet eine textbasierte Oberfläche zur manuellen Eingabe eines Ausdrucks mit der CEL-Syntax.

    Builder für IAM-Bedingungen:

    1. Fügen Sie einen neuen Bedingungsausdruck hinzu oder ändern Sie den vorhandenen Bedingungsausdruck.
    2. Klicken Sie auf Speichern, um die Bedingung anzuwenden.
    3. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie im Bereich Berechtigungen bearbeiten noch einmal auf Speichern, um die "allow"-Richtlinie zu aktualisieren.

    Bedingungseditor:

    1. Klicken Sie auf den Tab Bedingungseditor und fügen Sie entweder einen neuen Bedingungsausdruck hinzu oder ändern Sie den vorhandenen Bedingungsausdruck.
    2. Nachdem Sie den Ausdruck eingegeben haben, können Sie optional die CEL-Syntax validieren, indem Sie rechts oben oberhalb des Textfeldes auf Linter ausführen klicken.
    3. Klicken Sie auf Speichern, um die Bedingung anzuwenden.
    4. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie im Bereich Berechtigungen bearbeiten noch einmal auf Speichern, um die Zulassungsrichtlinie zu aktualisieren.

gcloud

"allow"-Richtlinien werden mit dem Muster Read-Modify-Write festgelegt.

Rufen Sie mit dem Befehl gcloud projects get-iam-policy die aktuelle "allow"-Richtlinie für das Projekt ab. Im folgenden Beispiel wird die JSON-Version der "allow"-Richtlinie in einen Pfad auf dem Laufwerk heruntergeladen.

Befehl:

gcloud projects get-iam-policy project-id --format json > file-path

Das JSON-Format der "allow"-Richtlinie wird heruntergeladen:

{
  "bindings": [
    {
      "members": [
        "user:project-owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "user:fatima@example.com"
      ],
      "role": "roles/bigquery.dataViewer",
      "condition": {
        "title": "Duration_3_months",
        "description": "Expires in 3 months on 2019-10-12",
        "expression":
          "request.time > timestamp(\"2019-07-12T07:00:00.000Z\") && request.time < timestamp(\"2019-10-12T07:00:00.000Z\")"
      }
    }
  ],
  "etag": "BwWKmjvelug=",
  "version": 3
}

In diesem Beispiel aktualisieren wir die Werte für title, description und Zeitstempel im Ausdruck, um die Dauer der Bedingung für den geplanten Zugriff zu ändern. Aktualisieren Sie den folgenden hervorgehobenen Teil der Bedingung und ersetzen Sie die Werte durch Ihre eigenen:

{
  "bindings": [
    {
      "members": [
        "user:project-owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "user:fatima@example.com"
      ],
      "role": "roles/bigquery.dataViewer",
      "condition": {
        "title": "Duration_5_months",
        "description": "Expires in 5 months on 2020-01-12",
        "expression":
          "request.time > timestamp('2019-07-12T07:00:00.000Z') && request.time < timestamp('2020-01-12T07:00:00.000Z')"
      }
    }
  ],
  "etag": "BwWKmjvelug=",
  "version": 3
}

Legen Sie als Nächstes die neue "allow"-Richtlinie fest, indem Sie den Befehl gcloud projects set-iam-policy ausführen:

gcloud projects set-iam-policy project-id file-path

Die aktualisierte "allow"-Richtlinie wird angewendet und die Rollenbindung von fatima@example.com läuft zum neuen Zeitpunkt ab.

REST

Verwenden Sie das Muster read-modify-write, um die bedingte Rollenbindung zu ändern.

Lesen Sie zuerst die "allow"-Richtlinie für das Projekt:

Die Methode projects.getIamPolicy der Resource Manager API ruft die Zulassungsrichtlinie eines Projekts ab.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.

HTTP-Methode und URL:

POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy

JSON-Text anfordern:

{
  "options": {
    "requestedPolicyVersion": 3
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "etag": "BwWKmjvelug=",
  "version": 3,
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:project-owner@example.com"
      ]
    },
    {
      "role": "roles/bigquery.dataViewer",
      "condition": {
        "title": "Duration_3_months",
        "description": "Expires in 3 months on 2019-10-12",
        "expression":
          "request.time > timestamp(\"2019-07-12T07:00:00.000Z\") && request.time < timestamp(\"2019-10-12T07:00:00.000Z\")"
      },
      "members": [
        "user:fatima@example.com"
      ]
    }
  ]
}

Ändern Sie anschließend die bedingte Rollenbindung in der "allow"-Richtlinie. In diesem Beispiel aktualisieren wir die Zeitstempelwerte, um die Dauer der Bedingung für den geplanten Zugriff zu ändern. Aktualisieren Sie den folgenden hervorgehobenen Teil des Bedingungsausdrucks und ersetzen Sie den Zeitstempel durch Ihren eigenen:

{
  "etag": "BwWKmjvelug=",
  "version": 3,
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:project-owner@example.com"
      ]
    },
    {
      "role": "roles/bigquery.dataViewer",
      "condition": {
        "title": "Duration_5_months",
        "description": "Expires in 5 months on 2020-01-12",
        "expression":
          "request.time > timestamp('2019-07-12T07:00:00.000Z') && request.time < timestamp('2020-01-12T07:00:00.000Z')"
      },
      "members": [
        "user:fatima@example.com"
      ]
    }
  ]
}

Schreiben Sie anschließend die aktualisierte "allow"-Richtlinie:

Die Methode projects.setIamPolicy der Resource Manager API legt die Zulassungsrichtlinie in der Anfrage als neue Zulassungsrichtlinie des Projekts fest.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.

HTTP-Methode und URL:

POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy

JSON-Text anfordern:

{
  "policy": {
    "etag": "BwWKmjvelug=",
    "version": 3,
    "bindings": [
      {
        "role": "roles/owner",
        "members": [
          "user:project-owner@example.com"
        ]
      },
      {
        "role": "roles/bigquery.dataViewer",
        "condition": {
          "title": "Duration_5_months",
          "description": "Expires in 5 months on 2020-01-12",
          "expression":
            "request.time > timestamp('2019-07-12T07:00:00.000Z') && request.time < timestamp('2020-01-12T07:00:00.000Z')"
        },
        "members": [
          "user:fatima@example.com"
        ],
      }
    ]
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält die aktualisierte Zulassungsrichtlinie:


Bedingung aus einer Rollenbindung entfernen

Wenn Sie eine Bedingung aus einer Rollenbindung entfernen, wird die Rolle nicht widerrufen. Stattdessen können alle Hauptkonten in dieser Rollenbindung die Berechtigungen in der Rolle bedingungslos verwenden.

In diesem Abschnitt erfahren Sie, wie Sie eine zeitbasierte Bedingung in einer „allow“-Richtlinie mithilfe der Cloud Console, der Google Cloud CLI und der REST API entfernen.

So entfernen Sie eine Bedingung aus einer Rollenbindung in einer "allow"-Richtlinie:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite IAM.

    Zur IAM-Seite

  2. Suchen Sie in der Liste der Hauptkonten das gewünschte Hauptkonto und klicken Sie auf die Schaltfläche .

  3. Suchen Sie im Bereich Berechtigungen bearbeiten die gewünschte Rollenbindung. Klicken Sie dann unter IAM-Bedingung (optional) auf den Namen einer vorhandenen Bedingung.

  4. Klicken Sie im Bereich Bedingung bearbeiten auf die Schaltfläche , um die Bedingung zu entfernen. Sie werden aufgefordert, das Löschen der Bedingung zu bestätigen.

  5. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie im Bereich Berechtigungen bearbeiten noch einmal auf Speichern, um die "allow"-Richtlinie zu aktualisieren.

gcloud

"allow"-Richtlinien werden mit dem Muster Read-Modify-Write festgelegt.

Rufen Sie mit dem Befehl gcloud projects get-iam-policy die aktuelle "allow"-Richtlinie für das Projekt ab. Im folgenden Beispiel wird die JSON-Version der "allow"-Richtlinie in einen Pfad auf dem Laufwerk heruntergeladen.

Befehl:

gcloud projects get-iam-policy project-id --format json > file-path

Das JSON-Format der "allow"-Richtlinie wird heruntergeladen:

{
  "bindings": [
    {
      "members": [
        "user:project-owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "user:fatima@example.com"
      ],
      "role": "roles/bigquery.dataViewer",
      "condition": {
        "title": "Duration_3_months",
        "description": "Expires in 3 months on 2019-10-12",
        "expression":
          "request.time > timestamp(\"2019-07-12T07:00:00.000Z\") && request.time < timestamp(\"2019-10-12T07:00:00.000Z\")"
      }
    }
  ],
  "etag": "BwWKmjvelug=",
  "version": 3
}

Wenn Sie die bedingte Rollenbindung aus der "allow"-Richtlinie entfernen möchten, entfernen Sie den Block condition wie unten gezeigt:

{
  "bindings": [
    {
      "members": [
        "user:project-owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "user:fatima@example.com"
      ],
      "role": "roles/bigquery.dataViewer",
    }
  ],
  "etag": "BwWKmjvelug=",
  "version": 3
}

Beachten Sie, dass version weiterhin auf 3 gesetzt ist, obwohl bedingungslose Rollenbindungen nur die Version 1 der Zulassungsrichtlinie erfordern. Wir empfehlen, beim Festlegen einer zulässigen Richtlinie immer die höchste Versionsnummer zu verwenden, sowohl für bedingte als auch für bedingungslose Rollenbindungen. Weitere Informationen finden Sie unter Versionsanforderungen. Die gcloud-Befehlszeile aktualisiert die Versionsnummer für die Richtlinie zum Zulassen automatisch.

Legen Sie als Nächstes die aktualisierte "allow"-Richtlinie fest, indem Sie den Befehl gcloud projects set-iam-policy ausführen:

gcloud projects set-iam-policy project-id file-path

Die aktualisierte "allow"-Richtlinie wird angewendet, wobei die bedingte Rollenbindung für fatima@example.com entfernt wird. Die Rollenbindung läuft nicht mehr ab.

REST

Verwenden Sie das Muster read-modify-write, um die bedingte Rollenbindung zu entfernen.

Lesen Sie zuerst die "allow"-Richtlinie für das Projekt:

Die Methode projects.getIamPolicy der Resource Manager API ruft die Zulassungsrichtlinie eines Projekts ab.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.

HTTP-Methode und URL:

POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy

JSON-Text anfordern:

{
  "options": {
    "requestedPolicyVersion": 3
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "etag": "BwWKmjvelug=",
  "version": 3,
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:project-owner@example.com"
      ]
    },
    {
      "role": "roles/bigquery.dataViewer",
      "condition": {
        "title": "Duration_3_months",
        "description": "Expires in 3 months on 2019-10-12",
        "expression":
          "request.time > timestamp(\"2019-07-12T07:00:00.000Z\") && request.time < timestamp(\"2019-10-12T07:00:00.000Z\")"
      },
      "members": [
        "user:fatima@example.com"
      ]
    }
  ]
}

Ändern Sie als Nächstes die "allow"-Richtlinie. Entfernen Sie dazu die bedingte Rollenbindung:

{
  "etag": "BwWKmjvelug=",
  "version": 3,
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:project-owner@example.com"
      ]
    },
    {
      "role": "roles/bigquery.dataViewer",
      "members": [
        "user:fatima@example.com"
      ]
    }
  ]
}

Beachten Sie, dass version weiterhin auf 3 gesetzt ist, obwohl bedingungslose Rollenbindungen nur die Version 1 der Zulassungsrichtlinie erfordern. Wir empfehlen, beim Festlegen einer zulässigen Richtlinie immer die höchste Versionsnummer zu verwenden, sowohl für bedingte als auch für bedingungslose Rollenbindungen. Weitere Informationen finden Sie unter Versionsanforderungen.

Schreiben Sie anschließend die aktualisierte "allow"-Richtlinie:

Die Methode projects.setIamPolicy der Resource Manager API legt die Zulassungsrichtlinie in der Anfrage als neue Zulassungsrichtlinie des Projekts fest.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.

HTTP-Methode und URL:

POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy

JSON-Text anfordern:

{
  "policy": {
    "etag": "BwWKmjvelug=",
    "version": 3,
    "bindings": [
      {
        "role": "roles/owner",
        "members": [
          "user:project-owner@example.com"
        ]
      },
      {
        "role": "roles/bigquery.dataViewer",
        "members": [
          "user:fatima@example.com"
        ]
      }
    ]
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält die aktualisierte Zulassungsrichtlinie:


Nächste Schritte