Os controles de sessão permitem configurar a frequência com que os usuários precisam fazer a reautenticação depois de receber acesso e se um login completo, apenas com senha ou com uma chave de segurança de hardware é necessário.
É possível aplicar controles de sessão para fazer o seguinte:
- Impor a reautenticação frequente para usuários privilegiados: exija que usuários com privilégios elevados, como Proprietários do projeto 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 contextual, como o Gemini, tenham durações de sessão mais longas para preservar a grande janela de contexto necessária para o 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 precisa ser0sou entre 1 e 24 horas. Especifique a duração em horas. Por exemplo, use "12h" para definir uma sessão de 12 horas. Use a flag--session-reauth-methodpara especificar o método de reautenticação. Por exemplo, é possível definir uma duração da sessão de 3 horas (3h) 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 REST
Defina os campos sessionLength e sessionReauthMethod no objeto sessionSettings no corpo JSON da solicitação POST para criar ou atualizar uma vinculação GcpUserAccessBinding.
sessionLengthé a duração da sessão em segundos. O valor precisa ser0sou entre 1 e 24 horas, formatado como um número de segundos seguido pors(por exemplo,3600s, que corresponde a uma duração de sessão de 1 hora).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 Google Cloud do Terraform, preencha o argumento session_settings para configurar controles gerais de duração da sessão que se aplicam a todo o tráfego do usuário:
session_length: a duração da sessão em segundos. Por exemplo,3600sdefine a duração da sessão como 1 hora. Osno 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 honra um parâmetro de idade máxima do OIDC opcional, que é especificado se a credencial de autenticação for um token OAuth.
Ao definir controles de sessão, apenas 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 a 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 aplicativos do controle de sessão, defina o
sessionLength campo como 0s ou sessionLengthEnabled
como false. O método sessionReauthMethod será ignorado.
gcloud
O exemplo a seguir mostra a configuração das definições de sessão:
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=SESSION_LENGTH \
--session-reauth-method LOGIN
Substitua:
ORG_ID: o ID da organizaçãoGROUP_ID: a chave do grupoBINDING_FILE_PATH: o caminho do arquivo de vinculaçãoDEFAULT_ACCESS_LEVEL: o nível de acesso padrãoSESSION_LENGTH: a duração da sessão, por exemplo,18h
API REST
Um exemplo de corpo JSON da solicitação de 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
}
]
}
}
]
Crie a solicitação POST no formato a seguir:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Substitua ORG_ID pelo ID da organização.
Terraform
Para especificar uma duração de sessão para solicitações de acesso de usuários que vêm da "chave do grupo" em todos os aplicativos:
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 uma duração de sessão para solicitações de usuários que vêm de um grupo específico do Google usando um app específico, como o Google Cloud console, 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 = "3600s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
}
}
}
Exemplo de configuração de política para Google Cloud aplicativos
É possível configurar controles de reautenticação específicos do aplicativo para Google Cloud aplicativos, por exemplo, exigindo SECURITY_KEY para o SDK Google Cloud e LOGIN para o Google Cloud console. O exemplo a seguir mostra como criar um controle de sessão que
exige a reautenticação a cada hora
para o SDK Google Cloud com SECURITY_KEY, e a cada 4 horas para o Google Cloud console com LOGIN.
A seção scopedAccessSettings no arquivo YAML (ou corpo JSON) permite
substituir as configurações padrão de aplicativos específicos. Neste exemplo, definimos um requisito de reautenticação de uma hora com SECURITY_KEY para o SDK Google Cloud e um requisito de reautenticação de quatro horas com LOGIN para o Google Cloud console usando o campo name para identificar esses aplicativos.
Para isentar determinados aplicativos do controle de sessão, defina o
sessionLength campo como 0s ou sessionLengthEnabled
como false. O método sessionReauthMethod será ignorado.
gcloud
O exemplo a seguir mostra a configuração das definições de sessão:
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
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
Substitua:
ORG_ID: o ID da organizaçãoGROUP_ID: a chave do grupoBINDING_FILE_PATH: o caminho do arquivo de vinculação
API REST
Um exemplo de corpo JSON da solicitação de 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
}
}
}
]
}
Crie a solicitação POST no formato a seguir:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Substitua ORG_ID pelo ID da organização.
Terraform
Para especificar as configurações de duração da sessão para o SDK Google Cloud e o Google Cloud console, preencha o argumento scoped_access_settings apropriado:
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
}
}
}
}