Configure os controlos de sessão para a reautenticação

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-length para 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-method para 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 de LOGIN, PASSWORD ou SECURITY_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 scopedAccessSettings num ficheiro YAML para especificar controlos de sessão para aplicações específicas através de clientId. 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".
  • sessionReauthMethod pode ser LOGIN, PASSWORD ou SECURITY_KEY.
  • Use scopedAccessSettings para 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ã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 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
          }
        }
      }
    }