Temporären Zugriff konfigurieren

In diesem Thema wird beschrieben, wie Sie mithilfe von bedingten (ablaufenden) Rollenbindungen in Ihren Cloud IAM-Richtlinien (Cloud Identity and Access Management) temporären Zugriff auf Google Cloud-Ressourcen einrichten. Mit den Datums- und Uhrzeitattributen können Sie zeitbasierte Einschränkungen beim Zugriff auf eine bestimmte Ressource erzwingen. Sie können beispielsweise einem Projekt, das zu einem bestimmten Zeitpunkt oder auf geplanter und wiederkehrender Basis startet und stoppt, temporären Zugriff gewähren.

Hinweise

  • Lesen Sie Bedingungen – Übersicht, um die Grundlagen von Cloud IAM Conditions zu verstehen.
  • Überprüfen Sie die Datums- und Uhrzeitattribute, die in einem Bedingungsausdruck verwendet werden können.
  • Datums- und Uhrzeitattribute werden derzeit von allen Google Cloud-Diensten unterstützt.

Temporären Zugriff gewähren

Eine bedingte Richtlinie kann verwendet werden, um einer Ressource einen zeitlich begrenzten Zugriff zu gewähren und damit sicherzustellen, dass ein Nutzer nach dem angegebenen Ablaufdatum und der angegebenen Uhrzeit nicht mehr auf die Ressource zugreifen kann.

Stellen Sie sich folgendes Szenario vor: Die Informationssicherheitsrichtlinie des Unternehmens ExampleCo betont, dass kein Mitarbeiter unbegrenzten Zugriff auf Ressourcen in Produktionsprojekten haben sollte. Zuvor haben die Administratoren Cloud IAM-Richtlinien manuell festgelegt und gelöscht, um die dringenden Anforderungen der Entwickler zu erfüllen. Um den Verwaltungsaufwand zu reduzieren, kann ExampleCo stattdessen eine bedingte Richtlinie mit einer Datums-/Uhrzeitbedingung konfigurieren, um ein Enddatum für die Richtlinie festzulegen.

So gewähren Sie ablaufenden Zugriff auf eine Projektressource:

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 Steuerfeld Berechtigungen bearbeiten nach der gewünschten 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 die gewünschte Bedingung, 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 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 Zeitbereich auszuwählen.
    4. Klicken Sie auf Speichern, um die Bedingung anzuwenden.
    5. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie noch einmal auf Speichern im Bereich 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("2020-07-01T00:00:00.000Z")
    2. Nachdem Sie den Ausdruck eingegeben haben, können Sie optional die CEL-Syntax validieren, indem Sie auf Linter ausführen oberhalb des Textfelds oben rechts klicken.

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

    4. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie noch einmal auf Speichern im Bereich Berechtigungen bearbeiten, um Ihre Cloud IAM-Richtlinie zu aktualisieren.

gcloud-Befehl

Cloud IAM-Richtlinien werden mit dem Muster read-modify-write 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 Laufwerk heruntergeladen.

Befehl:

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

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

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

Um die Richtlinie mit ablaufendem 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, achten Sie darauf, dass Sie den Wert version auf 3 aktualisiert haben. Wenn Sie eine neuere Version des gcloud-Tools verwenden, wird der maximale Richtlinienwert automatisch festgelegt:

{
      "bindings": [
        {
          "members": [
            "user:user@example.com"
          ],
          "role": "roles/iam.securityReviewer",
          "condition": {
              "title": "Expires_July_1_2020",
              "description": "Expires on July 1, 2020",
              "expression":
                "request.time < timestamp('2020-07-01T00: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 neue bedingte Richtlinie wird angewendet und die Rollenzuweisung von user@example.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 sollte so festgelegt werden:

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

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

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

Um die Richtlinie mit ablaufendem Zugriff zu konfigurieren, fügen Sie den folgenden hervorgehobenen Bedingungsausdruck hinzu. Ersetzen Sie dabei den Zeitstempel durch Ihren eigenen. Der Wert version muss auf 3 aktualisiert sein:

{
      "bindings": [
        {
          "members": [
            "user:user@example.com"
          ],
          "role": "roles/iam.securityReviewer",
          "condition": {
              "title": "Expires_July_1_2020",
              "description": "Expires on July 1, 2020",
              "expression":
                "request.time < timestamp('2020-07-01T00:00:00.000Z')"
          }
        }
      ],
      "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.

Zugriff auf Tage/Stunden der Woche beschränken

Mit einer bedingten Richtlinie kann der Zugriff auf eine Ressource nur an bestimmten Tagen oder zu bestimmten Uhrzeiten der Woche wiederkehrend gewährt werden.

Stellen Sie sich folgendes Szenario vor: Das Unternehmen ExampleCo verfügt über ein Projekt zur Qualitätssicherung. Das gesamte QA-Team muss über äußerst privilegierte Rollen verfügen, um seine Arbeit abzuschließen. ExampleCo muss sich an seinem Standort an die Arbeitsgesetze halten, die die Arbeitszeit auf Montag bis Freitag von 9:00 Uhr bis 17:00 Uhr beschränken. ExampleCo kann Datums- und Uhrzeitbedingungen verwenden, um sicherzustellen, dass seine Mitarbeiter nur während der Arbeitswoche und während der geplanten Arbeitszeiten auf Google Cloud zugreifen können.

So gewähren Sie wiederkehrenden Zugriff auf eine Projektressource nur für bestimmte Tage oder Wochenstunden:

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 Steuerfeld Berechtigungen bearbeiten nach der gewünschten 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 die gewünschte Bedingung, 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 der CEL-Syntax.

    Builder für IAM-Bedingungen:

    1. Klicken Sie auf Hinzufügen.
    2. Wählen Sie im Drop-down-Menü Bedingungtyp die Option Zeit Zeitplan Wochentag aus.
    3. Wählen Sie im Drop-down-Menü Operator die Option Nach oder am aus.
    4. Wählen Sie im Drop-down-Menü Wochentag die Option Montag aus.
    5. Wählen Sie im Drop-down-Menü Zeitzone auswählen die gewünschte Zeitzone aus der Liste aus.
    6. Stellen Sie sicher, dass der Operator Und auf der linken Seite ausgewählt ist, und klicken Sie dann noch einmal auf Hinzufügen.
    7. Wählen Sie im Drop-down-Menü Bedingungstyp die Option Zeit Zeitplan Wochentag aus.
    8. Wählen Sie im Drop-down-Menü Operator die Option Vor oder am aus.
    9. Wählen Sie im Drop-down-Menü Wochentag die Option Freitag aus.
    10. Wählen Sie im Drop-down-Menü Zeitzone auswählen die gewünschte Zeitzone aus der Liste aus.

    An diesem Punkt haben Sie den Zugriff nur noch von Montag bis Freitag konfiguriert. Konfigurieren Sie jetzt den Zugriff von 9:00 Uhr bis 17:00 Uhr.

    1. Stellen Sie sicher, dass der Operator Und auf der linken Seite ausgewählt ist, und klicken Sie dann noch einmal auf Hinzufügen.
    2. Wählen Sie im Drop-down-Menü Bedingungstyp die Option Zeit Zeitplan Tageszeit aus.

      1. Wählen Sie im Drop-down-Menü Operator die Option Nach oder am aus.
      2. Wählen Sie im Drop-down-Menü Tageszeit die Option 9 (Uhr) aus.
      3. Wählen Sie im Drop-down-Menü Zeitzone auswählen die gewünschte Zeitzone aus der Liste aus.
      4. Wählen Sie im Drop-down-Menü Bedingungstyp die Option Zeit Zeitplan Tageszeit aus.
      5. Wählen Sie im Drop-down-Menü Operator die Option Vor oder am aus. Für diese Auswahl wird "am" logisch zwischen 17:00 Uhr und 17:59 Uhr ausgewertet. Um festzulegen, dass der Zugriff um 16:59 Uhr abläuft, stellen Sie sicher, dass die Stunde auf 16 statt 17 eingestellt ist.
      6. Wählen Sie im Drop-down-Menü Tageszeit 17 (Uhr) aus.
      7. Wählen Sie im Drop-down-Menü Zeitzone auswählen die gewünschte Zeitzone aus der Liste aus.
      8. Klicken Sie auf Speichern, um die Bedingung anzuwenden.
      9. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie noch einmal auf Speichern im Bereich Berechtigungen bearbeiten, um Ihre Cloud IAM-Richtlinie zu aktualisieren.

      Sie haben den Zugriff jetzt auf Montag bis Freitag von 9:00 Uhr bis 17:00 Uhr konfiguriert.

      Bedingungseditor:

      1. Klicken Sie auf Bedingungseditor und geben Sie den folgenden Ausdruck ein, um die Platzhalterwerte durch Ihre eigenen zu ersetzen:

            request.time.getHours("Europe/Berlin") >= 9 &&
            request.time.getHours("Europe/Berlin") <= 17 &&
            request.time.getDayOfWeek("Europe/Berlin") >= 1 &&
            request.time.getDayOfWeek("Europe/Berlin") <= 5
            
      2. Nachdem Sie den Ausdruck eingegeben haben, können Sie optional die CEL-Syntax validieren, indem Sie auf Linter ausführen oberhalb des Textfelds oben rechts klicken.

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

      4. Sobald der Bereich Bedingung bearbeiten geschlossen wurde, klicken Sie noch einmal auf Speichern im Bereich Berechtigungen bearbeiten, um Ihre Cloud IAM-Richtlinie zu aktualisieren.

gcloud-Befehl

Cloud IAM-Richtlinien werden mit dem Muster read-modify-write 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 Laufwerk heruntergeladen.

Befehl:

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

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

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

Um die Richtlinie mit geplantem 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, achten Sie darauf, dass Sie den Wert version auf 3 aktualisiert haben. Wenn Sie eine neuere Version des gcloud-Tools verwenden, wird der maximale Richtlinienwert automatisch festgelegt:

{
      "bindings": [
        {
          "members": [
            "user:user@example.com"
          ],
          "role": "roles/bigquery.dataViewer",
          "condition": {
              "title": "Business_hours",
              "description": "Business hours Monday-Friday",
              "expression":
                "request.time.getHours('Europe/Berlin') >= 9 &&
                request.time.getHours('Europe/Berlin') <= 17 &&
                request.time.getDayOfWeek('Europe/Berlin') >= 1 &&
                request.time.getDayOfWeek('Europe/Berlin') <= 5"
          }
        }
      ],
      "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 Rollenzuweisung von user@example.com ermöglicht den Zugriff an den angegebenen Tagen und Uhrzeiten.

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 sollte so festgelegt werden:

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

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

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

Um die Richtlinie mit geplantem Zugriff zu konfigurieren, fügen Sie den folgenden hervorgehobenen Bedingungsausdruck hinzu. Ersetzen Sie dabei den Zeitstempel durch Ihren eigenen. Der Wert version muss auf 3 aktualisiert sein:

{
      "bindings": [
        {
          "members": [
            "user:user@example.com"
          ],
          "role": "roles/bigquery.dataViewer",
          "condition": {
              "title": "Business_hours",
              "description": "Business hours Monday-Friday",
              "expression":
                "request.time.getHours('Europe/Berlin') >= 9 &&
                request.time.getHours('Europe/Berlin') <= 17 &&
                request.time.getDayOfWeek('Europe/Berlin') >= 1 &&
                request.time.getDayOfWeek('Europe/Berlin') <= 5"
          }
        }
      ],
      "etag": "BwWKmjvelug=",
      "version": 3
    }

Rufen Sie projects.setIamPolicy() auf, um die neu 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.

Tipp