Configurar controles de sessão para reautenticação

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, usar apenas uma senha ou uma chave de segurança de hardware.

É possível aplicar controles de sessão para fazer o seguinte:

  • Impor 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: permitir que aplicativos compatíveis, como o console Google Cloud , o SDK Google Cloud ou apps OAuth específicos, tenham durações de sessão mais longas para preservar a grande janela de contexto necessária para uma performance 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-length para definir a duração da sessão. O valor precisa ser 0s ou estar 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-method para 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ção LOGIN, PASSWORD ou SECURITY_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 usando clientId. Isso permite substituir os controles de sessão padrão desses aplicativos. Em seguida, transmita o arquivo YAML usando --binding-file flag.

API REST

Defina os campos sessionLength e sessionReauthMethod no objeto sessionSettings no corpo JSON da sua 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 por s (por exemplo, 3600s). O valor precisa ser 0s ou de 3600s (1 hora) a 86400s (24 horas). Se definido como 0s, sessionLengthEnabled precisará ser definido como false ou deixado sem definição. Não é possível definir sessionLength como 0s e sessionLengthEnabled como true.
  • sessionReauthMethod pode ser LOGIN, PASSWORD ou SECURITY_KEY.
  • Use scopedAccessSettings para 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, defina 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, 3600s define a duração da sessão como 1 hora. 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ão LOGIN, PASSWORD ou SECURITY_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.

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 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 no 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 estão 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 configuraçõ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 Google Cloud organização
  • GROUP_ID: a chave do grupo
  • BINDING_FILE_PATH: o caminho do arquivo de vinculação
  • SESSION_LENGTH: a duração da sessão. Por exemplo, 18h

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 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 = "{Organization ID}"
      group_key = "{Group Key}"
      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 = "SENSITIVE_APP_ID"
            }
          }
        }
        active_settings {
          session_settings {
            session_length = "7200s"
            session_length_enabled = true
            session_reauth_method = "SECURITY_KEY"
            use_oidc_max_age = false
          }
        }
      }
    }

Exemplo de configuração de política para aplicativos Google Cloud

É possível configurar controles de reautenticação específicos do aplicativo para aplicativos Google Cloud . Por exemplo, é possível exigir SECURITY_KEY para o SDK Google Cloud e LOGIN para o console 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 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 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 para false. O método sessionReauthMethod será ignorado.

gcloud

O exemplo a seguir mostra a configuração das configuraçõ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 Google Cloud organização
  • GROUP_ID: a chave do grupo
  • 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 Google Cloud .

Terraform

Para especificar as configurações de duração da sessão do SDK Google Cloud e do console Google Cloud , defina o argumento scoped_access_settings adequado:

    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
          }
        }
      }
    }

Substituir a duração padrão de 16 horas da sessão para aplicativos 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 afetadas Google Cloud precisam usar a API Access Context Manager para substituir a política 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 o SDK Google Cloud e os aplicativos do console Google Cloud ("Console do Cloud").

gcloud

O exemplo a seguir mostra a configuração YAML para desativar os controles de sessão nesses 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 Google Cloud organização
  • GROUP_ID: a chave do grupo, por exemplo, 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 Google Cloud .

Terraform

Para especificar que os controles de sessão precisam ser desativados para o SDK Google Cloud e o console Google Cloud , defina o argumento scoped_access_settings apropriado com session_length_enabled = false:

    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 = "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
          }
        }
      }
    }