Sitzungssteuerungen für die erneute Authentifizierung konfigurieren

Mit Sitzungssteuerungen können Sie konfigurieren, wie oft sich Nutzer nach dem Erteilen des Zugriffs neu authentifizieren müssen und ob eine vollständige Anmeldung, nur ein Passwort oder ein Hardware-Sicherheitsschlüssel erforderlich ist.

Mit Sitzungssteuerungen können Sie Folgendes tun:

  • Häufige Reauthentifizierung für privilegierte Nutzer erzwingen: Nutzer mit erweiterten Berechtigungen wie Projektinhaber und Abrechnungsadministratoren müssen sich häufiger neu authentifizieren.
  • Längere Sitzungen für bestimmte Anwendungen konfigurieren: Bei bestimmten Anwendungen, z. B. kontextbasierten KI-Anwendungen wie Gemini, können längere Sitzungsdauern zugelassen werden, um das große Kontextfenster beizubehalten, das für eine optimale Leistung erforderlich ist.

Sitzungsdauer und Methoden zur erneuten Authentifizierung definieren

Sie können Sitzungssteuerungen definieren, wenn Sie eine Access Context Manager-Bindung erstellen. Weitere Informationen zu den Sitzungssteuerungen finden Sie unter Richtlinien mithilfe von Zugriffsberechtigungen auf Nutzergruppen anwenden.

gcloud

  • Standardmäßige Sitzungssteuerungen für alle Anwendungen festlegen

    Mit dem Flag --session-length können Sie die Sitzungsdauer festlegen. Der Wert muss 0s oder zwischen 1 und 24 Stunden liegen. Geben Sie die Dauer in Stunden an. Verwenden Sie beispielsweise „12h“, um eine Sitzung mit einer Länge von 12 Stunden festzulegen. Verwenden Sie das Flag --session-reauth-method, um die Methode für die erneute Authentifizierung anzugeben. Sie können beispielsweise eine Sitzungsdauer von 3 Stunden (3h) und eine Methode zur erneuten Authentifizierung von LOGIN, PASSWORD oder SECURITY_KEY festlegen.

    Diese Einstellung wird auf alle Anwendungen angewendet, sofern sie nicht durch anwendungsspezifische Einstellungen überschrieben wird.

  • Anwendungsspezifische Sitzungssteuerung einrichten

    Definieren Sie scopedAccessSettings in einer YAML-Datei, um Sitzungssteuerungen für bestimmte Anwendungen mit clientId anzugeben. So können Sie die Standardeinstellungen für die Sitzungssteuerung für diese Anwendungen überschreiben. Anschließend können Sie die YAML-Datei mit --binding-file flag übergeben.

REST API

Definieren Sie die Felder sessionLength und sessionReauthMethod im Objekt sessionSettings im JSON-Text Ihrer POST-Anfrage, um eine GcpUserAccessBinding-Bindung zu erstellen oder zu aktualisieren.

  • sessionLength ist die Sitzungsdauer in Sekunden. Der Wert muss 0s oder zwischen 1 Stunde und 24 Stunden liegen und als Anzahl von Sekunden gefolgt von s formatiert sein (z. B. 3600s für eine Sitzungslänge von 1 Stunde).
  • sessionReauthMethod kann LOGIN, PASSWORD oder SECURITY_KEY sein.
  • Mit scopedAccessSettings können Sie anwendungsspezifische Sitzungssteuerungen definieren. Weitere Informationen finden Sie unter Konfigurationen für bestimmte Anwendungen definieren.

Terraform

Fügen Sie in der Terraform-Ressource für die Bindung des Google Cloud-Nutzerzugriffs das Argument session_settings ein, um allgemeine Einstellungen für die Sitzungslänge zu konfigurieren, die für den gesamten Nutzer-Traffic gelten:

  • session_length: Die Dauer der Sitzung in Sekunden. Beispiel: 3600s legt die Sitzungslänge auf 1 Stunde fest. Das s am Ende ist erforderlich.
  • session_length_enabled: Auf „false“ setzen, um die angegebenen Sitzungseinstellungen zu deaktivieren.
  • session_reauth_method: Der Typ der Authentifizierungsaufforderung, die zum Aktualisieren von Anmeldedaten verwendet wird. Die Optionen sind LOGIN, PASSWORD oder SECURITY_KEY.
  • use_oidc_max_age: Ein erweitertes Feld, mit dem konfiguriert wird, ob die Sitzung einen optionalen OIDC-Parameter für das maximale Alter berücksichtigt, der angegeben wird, wenn die authentifizierenden Anmeldedaten ein OAuth-Token sind.

Beim Definieren von Sitzungssteuerungen wird nur die zuletzt erstellte Zugriffsbindung verwendet, die der Anfrage entspricht, wenn die Einstellungen für die Sitzungssteuerung aufgelöst werden.

Beispiel für die Konfiguration von Richtlinien

Im folgenden Beispiel wird gezeigt, wie eine Sitzungssteuerung erstellt wird, die mit LOGIN alle 18 Stunden eine erneute Authentifizierung erfordert und mit SECURITY_KEY alle zwei Stunden für eine bestimmte Anwendung (SENSITIVE_APP_ID).

Standardeinstellungen

Mit den Flags --level, --session-length und --session-reauth-method im Google Cloud CLI-Befehl (oder den entsprechenden Feldern im JSON-Body für den API-Aufruf) wird das Standardverhalten für alle Anwendungen festgelegt, die nicht explizit in scopedAccessSettings definiert sind.

Anwendungsspezifische Einstellungen

Im Abschnitt scopedAccessSettings der YAML-Datei (oder des JSON-Bodys) können Sie die Standardeinstellungen für bestimmte Anwendungen überschreiben. In diesem Beispiel legen wir mit SECURITY_KEY eine Anforderung für die erneute Authentifizierung alle zwei Stunden für die Anwendung mit der Client-ID SENSITIVE_APP_ID fest.

Wenn Sie bestimmte Anwendungen von der Sitzungssteuerung ausnehmen möchten, legen Sie das Feld sessionLength auf 0s oder sessionLengthEnabled auf false fest. Die Methode sessionReauthMethod wird dann ignoriert.

gcloud

Das folgende Beispiel zeigt die Konfiguration der Sitzungseinstellungen:

scopedAccessSettings:
  scope:
    clientScope:
      restrictedClientApplication:
        clientId: SENSITIVE_APP_ID
  activeSettings:
    sessionSettings:
      sessionLength: 7200s
      sessionReauthMethod: SECURITY_KEY
      sessionLengthEnabled: true

Erstellen Sie die Zugriffsbindung:

gcloud access-context-manager cloud-bindings create \
    --organization=ORG_ID \
    --group-key=GROUP_ID \
    --binding-file=BINDING_FILE_PATH \
    --level=DEFAULT_ACCESS_LEVEL \
    --session-length=SESSION_LENGTH \
    --session-reauth-method LOGIN

Ersetzen Sie Folgendes:

  • ORG_ID: die ID der Organisation
  • GROUP_ID: der Gruppenschlüssel
  • BINDING_FILE_PATH: der Pfad der Bindungsdatei
  • DEFAULT_ACCESS_LEVEL: die Standardzugriffsebene
  • SESSION_LENGTH: die Sitzungslänge, z. B. 18h

REST API

Beispiel für einen JSON-Text der API-Anfrage:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [
    "accessPolicies/POLICY_ID/accessLevels/DEFAULT_ACCESS_LEVEL"
  ],
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "clientId": "SENSITIVE_APP_ID"
          }
        }
      },
      "activeSettings": {
        "accessLevels": [
          "accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME"
        ],
        "sessionSettings": [
          {
            "sessionLength": "2h",
            "sessionReauthMethod": "SECURITY_KEY",
            "sessionLengthEnabled": true
          }
        ]
      }
    }
  ]

Erstellen Sie die POST-Anfrage im folgenden Format:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Ersetzen Sie ORG_ID durch die ID der Organisation.

Terraform

So legen Sie eine Sitzungslänge für Zugriffsanfragen von Nutzern fest, die über „Gruppenschlüssel“ auf alle Anwendungen zugreifen:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "{Organization ID}"
      group_key = "{Group Key}"
      session_settings {
        session_length = "3600s"
        session_length_enabled = true
        session_reauth_method = "LOGIN"
        use_oidc_max_age = false
      }

Wenn Sie eine Sitzungslänge für Anfragen von Nutzern aus einer bestimmten Google-Gruppe mit einer bestimmten App, z. B. der Google Cloud -Konsole, angeben möchten, füllen Sie das entsprechende scoped_access_settings-Argument mit einem session_settings-Argument in active_settings aus. Die untergeordneten Argumente in session_settings sind mit dem Argument der obersten Ebene identisch.

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "{Organization ID}"
      group_key = "{Group Key}"
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Cloud Console"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "3600s"
            session_length_enabled = true
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }

Beispiel für die Konfiguration von Richtlinien für Google Cloud Anwendungen

Sie können anwendungsspezifische Reauthentifizierungssteuerungen für Google Cloud -Anwendungen konfigurieren, z. B. SECURITY_KEY für das Google Cloud SDK und LOGIN für die Google Cloud -Konsole. Im folgenden Beispiel wird gezeigt, wie Sie ein Sitzungssteuerelement erstellen, das für das Google Cloud SDK mit SECURITY_KEY eine Reauthentifizierung stündlich und für die Google Cloud -Konsole mit LOGIN alle vier Stunden erfordert.

Im Abschnitt scopedAccessSettings der YAML-Datei (oder des JSON-Bodys) können Sie die Standardeinstellungen für bestimmte Anwendungen überschreiben. In diesem Beispiel legen wir mit SECURITY_KEY eine Anforderung zur erneuten Authentifizierung von einer Stunde für das Google Cloud SDK und mit LOGIN eine Anforderung zur erneuten Authentifizierung von vier Stunden für die Google Cloud Console fest. Dazu verwenden wir das Feld name, um diese Anwendungen zu identifizieren.

Wenn Sie bestimmte Anwendungen von der Sitzungssteuerung ausnehmen möchten, legen Sie das Feld sessionLength auf 0s oder sessionLengthEnabled bis false fest. Die Methode sessionReauthMethod wird dann ignoriert.

gcloud

Das folgende Beispiel zeigt die Konfiguration der Sitzungseinstellungen:

scopedAccessSettings:
- scope:
    clientScope:
      restrictedClientApplication:
        name: Google Cloud SDK
  activeSettings:
    sessionSettings:
      sessionLength: 3600s
      sessionReauthMethod: SECURITY_KEY
      sessionLengthEnabled: true
- scope:
    clientScope:
      restrictedClientApplication:
        name: Cloud Console
  activeSettings:
    sessionSettings:
      sessionLength: 14400s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: true

Erstellen Sie die Zugriffsbindung:

gcloud access-context-manager cloud-bindings create \
    --organization=ORG_ID \
    --group-key=GROUP_ID \
    --binding-file=BINDING_FILE_PATH

Ersetzen Sie Folgendes:

  • ORG_ID: die ID der Organisation
  • GROUP_ID: der Gruppenschlüssel
  • BINDING_FILE_PATH: der Pfad der Bindungsdatei

REST API

Beispiel für einen JSON-Text der API-Anfrage:

{
  "groupKey": "GROUP_ID",
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Google Cloud SDK"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
            "sessionLength": "3600s",
            "sessionReauthMethod": "SECURITY_KEY",
            "sessionLengthEnabled": true
          }
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Cloud Console"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
            "sessionLength": "14400s",
            "sessionReauthMethod": "LOGIN",
            "sessionLengthEnabled": true
          }
      }
    }
  ]
}

Erstellen Sie die POST-Anfrage im folgenden Format:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Ersetzen Sie ORG_ID durch die ID der Organisation.

Terraform

Wenn Sie die Einstellungen für die Sitzungsdauer für das Google Cloud SDK und die Google Cloud Console festlegen möchten, geben Sie das entsprechende scoped_access_settings-Argument an:

    resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
      organization_id = "{Organization ID}"
      group_key = "{Group Key}"
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Google Cloud SDK"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "3600s"
            session_length_enabled = true
            session_reauth_method = "SECURITY_KEY"
            use_oidc_max_age = false
          }
        }
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Cloud Console"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "14400s"
            session_length_enabled = true
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }