Bedingte Richtlinien verwalten

In diesem Thema wird beschrieben, wie bedingte Bindungen in Ihren Cloud Identity and Access Management-Richtlinien (Cloud IAM) hinzugefügt, geändert und entfernt werden.

Hinweise

  • Lesen Sie die Cloud IAM Conditions-Übersicht, um die Grundlagen der bedingten Cloud IAM-Richtlinien zu verstehen.
  • Lesen Sie die Attributreferenz, um mehr über die verschiedenen Bedingungsattribute zu erfahren, die in einem Ausdruck verwendet werden können.

Eine bedingte Rollenbindung zu einer Richtlinie hinzufügen

Bedingte Rollenbindungen können neuen oder vorhandenen Cloud IAM-Richtlinien hinzugefügt werden, um den Zugriff auf Google Cloud-Ressourcen weiter einzuschränken. In diesem Abschnitt erfahren Sie, wie Sie eine einfache zeitbasierte Bedingung zu einer bestehenden Richtlinie mithilfe der Cloud Console, dem gcloud-Befehlszeilentool und der REST API hinzufügen .

So fügen Sie einer bestehenden Richtlinie eine bedingte Rollenbindung hinzu:

Console

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

    IAM-Seite öffnen

  2. Klicken Sie auf Projekt auswählen, wählen Sie ein Projekt aus und klicken Sie auf Öffnen.
  3. Suchen Sie in der Mitgliederliste nach dem gewünschten Mitglied und klicken Sie auf die Schaltfläche .
  4. Suchen Sie im Bereich Berechtigungen bearbeiten die gewünschte Rolle, für die eine Bedingung konfiguriert werden soll. Klicken Sie dann unter Bedingung auf Bedingung hinzufügen.
  5. Geben Sie im Bereich Bedingung bearbeiten einen Titel und eine optionale Beschreibung für die Bedingung ein.
  6. 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, auf der Sie den gewünschten Bedingungstyp, den Operator und andere anwendbare Details zum Ausdruck auswählen können. Der Bedingungseditor bietet eine textbasierte Oberfläche zur manuellen Eingabe eines Ausdrucks mit CEL-Syntax.

    Builder für IAM-Bedingungen:

    1. Wählen Sie im Drop-down-Menü Condition type Expiring Access aus.
    2. Wählen Sie aus dem Drop-down-Menü Operator von aus.
    3. Klicken Sie im Drop-down-Menü Zeit auf , um einen Datums- und Zeitbereich auszuwählen.
    4. Klicken Sie auf Speichern um die Bedingung anzuwenden.
    5. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie erneut auf Speichern im Steuerfeld Berechtigungen bearbeiten, um Ihre Cloud IAM-Richtlinie zu aktualisieren.

    Bedingungseditor:

    1. Klicken Sie auf Bedingungseditor und geben Sie den folgenden Ausdruck ein, wobei der Zeitstempel durch Ihren eigenen ersetzt wird:

      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 auf oberhalb des Textfelds oben rechts Linter ausführen klicken.
    3. Klicken Sie auf Speichern um die Bedingung anzuwenden.
    4. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie erneut auf Speichern im Steuerfeld Berechtigungen bearbeiten, um Ihre Cloud IAM-Richtlinie zu aktualisieren.

gcloud-Befehl

Cloud IAM-Richtlinien werden mithilfe den read-modify-write-Musters festgelegt.

Führen Sie den Befehl gcloud projects get-iam-policy aus, um die aktuelle Cloud IAM-Richtlinie für das Projekt abzurufen. Im folgenden Beispiel wird die JSON-Version der Richtlinie in einen Pfad auf dem Datenträger heruntergeladen.

Befehl:

gcloud projects get-iam-policy [PROJECT-ID] --format json > [FILE-PATH]

Das JSON-Format der Cloud IAM-Richtlinie wurde heruntergeladen:

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

Notieren Sie die aktuelle version der Richtlinie, also 1. Um die Richtlinie mit ablauffähigem Zugriff zu konfigurieren, fügen Sie den folgenden hervorgehobenen Bedingungsausdruck hinzu. Ersetzen Sie dabei den Zeitstempel durch Ihren eigenen. Wenn Sie nicht Version 263.0.0 oder höher des gcloud-Tools verwenden, vergewissern Sie sich, dass Sie den Wert version auf 3 aktualisiert haben. Wenn Sie eine neuere Version des Tools gcloud verwenden, wird der maximale Richtlinienwert automatisch für Sie festgelegt:

{
      "bindings": [
        {
          "members": [
            "user:example@gmail.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 bedingte Richtlinie fest, indem Sie den Befehl gcloud projects set-iam-policy ausführen:

gcloud projects set-iam-policy [PROJECT-ID] [FILE-PATH]

Die neue bedingte Richtlinie wird angewendet und die Rollenbindung von example@gmail.com läuft zum angegebenen Zeitpunkt ab.

REST API

Rufen Sie projects.getIamPolicy() auf, um die aktuelle Cloud IAM-Richtlinie für das Projekt abzurufen.

POST https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT-ID]:getIamPolicy

Der Anfragetext ist wie folgt:

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

Der Antworttext enthält die Cloud IAM-Richtlinie des Projekts:

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

Notieren Sie die aktuelle version der Richtlinie, also 1. Um die Richtlinie mit ablauffähigem Zugriff zu konfigurieren, fügen Sie den folgenden hervorgehobenen Bedingungsausdruck hinzu. Ersetzen Sie dabei den Zeitstempel durch Ihren eigenen. Um die Versionsanforderungen für Bedingungen einzuhalten, vergewissern Sie sich, dass Sie den Wert version auf 3 aktualisiert haben:

{
      "bindings": [
        {
          "members": [
            "user:example@gmail.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
    }

Rufen Sie projects.setIamPolicy() auf, um die neue bedingte Cloud IAM-Richtlinie für das Projekt festzulegen, einschließlich der aktualisierten Richtlinie im Anfragetext:

POST https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT-ID]:setIamPolicy

Als Antwort wird die aktualisierte Richtlinie ausgegeben.

Vorhandene bedingte Rollenbindung ändern

Cloud IAM-Richtlinien mit vorhandenen bedingten Rollenbindungen können geändert werden, um die aktuelle Zugriffsbeschränkung für eine Ressource zu ändern. In diesem Abschnitt erfahren Sie, wie Sie eine zeitbasierte Bedingung in einer vorhandenen Richtlinie mithilfe der Cloud Console, des Befehlszeilentools gcloud und der REST API aktualisieren.

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

Console

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

    IAM-Seite öffnen

  2. Klicken Sie auf Projekt auswählen, wählen Sie ein Projekt aus und klicken Sie auf Öffnen.
  3. Suchen Sie in der Mitgliederliste nach dem gewünschten Mitglied und klicken Sie auf die Schaltfläche .
  4. Suchen Sie im Bereich Berechtigungen bearbeiten die gewünschte Rolle, für die eine Bedingung konfiguriert werden soll. Klicken Sie dann unter Bedingung auf den Namen der vorhandenen Bedingung, um sie zu bearbeiten.
  5. Im Bereich Bedingung bearbeiten können Sie den vorhandenen Titel und die Beschreibung für die Bedingung beibehalten oder aktualisieren.
  6. Sie können entweder den vorhandenen Bedingungsausdruck bearbeiten oder einen neuen mithilfe des Builder für IAM-Berechtigungen oder des Bedingungseditors hinzufügen. Der Builder für IAM-Berechtigungen bietet eine interaktive Oberfläche, auf der Sie den gewünschten Bedingungstyp, den Operator und andere anwendbare Details zum Ausdruck auswählen können. Der Bedingungseditor stellt eine textbasierte Oberfläche zur manuellen Eingabe eines Ausdrucks mithilfe der CEL-Syntax bereit.

    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 erneut auf Speichern im Steuerfeld Berechtigungen bearbeiten, um Ihre Cloud IAM-Richtlinie zu aktualisieren.

    Bedingungseditor:

    1. Klicken Sie auf Bedingungseditor, um entweder einen neuen Bedingungsausdruck hinzufügen oder den vorhandenen Bedingungsausdruck zu ändern.
    2. Nachdem Sie den Ausdruck eingegeben haben, können Sie optional die CEL-Syntax validieren, indem Sie auf oberhalb des Textfelds oben rechts Linter ausführen klicken.
    3. Klicken Sie auf Speichern um die Bedingung anzuwenden.
    4. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie erneut auf Speichern im Steuerfeld Berechtigungen bearbeiten, um Ihre Cloud IAM-Richtlinie zu aktualisieren.

gcloud-Befehl

Cloud IAM-Richtlinien werden mithilfe den read-modify-write-Musters festgelegt.

Führen Sie den Befehl gcloud projects get-iam-policy aus, um die aktuelle Cloud IAM-Richtlinie für das Projekt abzurufen. Im folgenden Beispiel wird die JSON-Version der Richtlinie in einen Pfad auf dem Datenträger heruntergeladen.

Befehl:

gcloud projects get-iam-policy [PROJECT-ID] --format json > [FILE-PATH]

Das JSON-Format der Cloud IAM-Richtlinie wurde heruntergeladen:

{
      "bindings": [
        {
          "members": [
            "user:example@gmail.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 werden die Werte für title, description und die Zeitstempel im Ausdruck aktualisiert, um die Dauer der geplanten Zugriffsbedingung zu ändern. Aktualisieren Sie den folgenden hervorgehobenen Teil der Bedingung. Ersetzen Sie dabei die Werte durch Ihre eigene. Wenn Sie Version 263.0.0 oder höher des Tools gcloud nicht verwenden, vergewissern Sie sich, dass Sie den Wert version auf 3 aktualisiert haben. Wenn Sie eine neuere Version des Tools gcloud verwenden, wird der maximale Richtlinienwert automatisch für Sie festgelegt:

{
      "bindings": [
        {
          "members": [
            "user:example@gmail.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 bedingte Richtlinie fest, indem Sie den Befehl gcloud projects set-iam-policy ausführen.

gcloud projects set-iam-policy [PROJECT-ID] [FILE-PATH]

Die aktualisierte bedingte Richtlinie wird angewendet und die Rollenbindung von example@gmail.com läuft zum neuen Zeitpunkt ab.

REST API

Rufen Sie projects.getIamPolicy() auf, um die aktuelle Cloud IAM-Richtlinie für das Projekt abzurufen.

POST https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT-ID]:getIamPolicy

Der Anfragetext ist wie folgt:

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

Der Antworttext enthält die Cloud IAM-Richtlinie des Projekts:

{
      "bindings": [
        {
          "members": [
            "user:example@gmail.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 Zeitstempelwerte, um die Dauer der geplanten Zugriffsbedingung zu ändern. Aktualisieren Sie den folgenden hervorgehobenen Abschnitt des Bedingungsausdrucks, wobei der Zeitstempel durch Ihren eigenen ersetzt wird:

{
      "bindings": [
        {
          "members": [
            "user:example@gmail.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
    }

Rufen Sie projects.setIamPolicy() auf, um die aktualisierte bedingte Cloud IAM-Richtlinie für das Projekt festzulegen, einschließlich der aktualisierten Richtlinie im Anfragetext:

POST https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT-ID]:setIamPolicy

Die Antwort enthält die aktualisierte Richtlinie.

Bedingte Rollenbindung entfernen

Wenn Sie die bedingte Rollenbindung in einer Cloud IAM-Richtlinie entfernen, wird der Zugriff auf die Ressource nur auf die Rollenbindung beschränkt. In diesem Abschnitt erfahren Sie, wie Sie eine zeitbasierte Bedingung in einer Richtlinie mithilfe der Cloud Console, des gcloud-Befehlszeilentools und der REST API entfernen.

So entfernen Sie eine Bedingung aus einer Rollenbindung in einer Richtlinie:

Console

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

    IAM-Seite öffnen

  2. Klicken Sie auf Projekt auswählen, wählen Sie ein Projekt aus und klicken Sie auf Öffnen.
  3. Suchen Sie in der Mitgliederliste nach dem gewünschten Mitglied und klicken Sie auf die Schaltfläche .
  4. Suchen Sie im Bereich Berechtigungen bearbeiten die gewünschte Rollenbindung. Klicken Sie dann unter Bedingung auf den Namen einer vorhandenen Bedingung.
  5. 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.
  6. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie erneut auf Speichern im Bereich Berechtigungen bearbeiten, um Ihre Cloud IAM-Richtlinie zu aktualisieren.

gcloud-Befehl

Cloud IAM-Richtlinien werden mithilfe den read-modify-write-Musters festgelegt.

Führen Sie den Befehl gcloud projects get-iam-policy aus, um die aktuelle Cloud IAM-Richtlinie für das Projekt abzurufen. Im folgenden Beispiel wird die JSON-Version der Richtlinie in einen Pfad auf dem Datenträger heruntergeladen.

Befehl:

gcloud projects get-iam-policy [PROJECT-ID] --format json > [FILE-PATH]

Das JSON-Format der Cloud IAM-Richtlinie wurde heruntergeladen:

{
      "bindings": [
        {
          "members": [
            "user:example@gmail.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
    }

Um die bedingte Rollenbindung aus der Richtlinie zu entfernen, entfernen Sie den Block condition wie unten dargestellt:

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

Beachten Sie, dass version immer noch auf 3 eingestellt ist, obwohl unbedingte Rollenbindungen nur die Richtlinienversion 1 erfordern. Wir empfehlen, beim Festlegen einer Richtlinie immer die höchste Richtlinienversionsnummer zu verwenden, sowohl für bedingte Rollenbindungen als auch für unbedingte Rollenbindungen. Weitere Informationen hierzu finden Sie unter Versionsanforderungen. Wenn Sie Version 263.0.0 oder höher des Tools gcloud verwenden, wird die Richtlinienversion auf die neueste Version der Richtlinie für Sie aktualisiert.

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

gcloud projects set-iam-policy [PROJECT-ID] [FILE-PATH]

Die aktualisierte Richtlinie wird angewendet, wodurch die bedingte Rollenbindung für example@gmail.com entfernt wird. Die Rollenbindung läuft nicht mehr ab.

REST API

Rufen Sie projects.getIamPolicy() auf, um die aktuelle Cloud IAM-Richtlinie für das Projekt abzurufen.

POST https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT-ID]:getIamPolicy

Der Anfragetext ist wie folgt:

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

Der Antworttext enthält die Cloud IAM-Richtlinie des Projekts:

{
      "bindings": [
        {
          "members": [
            "user:example@gmail.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
    }

Um die bedingte Rollenbindung aus der Richtlinie zu entfernen, entfernen Sie den Block condition wie unten dargestellt:

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

Beachten Sie, dass version immer noch auf 3 eingestellt ist, obwohl unbedingte Rollenbindungen nur die Richtlinienversion 1 erfordern. Wir empfehlen, beim Festlegen einer Richtlinie immer die höchste Richtlinienversionsnummer zu verwenden, sowohl für bedingte Rollenbindungen als auch für unbedingte Rollenbindungen. Weitere Informationen hierzu finden Sie unter Versionsanforderungen.

Rufen Sie projects.setIamPolicy() auf, um die aktualisierte Cloud IAM-Richtlinie für das Projekt festzulegen, einschließlich der aktualisierten Richtlinie im Anfragetext:

POST https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT-ID]:setIamPolicy

Die Antwort ist die aktualisierte Richtlinie, die nicht mehr über die bedingte Bindung verfügt.