Les contrôles de session vous permettent de configurer la fréquence à laquelle les utilisateurs doivent se réauthentifier après avoir obtenu l'accès, et si une connexion complète, un mot de passe uniquement ou une clé de sécurité matérielle est requis.
Vous pouvez appliquer des contrôles de session pour effectuer les opérations suivantes :
- Appliquer une réauthentification fréquente pour les utilisateurs privilégiés : demandez aux utilisateurs disposant de droits élevés, tels que les propriétaires de projets et les administrateurs de facturation, de se réauthentifier plus souvent.
- Configurer des sessions plus longues pour certaines applications : autorisez les applications compatibles , telles que Google Cloud console, Google Cloud SDK ou des applications OAuth spécifiques , à avoir des durées de session plus longues afin de préserver la grande fenêtre de contexte requise pour des performances optimales.
Définir la durée de session et les méthodes de réauthentification
Vous pouvez définir des contrôles de session lors de la création d'une liaison Access Context Manager. Pour en savoir plus sur les contrôles de session, consultez Appliquer des règles à des groupes d'utilisateurs à l'aide de liaisons d'accès.
gcloud
Définir des contrôles de session par défaut pour toutes les applications
Utilisez l'option
--session-lengthpour définir la durée de la session. La valeur doit être0sou comprise entre 1 et 24 heures. Spécifiez la durée en heures. Par exemple, utilisez "12h" pour définir une session de 12 heures. Utilisez l'option--session-reauth-methodpour spécifier la méthode de réauthentification. Par exemple, vous pouvez définir une durée de la session de 3 heures (3h) et une méthode de réauthentificationLOGIN,PASSWORDouSECURITY_KEY.Cette option sera appliquée à toutes les applications, sauf si elle est remplacée par des paramètres spécifiques à l'application.
Définir des contrôles de session spécifiques à l'application
Définissez
scopedAccessSettingsdans un fichier YAML pour spécifier les contrôles de session pour des applications spécifiques à l'aide declientId. Cela vous permet de remplacer les contrôles de session par défaut pour ces applications. Vous pouvez ensuite transmettre le fichier YAML à l'aide de l'option--binding-file flag.
API REST
Définissez les champs sessionLength et sessionReauthMethod dans l'objet sessionSettings du corps JSON de votre requête POST pour créer ou mettre à jour une liaison GcpUserAccessBinding.
sessionLengthcorrespond à la durée de la session en secondes, mise en forme sous la forme du nombre de secondes suivi des(par exemple,3600s). La valeur doit être0sou comprise entre3600s(1 heure) et86400s(24 heures). Si la valeur est définie sur0s,sessionLengthEnableddoit être défini surfalseou laissé non défini. Vous ne pouvez pas définirsessionLengthsur0setsessionLengthEnabledsurtrue.sessionReauthMethodpeut êtreLOGIN,PASSWORDouSECURITY_KEY.- Utilisez
scopedAccessSettingspour définir des contrôles de session spécifiques à l'application. Pour en savoir plus, consultez Définir des configurations pour des applications spécifiques.
Terraform
Dans la ressource de liaison d'accès utilisateur Google Cloud Terraform , définissez l'argument session_settings pour configurer les contrôles généraux de durée de session qui s'appliquent à tout le trafic utilisateur :
session_length: durée de la session en secondes. Par exemple,3600sdéfinit la durée de la session sur 1 heure. Lesà la fin est obligatoire.session_length_enabled: définissez la valeur sur "false" pour désactiver les paramètres de session spécifiés.session_reauth_method: type de défi d'authentification utilisé pour actualiser les identifiants. Les options sontLOGIN,PASSWORDouSECURITY_KEY.use_oidc_max_age: champ avancé utilisé pour configurer si la session respecte un paramètre d'âge maximal OIDC facultatif, qui est spécifié si l'identifiant d'authentification est un jeton OAuth.
Lorsque vous définissez des contrôles de session, seule la liaison d'accès la plus récente correspondant à la requête est utilisée lors de la résolution des paramètres de contrôle de session.
Exemple de configuration de règle
L'exemple suivant montre comment créer un contrôle de session qui nécessite une réauthentification toutes les 18 heures avec LOGIN et toutes les deux heures pour une application spécifique (SENSITIVE_APP_ID) avec SECURITY_KEY.
Paramètres par défaut
Les options --level, --session-length et --session-reauth-method de la commande Google Cloud CLI (ou les champs correspondants dans le corps JSON de l'appel d'API) définissent le comportement par défaut pour toutes les applications qui ne sont pas explicitement définies dans scopedAccessSettings.
Paramètres spécifiques à l'application
La section scopedAccessSettings du fichier YAML (ou du corps JSON) vous permet de
remplacer les paramètres par défaut pour des applications spécifiques. Dans l'exemple, nous
définissons une exigence de réauthentification de deux heures avec SECURITY_KEY pour l'
application dont l'ID client est SENSITIVE_APP_ID.
Les paramètres spécifiques à l'application dans scopedAccessSettings remplacent complètement les contrôles de session par défaut (globaux). Si un paramètre limité est défini pour une application, les contrôles de session par défaut ne s'appliquent pas à cette application.
Pour exclure certaines applications du contrôle de session lorsque les contrôles globaux sont actifs, vous devez les ajouter explicitement à scopedAccessSettings et définir le champ sessionLength sur 0s et sessionLengthEnabled sur false.
gcloud
L'exemple suivant montre la configuration des paramètres de session :
scopedAccessSettings:
- scope:
clientScope:
restrictedClientApplication:
clientId: SENSITIVE_APP_ID
activeSettings:
sessionSettings:
sessionLength: 7200s
sessionReauthMethod: SECURITY_KEY
sessionLengthEnabled: true
Créez la liaison d'accès :
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
Remplacez les éléments suivants :
ORG_ID: ID de l' Google Cloud organisationGROUP_ID: clé du groupeBINDING_FILE_PATH: chemin d'accès au fichier de liaisonSESSION_LENGTH: durée de la session, par exemple18h
API REST
Exemple de corps JSON de la requête API :
{
"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
}
}
}
]
}
Créez la requête POST au format suivant :
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Remplacez ORG_ID par l'ID de l' Google Cloud organisation.
Terraform
Pour spécifier des contrôles de session qui s'appliquent globalement et à des applications spécifiques, définissez les arguments session_settings et scoped_access_settings :
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
}
}
}
}
Exemple de configuration de règle pour les Google Cloud applications
Vous pouvez configurer des contrôles de réauthentification spécifiques aux Google Cloud applications, par exemple en exigeant SECURITY_KEY pour Google Cloud SDK et LOGIN pour la Google Cloud console. L'exemple suivant montre comment créer un contrôle de session qui
nécessite une réauthentification toutes les heures
pour Google Cloud SDK avec SECURITY_KEY, et toutes les quatre heures pour the Google Cloud console avec LOGIN.
La section scopedAccessSettings du fichier YAML (ou du corps JSON) vous permet de
remplacer les paramètres par défaut pour des applications spécifiques. Dans cet exemple, nous
définissons une exigence de réauthentification d'une heure avec SECURITY_KEY pour
Google Cloud SDK, et une exigence de réauthentification de quatre heures avec LOGIN pour le Google Cloud console à l'aide du champ name pour identifier ces applications.
Pour exclure certaines applications du contrôle de session, définissez le
sessionLength champ sur 0s ou sessionLengthEnabled
sur false. La méthode sessionReauthMethod sera alors ignorée.
gcloud
L'exemple suivant montre la configuration des paramètres de session :
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
Créez la liaison d'accès :
gcloud access-context-manager cloud-bindings create \
--organization=ORG_ID \
--group-key=GROUP_ID \
--binding-file=BINDING_FILE_PATH
Remplacez les éléments suivants :
ORG_ID: ID de l' Google Cloud organisationGROUP_ID: clé du groupeBINDING_FILE_PATH: chemin d'accès au fichier de liaison
API REST
Exemple de corps JSON de la requête API :
{
"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
}
}
}
]
}
Créez la requête POST au format suivant :
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Remplacez ORG_ID par l'ID de l' Google Cloud organisation.
Terraform
Pour spécifier les paramètres de durée de session pour Google Cloud SDK et le Google Cloud console, définissez l'argument scoped_access_settings approprié :
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
}
}
}
}
Remplacer la durée de session par défaut de 16 heures pour les Google Cloud applications
À partir de juin 2026, une durée de session par défaut de 16 heures a été introduite pour un sous-ensemble d' Google Cloud organisations. Cette règle par défaut n'est pas visible dans la console d'administration Google, et les Google Cloud organisations concernées doivent utiliser l'API Access Context Manager pour la remplacer pour leurs utilisateurs.
Pour remplacer cette règle par défaut et exclure ces applications du contrôle de session (en rendant la durée de session effectivement infinie), vous pouvez créer une liaison cloud avec scopedAccessSettings où sessionLengthEnabled est défini sur false pour les applications Google Cloud SDK et Google Cloud console ("Cloud Console").
gcloud
L'exemple suivant montre la configuration YAML permettant de désactiver les contrôles de session pour ces applications :
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
Créez ou mettez à jour la liaison d'accès à l'aide de ce fichier :
gcloud access-context-manager cloud-bindings create \
--organization=ORG_ID \
--group-key=GROUP_ID \
--binding-file=BINDING_FILE_PATH
Remplacez les éléments suivants :
ORG_ID: ID de l' Google Cloud organisationGROUP_ID: clé du groupe (par exemple, un groupe contenant tous les utilisateurs auxquels vous souhaitez appliquer ce remplacement)BINDING_FILE_PATH: chemin d'accès au fichier de liaison
API REST
Exemple de corps JSON de la requête API :
{
"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
}
}
}
]
}
Créez la requête POST au format suivant :
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Remplacez ORG_ID par l'ID de l' Google Cloud organisation.
Terraform
Pour spécifier que les contrôles de session doivent être désactivés pour Google Cloud SDK et le Google Cloud console, définissez l'argument scoped_access_settings approprié avec session_length_enabled = false :
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
}
}
}
}