Com os controles de sessão, você configura a frequência com que os usuários precisam se autenticar novamente depois de receber acesso e se é necessário fazer login completo, apenas com senha ou com uma chave de segurança de hardware.
É possível aplicar controles de sessão para fazer o seguinte:
- Imponha a reautenticação frequente para usuários privilegiados: exija que usuários com privilégios elevados, como proprietários de projetos e administradores de faturamento, façam a reautenticação com mais frequência.
- Configurar sessões mais longas para determinados aplicativos: permita que alguns aplicativos, como os de IA baseados em contexto, como o Gemini, tenham sessões mais longas para preservar a grande janela de contexto necessária para um desempenho ideal.
Definir a duração da sessão e os métodos de reautenticação
É possível definir controles de sessão ao criar uma vinculação do Access Context Manager. Para mais informações sobre os controles de sessão, consulte Aplicar políticas a grupos de usuários usando vinculações de acesso.
gcloud
Definir controles de sessão padrão para todos os aplicativos
Use a flag
--session-lengthpara definir a duração da sessão. O valor pode variar de 0 a 24 horas. Especifique a duração usando o formato de duração ISO 8601. Por exemplo, use "12H30M5S" para definir uma sessão de 12 horas, 30 minutos e 5 segundos. Use a flag--session-reauth-methodpara especificar o método de reautenticação. Por exemplo, é possível definir uma duração de sessão de 30 minutos (30m) e um método de reautenticaçãoLOGIN,PASSWORDouSECURITY_KEY.Isso será aplicado a todos os aplicativos, a menos que seja substituído por configurações específicas do aplicativo.
Definir controles de sessão específicos do aplicativo
Defina
scopedAccessSettingsem um arquivo YAML para especificar controles de sessão para aplicativos específicos usandoclientId. Isso permite substituir os controles de sessão padrão desses aplicativos. Em seguida, transmita o arquivo YAML usando o--binding-file flag.
API
Defina os campos sessionLength e sessionReauthMethod no objeto sessionSettings do corpo JSON da solicitação POST para criar ou atualizar uma vinculação GcpUserAccessBinding.
sessionLengthé a duração da sessão entre 0 e 24 horas. O valor precisa ser uma string e consistir em um número inteiro entre 0 e 86400, seguido imediatamente pela letra "s".sessionReauthMethodpode serLOGIN,PASSWORDouSECURITY_KEY.- Use
scopedAccessSettingspara definir controles de sessão específicos do aplicativo. Consulte Definir configurações para aplicativos específicos para mais detalhes.
Terraform
No recurso de vinculação de acesso do usuário do Terraform Google Cloud, preencha o argumento session_settings para configurar controles gerais de duração da sessão que se aplicam a todo o tráfego de usuários:
session_length: a duração da sessão em segundos. Por exemplo, 900s define a duração da sessão como 15 minutos. O "s" no final é obrigatório.session_length_enabled: defina como "false" para desativar as configurações de sessão especificadas.session_reauth_method: o tipo de desafio de autenticação usado para atualizar as credenciais. As opções sãoLOGIN,PASSWORDouSECURITY_KEY.use_oidc_max_age: um campo avançado usado para configurar se a sessão respeita um parâmetro opcional de idade máxima do OIDC, especificado se a credencial de autenticação é um token do OAuth.
Principais considerações ao definir controles de sessão:
- Somente a vinculação de acesso criada mais recentemente que corresponde à solicitação é usada ao resolver as configurações de controle de sessão.
Exemplo de configuração de política
O exemplo a seguir mostra como criar um controle de sessão que
exige reautenticação a cada 18 horas com LOGIN e a cada duas
horas para um aplicativo específico (SENSITIVE_APP_ID) com SECURITY_KEY.
Configurações padrão
As flags --level, --session-length e --session-reauth-method no
comando da Google Cloud CLI (ou os campos correspondentes no corpo JSON da
chamada de API) definem o comportamento padrão para todos os aplicativos não definidos explicitamente
em scopedAccessSettings.
Configurações específicas do aplicativo
A seção scopedAccessSettings no arquivo YAML (ou corpo JSON) permite
substituir as configurações padrão de aplicativos específicos. No exemplo, definimos um requisito de reautenticação de duas horas com SECURITY_KEY para o aplicativo com o ID do cliente SENSITIVE_APP_ID.
Para isentar determinados apps do controle de sessão, defina o campo
sessionLength como 0s ou sessionLengthEnabled
para false. O método sessionReauthMethod será ignorado.
gcloud
A configuração de configurações:
scopedAccessSettings:
scope:
clientScope:
restrictedClientApplication:
clientId: SENSITIVE_APP_ID
activeSettings:
sessionSettings:
sessionLength: 7200s
sessionReauthMethod: SECURITY_KEY
sessionLengthEnabled: true
Crie a vinculação de acesso:
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
Corpo 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
}
]
}
}
]
POST:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Terraform
Para especificar uma duração de sessão para solicitações de acesso de usuários que vêm de "Chave de grupo" em todos os apps:
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 = "1800s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
Para especificar uma duração de sessão para solicitações de usuários de um grupo do Google específico usando um app específico, como o console Google Cloud , preencha o argumento scoped_access_settings apropriado com um argumento session_settings em active_settings. Os subargumentos em session_settings são idênticos ao argumento de nível 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 = "1800s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
}
}
}