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 con contraseña o con una llave de seguridad de hardware.
Puedes aplicar controles de sesión para hacer lo siguiente:
- Aplicar la reautenticación frecuente para los usuarios con privilegios: Solicita a los usuarios con privilegios elevados, como los propietarios de proyectos y los administradores de facturación, que se reautentiquen con mayor frecuencia.
- Configura sesiones más largas para ciertas aplicaciones: Permite que las aplicaciones compatibles, como la consola de Cloud de Confiance , el SDK de Google Cloud o las apps específicas de OAuth, tengan duraciones de sesión más largas para conservar 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 más información sobre los controles de sesión, consulta Aplica políticas a grupos de usuarios con vinculaciones de acceso.
gcloud
-
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. Usa la marca--session-reauth-methodpara especificar el método de reautenticación. Por ejemplo, puedes establecer una 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 la configuración específica de la aplicación.
Cómo establecer controles de sesión específicos de la aplicación
Define
scopedAccessSettingsen 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 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 Cómo definir configuraciones para aplicaciones específicas para obtener más detalles.
Terraform
Dentro del recurso Terraform Google Cloud User Access Binding, completa 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. Elsal final es obligatorio.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 coincide con la solicitud para resolver la configuración de control de sesión.
Ejemplo de configuración de políticas
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 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 aplicaciones del control de sesiones, establece el campo sessionLength 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 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: El ID de la organizaciónGROUP_ID: La clave del grupoBINDING_FILE_PATH: Es la ruta de acceso del archivo de vinculación.DEFAULT_ACCESS_LEVEL: El nivel de acceso predeterminadoSESSION_LENGTH: La duración de la sesión, por ejemplo,18h
API de REST
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
}
]
}
}
]
Crea la solicitud POST con 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, haz lo siguiente:
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 la duración de la sesión para las solicitudes de usuarios que provienen de un Grupo de Google específico y que usan una app específica, como la consola de Cloud de Confiance , completa el argumento scoped_access_settings adecuado con un argumento session_settings en active_settings. Los argumentos secundarios 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
}
}
}
}
Ejemplo de configuración de políticas para aplicaciones Cloud de Confiance by S3NS
Puedes configurar controles de reautenticación específicos de la aplicación para las aplicaciones de Cloud de Confiance by S3NS , por ejemplo, requerir SECURITY_KEY para el SDK de Google Cloud y LOGIN para la consola de Cloud de Confiance . 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 consola de Cloud de Confiance con LOGIN.
La sección scopedAccessSettings del archivo YAML (o 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 consola de Cloud de Confiance con el campo name para identificar estas aplicaciones.
Para eximir ciertas aplicaciones del control de sesiones, establece el campo sessionLength 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 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: El ID de la organizaciónGROUP_ID: La clave del grupoBINDING_FILE_PATH: Es la ruta de acceso del archivo de vinculación.
API de REST
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
}
}
}
]
}
Crea la solicitud POST con 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 consola de Cloud de Confiance , completa 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
}
}
}
}