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: Ermöglichen Sie unterstützten Anwendungen wie der Google Cloud Konsole, dem Google Cloud SDK oder bestimmten OAuth-Apps längere Sitzungsdauern, um das große Kontextfenster beizubehalten, das für eine optimale Leistung erforderlich ist.

Sitzungslänge 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 12-stündige Sitzung 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-Hauptteil Ihrer POST-Anfrage, um eine GcpUserAccessBinding-Bindung zu erstellen oder zu aktualisieren.

  • sessionLength ist die Sitzungsdauer in Sekunden, formatiert als Anzahl der Sekunden gefolgt von s (z. B. 3600s). Der Wert muss 0s oder zwischen 3600s (1 Stunde) und 86400s (24 Stunden) liegen. Wenn dieser Wert auf 0s gesetzt ist, muss sessionLengthEnabled auf false gesetzt oder nicht konfiguriert werden. Sie können sessionLength nicht auf 0s und sessionLengthEnabled auf true festlegen.
  • 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

Legen Sie in der Terraform Google Cloud User Access Binding-Ressource das session_settings-Argument fest, um allgemeine Steuerelemente für die Sitzungslänge zu konfigurieren, die für den gesamten Nutzer-Traffic gelten:

  • session_length: Die Dauer der Sitzung in Sekunden. Beispielsweise wird mit 3600s die Sitzungslänge auf 1 Stunde festgelegt. 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. Dieser wird angegeben, wenn die Authentifizierungsanmeldedaten 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 Sie eine Sitzungssteuerung erstellen, die mit LOGIN alle 18 Stunden und mit SECURITY_KEY alle zwei Stunden für eine bestimmte Anwendung (SENSITIVE_APP_ID) eine erneute Authentifizierung erfordert.

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.

Anwendungsspezifische Einstellungen in scopedAccessSettings überschreiben die Standardeinstellungen (global) für die Sitzungssteuerung vollständig. Wenn für eine Anwendung eine Einstellung mit Bereich definiert ist, gelten die Standardeinstellungen für die Sitzungssteuerung nicht für diese Anwendung.

Wenn Sie bestimmte Anwendungen von der Sitzungssteuerung ausnehmen möchten, wenn globale Steuerelemente aktiv sind, müssen Sie sie explizit zu scopedAccessSettings hinzufügen und das Feld sessionLength auf 0s und sessionLengthEnabled auf false festlegen.

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 \
    --session-length=SESSION_LENGTH \
    --session-reauth-method LOGIN

Ersetzen Sie Folgendes:

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

REST API

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

{
  "groupKey": "GROUP_ID",
  "sessionSettings": {
    "sessionLength": "64800s",
    "sessionReauthMethod": "LOGIN",
    "sessionLengthEnabled": true
  },
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "clientId": "SENSITIVE_APP_ID"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "7200s",
          "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 Google Cloud .

Terraform

Wenn Sie Sitzungssteuerungen angeben möchten, die global und für bestimmte Anwendungen gelten, legen Sie die Argumente session_settings und scoped_access_settings fest:

    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 = "64800s"
        session_length_enabled = true
        session_reauth_method = "LOGIN"
        use_oidc_max_age = false
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              client_id = "SENSITIVE_APP_ID"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "7200s"
            session_length_enabled = true
            session_reauth_method = "SECURITY_KEY"
            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 eine Sitzungssteuerung erstellen, die für das Google Cloud SDK mit SECURITY_KEY eine erneute Authentifizierung 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 -Konsole fest. Das Feld name wird verwendet, 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 Google Cloud 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 Google Cloud .

Terraform

Wenn Sie die Einstellungen für die Sitzungsdauer für das Google Cloud SDK und die Google Cloud -Konsole 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
          }
        }
      }
    }

Standardmäßige Sitzungsdauer von 16 Stunden für Google Cloud -Anwendungen überschreiben

Ab Juni 2026 wurde für eine Teilmenge von Google Cloud Organisationen eine Standardlänge von 16 Stunden für Sitzungen eingeführt. Diese Standardrichtlinie ist in der Google Admin-Konsole nicht sichtbar und betroffene Google Cloud Organisationen müssen die Access Context Manager API verwenden, um sie für ihre Nutzer zu überschreiben.

Wenn Sie diese Standardrichtlinie überschreiben und diese Anwendungen von der Sitzungssteuerung ausnehmen möchten (wodurch die Sitzungslänge effektiv unendlich ist), können Sie eine Cloud-Bindung mit scopedAccessSettings erstellen, wobei sessionLengthEnabled für die Anwendungen des Google Cloud SDK und der Google Cloud -Konsole („Cloud Console“) auf false festgelegt ist.

gcloud

Das folgende Beispiel zeigt die YAML-Konfiguration zum Deaktivieren der Sitzungssteuerung für diese Anwendungen:

scopedAccessSettings:
- scope:
    clientScope:
      restrictedClientApplication:
        name: Google Cloud SDK
  activeSettings:
    sessionSettings:
      sessionLength: 0s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: false
- scope:
    clientScope:
      restrictedClientApplication:
        name: Cloud Console
  activeSettings:
    sessionSettings:
      sessionLength: 0s
      sessionReauthMethod: LOGIN
      sessionLengthEnabled: false

Erstellen oder aktualisieren Sie die Zugriffsbindung mit dieser Datei:

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 Google Cloud Organisation
  • GROUP_ID: Der Gruppenschlüssel, z. B. eine Gruppe, die alle Nutzer enthält, auf die diese Überschreibung angewendet werden soll.
  • 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": "0s",
          "sessionReauthMethod": "LOGIN",
          "sessionLengthEnabled": false
        }
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Cloud Console"
          }
        }
      },
      "activeSettings": {
        "sessionSettings": {
          "sessionLength": "0s",
          "sessionReauthMethod": "LOGIN",
          "sessionLengthEnabled": false
        }
      }
    }
  ]
}

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 Google Cloud .

Terraform

Wenn Sie angeben möchten, dass die Sitzungssteuerung für das Google Cloud SDK und die Google Cloud -Konsole deaktiviert werden soll, legen Sie das entsprechende scoped_access_settings-Argument mit session_length_enabled = false fest:

    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 = "0s"
            session_length_enabled = false
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
      scoped_access_settings {
        scope {
          client_scope {
            restricted_client_application {
              name = "Cloud Console"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "0s"
            session_length_enabled = false
            session_reauth_method = "LOGIN"
            use_oidc_max_age = false
          }
        }
      }
    }