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 haya concedido acceso, así como si se requiere un inicio de sesión completo, solo una contraseña o una llave de seguridad de hardware.
Puedes aplicar controles de sesión para hacer lo siguiente:
- Implementar la reautenticación frecuente para usuarios con privilegios: requiere que los usuarios con privilegios superiores, como los propietarios de proyectos y los administradores de facturación, se reautentiquen con más frecuencia.
- Configurar sesiones más largas para determinadas aplicaciones: permite que ciertas aplicaciones, como las aplicaciones de IA basadas en el contexto (por ejemplo, Gemini), tengan sesiones más largas para conservar la gran ventana de contexto necesaria para un rendimiento óptimo.
Definir la duración de la sesión y los métodos de reautenticación
Puedes definir controles de sesión al crear un enlace de Administrador de contextos de acceso. Para obtener más información sobre los controles de sesión, consulta el artículo Aplicar políticas a grupos de usuarios mediante enlaces de acceso.
gcloud
Definir los controles de sesión predeterminados para todas las aplicaciones
Usa la marca
--session-length
para definir la duración de la sesión y la marca--session-reauth-method
para especificar el método de reautenticación. Por ejemplo, puedes definir una duración de sesión de 30 minutos (30m) y un método de autenticación de nuevoLOGIN
,PASSWORD
oSECURITY_KEY
.Se aplicará a todas las aplicaciones, a menos que se anule con ajustes específicos de la aplicación.
Definir 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 concretas medianteclientId
. De esta forma, puedes anular los controles de sesión predeterminados de esas aplicaciones. Después, puedes transferir el archivo YAML con--binding-file flag
.
API
Define los campos sessionLength
y sessionReauthMethod
en el sessionSettings object
del cuerpo JSON de tu solicitud POST para crear o actualizar un enlace GcpUserAccessBinding
. Usa scopedAccessSettings
para
definir controles de sesión específicos de la aplicación.
Para obtener más información, consulta Definir configuraciones para aplicaciones específicas.
Aspectos clave que debes tener en cuenta al definir los controles de sesión:
- No puedes especificar la consola Google Cloud con
clientId
. Para aplicar controles de sesión en la consola Google Cloud , defínelos como predeterminados y, a continuación, crea excepciones para otras aplicaciones. - Al resolver los ajustes de control de sesión, solo se usa la vinculación de acceso creada más recientemente que coincida con la solicitud.
Ejemplo de configuración de una política
A continuación, se muestra un ejemplo de cómo crear un control de sesión que requiera una nueva autenticació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
del comando de la interfaz de línea de comandos de Google Cloud (o los campos correspondientes del cuerpo JSON de la llamada a la API) definen el comportamiento predeterminado de todas las aplicaciones que no se hayan definido explícitamente en scopedAccessSettings
.
Ajustes específicos de la aplicación
La sección scopedAccessSettings
del archivo YAML (o del cuerpo JSON) te permite
anular los ajustes predeterminados de aplicaciones concretas. En el ejemplo, hemos definido 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 a determinadas aplicaciones del control de sesiones, asigna el valor 0s
o sessionLengthEnabled
al campo sessionLength
de false
. El método sessionReauthMethod
se ignorará.
gcloud
Configuración de los ajustes:
scopedAccessSettings:
scope:
clientScope:
restrictedClientApplication:
clientId: SENSITIVE_APP_ID
activeSettings:
sessionSettings:
sessionLength: 7200s
sessionReauthMethod: SECURITY_KEY
sessionLengthEnabled: true
Crea el enlace 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