I controlli della sessione ti consentono di configurare la frequenza con cui gli utenti devono eseguire nuovamente l'autenticazione dopo aver ottenuto l'accesso e se è richiesto l'accesso completo, solo con password o con chiave di sicurezza hardware.
Puoi applicare i controlli della sessione per:
- Applica la riautenticazione frequente per gli utenti con privilegi: richiedi agli utenti con privilegi elevati, come i proprietari dei progetti e gli amministratori della fatturazione, di ripetere l'autenticazione più spesso.
- Configura sessioni più lunghe per determinate applicazioni: consenti a determinate applicazioni, come quelle di AI basate sul contesto come Gemini, di avere durate delle sessioni più lunghe per preservare la grande finestra contestuale necessaria per prestazioni ottimali.
Definisci la durata della sessione e i metodi di riautenticazione
Puoi definire i controlli della sessione quando crei un binding di Gestore contesto accesso. Per ulteriori informazioni sui controlli della sessione, vedi Applicare criteri ai gruppi di utenti utilizzando i binding di accesso.
gcloud
Impostare i controlli della sessione predefiniti per tutte le applicazioni
Utilizza il flag
--session-lengthper impostare la durata della sessione. Il valore può variare da 0 a 24 ore. Specifica la durata utilizzando il formato della durata ISO 8601. Ad esempio, utilizza "12H30M5S" per impostare una sessione di 12 ore, 30 minuti e 5 secondi. Utilizza il flag--session-reauth-methodper specificare il metodo di riautenticazione. Ad esempio, puoi impostare una durata della sessione di 30 minuti (30 m) e un metodo di riautenticazioneLOGIN,PASSWORDoSECURITY_KEY.Questa impostazione verrà applicata a tutte le applicazioni, a meno che non venga sostituita da impostazioni specifiche dell'applicazione.
Impostare i controlli della sessione specifici per l'applicazione
Definisci
scopedAccessSettingsin un file YAML per specificare i controlli della sessione per applicazioni specifiche utilizzandoclientId. In questo modo puoi ignorare i controlli delle sessioni predefiniti per queste applicazioni. Puoi quindi passare il file YAML utilizzando--binding-file flag.
API
Definisci i campi sessionLength e sessionReauthMethod all'interno dell'oggetto sessionSettings nel corpo JSON della richiesta POST per creare o aggiornare un binding GcpUserAccessBinding.
sessionLengthè la durata della sessione compresa tra 0 e 24 ore. Il valore deve essere una stringa costituita da un numero intero compreso tra 0 e 86400, seguito immediatamente dalla lettera "s".sessionReauthMethodpuò essereLOGIN,PASSWORDoSECURITY_KEY.- Utilizza
scopedAccessSettingsper definire i controlli della sessione specifici per l'applicazione. Per maggiori dettagli, vedi Definire le configurazioni per applicazioni specifiche.
Terraform
All'interno della risorsa di binding dell'accesso utente di Terraform Google Cloud, compila l'argomento session_settings per configurare i controlli generali della durata della sessione che si applicano a tutto il traffico utente:
session_length: la durata della sessione in secondi. Ad esempio, 900 secondi impostano la durata della sessione su 15 minuti. La "s" alla fine è obbligatoria.session_length_enabled: imposta il valore su false per disattivare le impostazioni della sessione specificate.session_reauth_method: il tipo di richiesta di autenticazione utilizzato per aggiornare le credenziali. Le opzioni sonoLOGIN,PASSWORDoSECURITY_KEY.use_oidc_max_age: un campo avanzato utilizzato per configurare se la sessione rispetta un parametro max_age OIDC facoltativo, specificato se le credenziali di autenticazione sono un token OAuth.
Considerazioni chiave per la definizione dei controlli delle sessioni:
- Quando vengono risolte le impostazioni di controllo della sessione, viene utilizzato solo il binding di accesso creato più di recente che corrisponde alla richiesta.
Configurazione dei criteri di esempio
L'esempio seguente mostra come creare un controllo della sessione che
richiede la riautenticazione ogni 18 ore con LOGIN e ogni due
ore per un'applicazione specifica (SENSITIVE_APP_ID) con SECURITY_KEY.
Impostazioni predefinite
I flag --level, --session-length e --session-reauth-method nel comando Google Cloud CLI (o i campi corrispondenti nel corpo JSON per la chiamata API) impostano il comportamento predefinito per tutte le applicazioni non definite esplicitamente in scopedAccessSettings.
Impostazioni specifiche dell'applicazione
La sezione scopedAccessSettings nel file YAML (o nel corpo JSON) ti consente di
ignorare le impostazioni predefinite per applicazioni specifiche. Nell'esempio, abbiamo
impostato un requisito di riautenticazione di due ore con SECURITY_KEY per l'applicazione con l'ID client SENSITIVE_APP_ID.
Per esentare determinate app dal controllo della sessione, imposta il campo
sessionLength su 0s o sessionLengthEnabled
su false. Il metodo sessionReauthMethod verrà quindi ignorato.
gcloud
Configurazione delle impostazioni:
scopedAccessSettings:
scope:
clientScope:
restrictedClientApplication:
clientId: SENSITIVE_APP_ID
activeSettings:
sessionSettings:
sessionLength: 7200s
sessionReauthMethod: SECURITY_KEY
sessionLengthEnabled: true
Crea l'associazione di accesso:
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 18h \
--session-reauth-method LOGIN
API
Corpo JSON:
{
"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
}
]
}
}
]
Richiesta di post:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Terraform
Per specificare una durata della sessione per le richieste di accesso degli utenti provenienti da "Chiave di gruppo" in tutte le app:
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 = "1800s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
Per specificare una durata della sessione per le richieste degli utenti provenienti da un gruppo Google specifico che utilizza un'app specifica, ad esempio la console Google Cloud , inserisci un argomento session_settings nell'argomento scoped_access_settings in active_settings. Gli argomenti secondari all'interno di session_settings sono identici all'argomento di primo livello.
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 = "1800s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
}
}
}