Os controlos de sessão permitem-lhe configurar a frequência com que os utilizadores têm de fazer novamente a autenticação depois de lhes ser concedido acesso e se é necessário um início de sessão completo, apenas com palavra-passe ou com uma chave de segurança de hardware.
Pode aplicar controlos de sessão para fazer o seguinte:
- Aplique a reautenticação frequente para utilizadores privilegiados: exija que os utilizadores com privilégios elevados, como proprietários de projetos e administradores de faturação, façam a reautenticação com maior frequência.
- Configure sessões mais longas para determinadas aplicações: permita que determinadas aplicações, como as aplicações de IA baseadas no contexto, como o Gemini, tenham durações de sessão mais longas para preservar a grande capacidade de resposta necessária para um desempenho ideal.
Defina a duração da sessão e os métodos de reautenticação
Pode definir controlos de sessão quando cria uma associação do Access Context Manager. Para mais informações acerca dos controlos de sessão, consulte o artigo Aplique políticas a grupos de utilizadores através de associações de acesso.
gcloud
Defina controlos de sessão predefinidos para todas as aplicações
Use a flag
--session-lengthpara definir a duração da sessão. O valor pode variar entre 0 e 24 horas. Especifique a duração através do formato de duração ISO 8601. Por exemplo, use "12H30M5S" para definir uma sessão com uma duração de 12 horas, 30 minutos e 5 segundos. Use a flag--session-reauth-methodpara especificar o método de reautenticação. Por exemplo, pode definir um tempo de duração da sessão de 30 minutos (30 m) e um método de reautenticação deLOGIN,PASSWORDouSECURITY_KEY.Esta definição é aplicada a todas as aplicações, a menos que seja substituída por definições específicas da aplicação.
Defina controlos de sessão específicos da aplicação
Defina
scopedAccessSettingsnum ficheiro YAML para especificar controlos de sessão para aplicações específicas através declientId. Isto permite-lhe substituir os controlos de sessão predefinidos para essas aplicações. Em seguida, pode transmitir o ficheiro YAML através do comando--binding-file flag.
API
Defina os campos sessionLength e sessionReauthMethod no objeto sessionSettings no corpo JSON do seu pedido POST para criar ou atualizar uma associação GcpUserAccessBinding.
sessionLengthé a duração da sessão entre 0 e 24 horas. O valor tem de ser uma string e consistir num número inteiro entre 0 e 86 400, seguido imediatamente da letra "s".sessionReauthMethodpode serLOGIN,PASSWORDouSECURITY_KEY.- Use
scopedAccessSettingspara definir controlos de sessão específicos da aplicação. Consulte o artigo Defina configurações para aplicações específicas para ver detalhes.
Terraform
No recurso de associação de acesso do utilizador do Google Cloud do Terraform, preencha o argumento session_settings para configurar controlos gerais de duração da sessão que se aplicam a todo o tráfego do utilizador:
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 definiçõ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 de antiguidade máxima OIDC opcional, que é especificado se a credencial de autenticação for um token OAuth.
Principais considerações ao definir controlos de sessão:
- Apenas a associação de acesso criada mais recentemente que corresponda ao pedido é usada quando resolve as definições de controlo de sessão.
Exemplo de configuração de políticas
O exemplo seguinte mostra como criar um controlo de sessão que
requer reautenticação a cada 18 horas com LOGIN e a cada duas
horas para uma aplicação específica (SENSITIVE_APP_ID) com SECURITY_KEY.
Predefinições
As flags --level, --session-length e --session-reauth-method no comando da CLI do Google Cloud (ou os campos correspondentes no corpo JSON para a chamada API) definem o comportamento predefinido para todas as aplicações não definidas explicitamente em scopedAccessSettings.
Definições específicas da aplicação
A secção scopedAccessSettings no ficheiro YAML (ou no corpo JSON) permite-lhe substituir as definições predefinidas para aplicações específicas. No exemplo, definimos um requisito de reautenticação de duas horas com SECURITY_KEY para a aplicação com o ID de cliente SENSITIVE_APP_ID.
Para isentar determinadas apps do controlo da sessão, defina o campo sessionLength como 0s ou sessionLengthEnabled
para false. O método sessionReauthMethod é ignorado.
gcloud
A configuração das definições:
scopedAccessSettings:
scope:
clientScope:
restrictedClientApplication:
clientId: SENSITIVE_APP_ID
activeSettings:
sessionSettings:
sessionLength: 7200s
sessionReauthMethod: SECURITY_KEY
sessionLengthEnabled: true
Crie a associaçã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
}
]
}
}
]
Pedido de publicação:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Terraform
Para especificar uma duração da sessão para pedidos de acesso de utilizadores provenientes de "Chave do grupo" em todas as 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 da sessão para pedidos de utilizadores provenientes de um grupo Google específico que usam uma app específica, como a Google Cloud consola, preencha o argumento scoped_access_settings adequado 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
}
}
}
}