Os controles de sessão permitem configurar a frequência com que os usuários precisam se autenticar novamente após receber o acesso e se um login completo, apenas senha ou chave de segurança de hardware é necessário.
É possível aplicar controles de sessão para:
- Implementar 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, se autentiquem novamente com mais frequência.
- Configurar sessões mais longas para determinados aplicativos Permitir que determinados aplicativos, como os baseados em contexto de IA, como o Gemini, tenham durações de sessão mais longas para preservar a janela de contexto grande 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 saber mais 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-length
para definir a duração da sessão e a flag--session-reauth-method
para especificar o método de reautenticação. Por exemplo, é possível definir um tempo de duração da sessão de 30 minutos (30m) e um método de reautorizaçãoLOGIN
,PASSWORD
ouSECURITY_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
scopedAccessSettings
em um arquivo YAML para especificar controles de sessão para aplicativos específicos usandoclientId
. Isso permite que você substitua os controles de sessão padrão para esses aplicativos. Em seguida, transmita o arquivo YAML usando o--binding-file flag
.
API
Defina os campos sessionLength
e sessionReauthMethod
no
sessionSettings object
no corpo JSON da sua solicitação POST para criar
ou atualizar uma vinculação GcpUserAccessBinding
. Use scopedAccessSettings
para
definir controles de sessão específicos do aplicativo.
Consulte Definir configurações para aplicativos específicos
para mais detalhes.
Considerações importantes ao definir controles de sessão:
- Não é possível especificar o console do Google Cloud usando
clientId
. Para aplicar controles de sessão ao console do Google Cloud , defina-o como padrão e crie exceções para outros aplicativos. - Somente a vinculação de acesso mais recente criada que corresponde à solicitação é usada ao resolver as configurações de controle de sessão.
Exemplo de configuração de política
Confira a seguir um exemplo que demonstra como criar um controle de sessão que
exige nova autenticação a cada 18 horas por padrão 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
.
gcloud
A configuração das configurações:
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
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
}
]
}
}
]
Solicitação de postagem:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings