Los controles de sesión te permiten configurar la frecuencia con la que los usuarios deben volver a autenticarse después de que se les otorga acceso y si se requiere un acceso completo, solo una contraseña o una llave de seguridad de hardware.
Puedes aplicar controles de sesión para hacer lo siguiente:
- Aplica la reautenticación frecuente para los usuarios con privilegios: Solicita a los usuarios con privilegios elevados, como los propietarios del proyecto y los administradores de facturación, que vuelvan a autenticarse con más frecuencia.
- Configura sesiones más largas para ciertas aplicaciones Permite que ciertas aplicaciones, como las aplicaciones basadas en IA contextual como Gemini, tengan duraciones de sesión más largas para conservar la gran ventana de contexto que se requiere para un rendimiento óptimo.
Define la duración de la sesión y los métodos de reautenticación
Puedes definir controles de sesión cuando creas una vinculación de Access Context Manager. Para obtener detalles sobre los controles de sesión, consulta Cómo aplicar políticas a grupos de usuarios con vinculaciones de acceso.
gcloud
-
Usa la marca
--session-length
para establecer la duración de la sesión y la marca--session-reauth-method
para especificar el método de reautenticación. Por ejemplo, puedes establecer un tiempo de duración de la sesión de 30 minutos (30 min) y un método de reautenticaciónLOGIN
,PASSWORD
oSECURITY_KEY
.Esto se aplicará a todas las aplicaciones, a menos que se anule con la configuración específica de la aplicación.
Cómo establecer controles de sesión específicos de la aplicación
Define
scopedAccessSettings
en un archivo YAML para especificar los controles de sesión de aplicaciones específicas conclientId
. Esto te permite anular los controles de sesión predeterminados para esas aplicaciones. Luego, puedes pasar el archivo YAML con--binding-file flag
.
API
Define los campos sessionLength
y sessionReauthMethod
dentro de sessionSettings object
en el cuerpo JSON de tu solicitud POST para crear o actualizar una vinculación de GcpUserAccessBinding
. Usa scopedAccessSettings
para definir controles de sesión específicos de la aplicación.
Consulta Cómo definir configuraciones para aplicaciones específicas para obtener más detalles.
Consideraciones clave para definir los controles de sesión:
- No puedes especificar la consola Google Cloud con
clientId
. Para aplicar los controles de sesión en la consola de Google Cloud , defínela como predeterminada y, luego, crea excepciones para otras aplicaciones. - Cuando se resuelven los parámetros de configuración de control de sesión, solo se usa la vinculación de acceso creada más recientemente que coincide con la solicitud.
Ejemplo de configuración de políticas
A continuación, se muestra un ejemplo que demuestra cómo crear un control de sesión que requiere la reautenticación cada 18 horas de forma predeterminada con LOGIN
y cada dos horas para una aplicación específica (SENSITIVE_APP_ID
) con SECURITY_KEY
.
Configuración predeterminada
Las marcas --level
, --session-length
y --session-reauth-method
en el comando de Google Cloud CLI (o los campos correspondientes en el cuerpo JSON de la llamada a la API) establecen el comportamiento predeterminado para todas las aplicaciones que no se definen de forma explícita en scopedAccessSettings
.
Configuración específica de la aplicación
La sección scopedAccessSettings
del archivo YAML (o cuerpo JSON) te permite anular la configuración predeterminada para aplicaciones específicas. En el ejemplo, establecemos un requisito de reautenticación de dos horas con SECURITY_KEY
para la aplicación con el ID de cliente SENSITIVE_APP_ID
.
Para eximir ciertas apps del control de sesiones, configura el campo sessionLength
como 0s
o sessionLengthEnabled
como false
. Luego, se ignorará el método sessionReauthMethod
.
gcloud
La configuración de los parámetros es la siguiente:
scopedAccessSettings:
scope:
clientScope:
restrictedClientApplication:
clientId: SENSITIVE_APP_ID
activeSettings:
sessionSettings:
sessionLength: 7200s
sessionReauthMethod: SECURITY_KEY
sessionLengthEnabled: true
Crea la vinculación de acceso:
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
Cuerpo 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
}
]
}
}
]
Solicitud POST:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings