Configura los controles de sesión para la reautenticación

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 otorgue 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. Exige que los usuarios con privilegios elevados, como los propietarios de proyectos y los administradores de facturación, se vuelvan a autenticar con más frecuencia.
  • Configura sesiones más largas para ciertas aplicaciones Permite que ciertas aplicaciones, como las de IA basada en el contexto, como Gemini, tengan duraciones de sesión más largas para preservar la gran ventana de contexto necesaria 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

  • Establece controles de sesión predeterminados para todas las aplicaciones

    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 una duración de la sesión de 30 minutos (30 m) y un método de reautorización LOGIN, PASSWORD o SECURITY_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 para aplicaciones específicas con clientId. Esto te permite anular los controles de sesión predeterminados de 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 GcpUserAccessBinding. Usa scopedAccessSettings para definir controles de sesión específicos de la aplicación. Consulta Define configuraciones para aplicaciones específicas para obtener más detalles.

Consideraciones clave a la hora de definir los controles de sesión:

  • No puedes especificar la consola de Google Cloud con clientId. Para aplicar controles de sesión para la consola de Google Cloud , defínelos como predeterminados y, luego, crea excepciones para otras aplicaciones.
  • Cuando se resuelve la configuración 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 políticas

A continuación, se muestra un ejemplo que demuestra cómo crear un control de sesión que requiera 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 para 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 de aplicaciones específicas. En el ejemplo, configuramos un requisito de reautenticación de dos horas con SECURITY_KEY para la aplicación con el ID de cliente SENSITIVE_APP_ID.

gcloud

Configuración de la configuración:

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

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