Os controles de sessão permitem configurar a frequência com que os usuários precisam se autenticar novamente após receberem acesso e se é necessário um login completo, apenas uma senha ou uma chave de segurança de hardware.
Você pode aplicar controles de sessão para:
- Aplicar a reautenticação frequente para usuários privilegiados: exija que os 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 aplicativos compatíveis, como o console do Google Cloud , o SDK Google Cloud ou apps OAuth específicos, 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 precisa ser0sou estar entre 1 hora 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 que você substitua 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, formatada como o número de segundos seguido pors(por exemplo,3600s). O valor precisa ser0sou de3600s(1 hora) a86400s(24 horas). Se definido como0s,sessionLengthEnabledprecisa ser definido comofalseou deixado sem definição. Não é possível definirsessionLengthcomo0sesessionLengthEnabledcomotrue.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, defina o argumento session_settings para configurar os 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 falso 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, que é especificado se a credencial de autenticação for um token OAuth.
Ao definir os 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 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.
As configurações específicas do aplicativo em scopedAccessSettings substituem completamente os controles de sessão padrão (globais). Se uma configuração com escopo for definida para um aplicativo, os controles de sessão padrão não serão aplicados a ele.
Para isentar determinados aplicativos do controle de sessão quando os controles globais estiverem ativos, adicione-os explicitamente a scopedAccessSettings e defina o campo sessionLength como 0s e sessionLengthEnabled como false.
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 \
--session-length=SESSION_LENGTH \
--session-reauth-method LOGIN
Substitua:
ORG_ID: o ID da organização do Google CloudGROUP_ID: o ID exclusivo do grupo do Cloud Identity.BINDING_FILE_PATH: o caminho do arquivo de vinculação.SESSION_LENGTH: a duração da sessão. Por exemplo,18h.
Para receber o ID exclusivo do grupo, execute o seguinte comando:
gcloud identity groups describe GROUP_EMAIL
Substitua GROUP_EMAIL pelo endereço de e-mail do seu grupo.
O ID exclusivo do grupo é o valor retornado após groups/ no campo name
na saída. Por exemplo, o ID exclusivo do grupo em groups/01gf8i8311xalqg
é 01gf8i8311xalqg.
API REST
Exemplo de corpo JSON da solicitação de API:
{
"groupKey": "GROUP_ID",
"sessionSettings": {
"sessionLength": "64800s",
"sessionReauthMethod": "LOGIN",
"sessionLengthEnabled": true
},
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"clientId": "SENSITIVE_APP_ID"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "7200s",
"sessionReauthMethod": "SECURITY_KEY",
"sessionLengthEnabled": true
}
}
}
]
}
Crie a solicitação POST no seguinte formato:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Substitua ORG_ID pelo ID da organização do Google Cloud .
Terraform
Para especificar controles de sessão que se aplicam globalmente e a aplicativos específicos,
defina os argumentos session_settings e scoped_access_settings:
resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
organization_id = "ORG_ID"
group_key = "GROUP_ID"
session_settings {
session_length = "64800s"
session_length_enabled = true
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
scoped_access_settings {
scope {
client_scope {
restricted_client_application {
client_id = "CLIENT_ID"
}
}
}
active_settings {
session_settings {
session_length = "7200s"
session_length_enabled = true
session_reauth_method = "SECURITY_KEY"
use_oidc_max_age = false
}
}
}
}
Substitua:
ORG_ID: o ID numérico da organização do Google Cloud.GROUP_ID: o ID do grupo bruto da API Directory do Cloud Identity ou do Google Workspace. Não use um endereço de e-mail de grupo ou um nome de recurso do"groups/...". Em vez disso, transmita o ID bruto ou usetrimprefix(google_cloud_identity_group.example.id, "groups/").CLIENT_ID: o ID do cliente OAuth 2.0 do aplicativo.
Exemplo de configuração de política para aplicativos do Google Cloud
É possível configurar controles de reautenticação específicos para aplicativos do Google Cloud , por exemplo, exigindo SECURITY_KEY para o SDK Google Cloud e LOGIN para o console do Google Cloud . O exemplo a seguir mostra como criar um controle de sessão que
exige reautenticação a cada hora
para o SDK Google Cloud com SECURITY_KEY e a cada quatro horas para o console do Google Cloud 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 console do Google Cloud usando o campo name para identificar esses aplicativos.
Para isentar determinados aplicativos do controle de sessão, defina o
campo sessionLength 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ção do Google CloudGROUP_ID: o ID exclusivo do grupo do Cloud Identity.BINDING_FILE_PATH: o caminho do arquivo de vinculação.
API REST
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 seguinte formato:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Substitua ORG_ID pelo ID da organização do Google Cloud .
Terraform
Para especificar as configurações de duração da sessão para o SDK Google Cloud e o console do Google Cloud , defina o argumento scoped_access_settings apropriado:
resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
organization_id = "ORG_ID"
group_key = "GROUP_ID"
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
}
}
}
}
Substitua:
ORG_ID: o ID numérico da organização do Google Cloud.GROUP_ID: o ID do grupo bruto da API Directory do Cloud Identity ou do Google Workspace. Não use um endereço de e-mail de grupo ou um nome de recurso do"groups/...". Em vez disso, transmita o ID bruto ou usetrimprefix(google_cloud_identity_group.example.id, "groups/").
Substituir a duração padrão de 16 horas da sessão para aplicativos do Google Cloud
A partir de junho de 2026, uma duração de sessão padrão de 16 horas foi introduzida para um subconjunto de organizações do Google Cloud . Essa política padrão não fica visível no Google Admin Console, e as organizações do Google Cloud afetadas precisam usar a API Access Context Manager para substituí-la para os usuários.
Para substituir essa política padrão e isentar esses aplicativos do controle de sessão (tornando a duração da sessão efetivamente infinita), crie uma vinculação de nuvem com scopedAccessSettings, em que sessionLengthEnabled é definido como false para os aplicativos do SDK Google Cloud e do console do Google Cloud ("Console do Cloud").
gcloud
O exemplo a seguir mostra a configuração YAML para desativar os controles de sessão desses aplicativos:
scopedAccessSettings:
- scope:
clientScope:
restrictedClientApplication:
name: Google Cloud SDK
activeSettings:
sessionSettings:
sessionLength: 0s
sessionReauthMethod: LOGIN
sessionLengthEnabled: false
- scope:
clientScope:
restrictedClientApplication:
name: Cloud Console
activeSettings:
sessionSettings:
sessionLength: 0s
sessionReauthMethod: LOGIN
sessionLengthEnabled: false
Crie ou atualize a vinculação de acesso usando este arquivo:
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ção do Google CloudGROUP_ID: o ID exclusivo do grupo do Cloud Identity (por exemplo, o ID de um grupo que contém todos os usuários a que você quer aplicar essa substituição)BINDING_FILE_PATH: o caminho do arquivo de vinculação.
API REST
Exemplo de corpo JSON da solicitação de API:
{
"groupKey": "GROUP_ID",
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"name": "Google Cloud SDK"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "0s",
"sessionReauthMethod": "LOGIN",
"sessionLengthEnabled": false
}
}
},
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"name": "Cloud Console"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "0s",
"sessionReauthMethod": "LOGIN",
"sessionLengthEnabled": false
}
}
}
]
}
Crie a solicitação POST no seguinte formato:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Substitua ORG_ID pelo ID da organização do Google Cloud .
Terraform
Para especificar que os controles de sessão estão desativados para o SDK Google Cloud e
o console do Google Cloud , defina o argumento scoped_access_settings
adequado com session_length_enabled = false:
resource "google_access_context_manager_gcp_user_access_binding" "gcp_user_access_binding" {
organization_id = "ORG_ID"
group_key = "GROUP_ID"
scoped_access_settings {
scope {
client_scope {
restricted_client_application {
name = "Google Cloud SDK"
}
}
}
active_settings {
session_settings {
session_length = "0s"
session_length_enabled = false
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
}
}
scoped_access_settings {
scope {
client_scope {
restricted_client_application {
name = "Cloud Console"
}
}
}
active_settings {
session_settings {
session_length = "0s"
session_length_enabled = false
session_reauth_method = "LOGIN"
use_oidc_max_age = false
}
}
}
}
Substitua:
ORG_ID: o ID numérico da organização do Google Cloud.GROUP_ID: o ID do grupo bruto da API Directory do Cloud Identity ou do Google Workspace. Não use um endereço de e-mail de grupo ou um nome de recurso do"groups/...". Em vez disso, transmita o ID bruto ou usetrimprefix(google_cloud_identity_group.example.id, "groups/").