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:
- Aplicar la reautenticación frecuente para usuarios con privilegios: Exige que los usuarios con privilegios elevados, como los propietarios de proyectos y los administradores de facturación, se vuelvan a autenticar con mayor frecuencia.
- Configurar sesiones más largas para ciertas aplicaciones: Permite que ciertas aplicaciones, como las aplicaciones de IA basadas en el contexto como Gemini, tengan duraciones de sesión más largas para preservar la gran ventana de contexto requerida para un rendimiento óptimo.
Define la duración de la sesión y los métodos de reautenticación
Puedes definir los controles de sesión cuando creas una vinculación de Access Context Manager. Para obtener más información sobre los controles de sesión, consulta Aplica políticas a grupos de usuarios con vinculaciones de acceso.
gcloud
Establece controles de sesión predeterminados para todas las aplicaciones
Usa la marca
--session-lengthpara establecer la duración de la sesión. El valor debe ser0so estar entre 1 y 24 horas. Especifica la duración en horas. Por ejemplo, usa "12h" para establecer una sesión de 12 horas de duración. Usa la marca--session-reauth-methodpara especificar el método de reautenticación. Por ejemplo, puedes establecer un tiempo de duración de la sesión de 3 horas (3h) y un método de reautenticaciónLOGIN,PASSWORDoSECURITY_KEY.Esto se aplicará a todas las aplicaciones, a menos que se anule con parámetros de configuración específicos de la aplicación.
Establece controles de sesión específicos de la aplicación
Define
scopedAccessSettingsen un archivo YAML para especificar los controles de sesión para aplicaciones específicas conclientId. Esto te permite anular los controles de sesión predeterminados para esas aplicaciones. Luego, puedes pasar el archivo YAML con la marca--binding-file flag.
API de REST
Define los campos sessionLength y sessionReauthMethod dentro del objeto sessionSettings en el cuerpo JSON de tu solicitud POST para crear o actualizar una vinculación GcpUserAccessBinding.
sessionLengthes la duración de la sesión en segundos. El valor debe ser0so estar entre 1 y 24 horas, con el formato de una cantidad de segundos seguida des(por ejemplo,3600s, que corresponde a una duración de sesión de 1 hora).sessionReauthMethodpuede serLOGIN,PASSWORDoSECURITY_KEY.- Usa
scopedAccessSettingspara definir controles de sesión específicos de la aplicación. Consulta Define configuraciones para aplicaciones específicas para obtener más detalles.
Terraform
Dentro del recurso de vinculación de acceso de usuario de Google Cloud de Terraform, propaga el argumento session_settings para configurar los controles generales de duración de la sesión que se aplican a todo el tráfico de usuarios:
session_length: Es la duración de la sesión en segundos. Por ejemplo,3600sestablece la duración de la sesión en 1 hora. Se requiere lasal final.session_length_enabled: Se establece en falso para inhabilitar la configuración de sesión especificada.session_reauth_method: Es el tipo de desafío de autenticación que se usa para actualizar las credenciales. Las opciones sonLOGIN,PASSWORDoSECURITY_KEY.use_oidc_max_age: Es un campo avanzado que se usa para configurar si la sesión respeta un parámetro opcional de antigüedad máxima de OIDC, que se especifica si la credencial de autenticación es un token de OAuth.
Cuando se definen los controles de sesión, solo se usa la vinculación de acceso creada más recientemente que coincida con la solicitud cuando se resuelven los parámetros de configuración de control de sesión.
Configuración de políticas de ejemplo
En el siguiente ejemplo, se muestra cómo crear un control de sesión que requiere la reautenticación cada 18 horas 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 en el archivo YAML (o el 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 aplicaciones del control de sesión, establece el
sessionLength campo en 0s o sessionLengthEnabled
en false. Luego, se ignorará el método sessionReauthMethod.
gcloud
En el siguiente ejemplo, se muestra la configuración de los parámetros de configuración de la sesión:
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=SESSION_LENGTH \
--session-reauth-method LOGIN
Reemplaza lo siguiente:
ORG_ID: Es el ID de la organización.GROUP_ID: Es la clave del grupo.BINDING_FILE_PATH: Es la ruta de acceso del archivo de vinculación.DEFAULT_ACCESS_LEVEL: Es el nivel de acceso predeterminado.SESSION_LENGTH: Es la duración de la sesión, por ejemplo,18h.
API de REST
Un ejemplo de cuerpo JSON de la solicitud a la API:
{
"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
}
]
}
}
]
Construye la solicitud POST en el siguiente formato:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Reemplaza ORG_ID por el ID de la organización.
Terraform
Para especificar una duración de sesión para las solicitudes de acceso de los usuarios que provienen de "Clave de grupo" en todas las aplicaciones:
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 = "3600s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
Para especificar una duración de sesión para las solicitudes de los usuarios que provienen de un Grupo de Google específico con una app específica, como la Google Cloud console, propaga el argumento scoped_access_settings adecuado con un argumento session_settings en active_settings. Los subargumentos dentro de session_settings son idénticos al argumento de nivel superior.
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 = "3600s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
}
}
}
Configuración de políticas de ejemplo para Google Cloud aplicaciones
Puedes configurar controles de reautenticación específicos de la aplicación para Google Cloud aplicaciones, por ejemplo, requerir SECURITY_KEY para el SDK de Google Cloud y LOGIN para la Google Cloud console. En el siguiente ejemplo, se muestra cómo crear un control de sesión que
requiere la reautenticación cada hora
para el SDK de Google Cloud con SECURITY_KEY, y cada 4 horas para la Google Cloud console con LOGIN.
La sección scopedAccessSettings en el archivo YAML (o el cuerpo JSON) te permite
anular la configuración predeterminada para aplicaciones específicas. En este ejemplo, establecemos un requisito de reautenticación de una hora con SECURITY_KEY para el SDK de Google Cloud y un requisito de reautenticación de cuatro horas con LOGIN para la Google Cloud consola con el campo name para identificar estas aplicaciones.
Para eximir ciertas aplicaciones del control de sesión, establece el
sessionLength campo en 0s o sessionLengthEnabled
en false. Luego, se ignorará el método sessionReauthMethod.
gcloud
En el siguiente ejemplo, se muestra la configuración de los parámetros de configuración de la sesión:
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
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
Reemplaza lo siguiente:
ORG_ID: Es el ID de la organización.GROUP_ID: Es la clave del grupo.BINDING_FILE_PATH: Es la ruta de acceso del archivo de vinculación.
API de REST
Un ejemplo de cuerpo JSON de la solicitud a la 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
}
}
}
]
}
Construye la solicitud POST en el siguiente formato:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Reemplaza ORG_ID por el ID de la organización.
Terraform
Para especificar la configuración de la duración de la sesión para el SDK de Google Cloud y la Google Cloud console, propaga el argumento scoped_access_settings adecuado:
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
}
}
}
}