Faça a gestão das associações de acesso

Esta página explica como gerir as associações de acesso existentes, que definem como as políticas de acesso são aplicadas aos seus grupos de utilizadores. Pode ver, modificar e eliminar estas associações conforme necessário. As associações de acesso determinam como os níveis de acesso e os controlos de sessão são aplicados a um grupo de utilizadores.

Para obter informações sobre como criar associações de acesso e mais detalhes sobre os níveis de acesso e os controlos de sessão, consulte o artigo Aplique políticas a grupos de utilizadores com associações de acesso.

Veja as associações de acesso

Depois de criar as associações de acesso para um grupo de utilizadores, o acesso à Google Cloud consola e Google Cloud às APIs é controlado com base na satisfação do nível de acesso associado.

Pode ver os detalhes da associação de acesso que criou, editá-la ou eliminá-la.

Consola

  1. Na Google Cloud consola, aceda à página Access Context Manager.

    Aceda ao Gestor de acesso sensível ao contexto

  2. Se lhe for pedido, selecione um projeto. A lista de vinculações de acesso é apresentada na página do Gestor de acesso sensível ao contexto.

gcloud

  • Para ver todas as associações de acesso, execute o seguinte comando:

      gcloud access-context-manager cloud-bindings list \
       --organization ORG_ID
    

    ORG_ID: o ID da sua organização. Se a propriedade access-context-manager/organization não tiver sido definida, substitua ORG_ID na flag --organization opcional pelo ID da organização que usou quando criou a função GcpAccessAdmin.

  • Para ver os detalhes de uma associação de acesso, execute o seguinte comando:

      gcloud access-context-manager cloud-bindings describe \
      --binding=BINDING_ID
    

    BINDING_ID é o ID da vinculação de acesso ou o identificador totalmente qualificado da vinculação de acesso.

API

  • Ver todas as associações de acesso:

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • ORG_ID é o ID da organização que usou quando criou a função GcpAccessAdmin. Se a propriedade access-context-manager/organization não tiver sido definida, substitua ORG_ID na flag --organization opcional pelo ID da organização que usou quando criou a função GcpAccessAdmin.

    Método HTTP e URL:

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

    Deve receber uma resposta JSON semelhante à seguinte:

    
    {
      "name": string,
      "groupKey": string,
      "accessLevels": [
        string
      ]
      "dryRunAccessLevels": [
      string
      ]
    }
    
    

  • Veja os detalhes de uma associação de acesso:

    Método HTTP e URL:

    GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Execute o seguinte comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/BINDING_ID"

    PowerShell

    Execute o seguinte comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content

    Deve receber uma resposta JSON semelhante à seguinte:

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

Atualize uma associação de acesso

Pode atualizar uma vinculação de acesso para fazer o seguinte:

  • Adicione, remova ou altere as aplicações que têm uma política.
  • Modifique os níveis de acesso de uma aplicação num grupo de utilizadores.
  • Adicione um novo nível de acesso de teste ou promova um existente para um nível em direto.

Consola

  1. Na Google Cloud consola, aceda à página Access Context Manager.

    Aceda ao Gestor de acesso sensível ao contexto

  2. Se lhe for pedido, selecione um projeto.

  3. Na página Access Context Manager, selecione uma associação de acesso e, de seguida, clique em Editar para a atualizar.

Não pode atualizar as associações de acesso com níveis de acesso de teste ou controlos de sessão na Google Cloud consola.

gcloud

  1. Crie um ficheiro de associação YAML.

    gcloud access-context-manager cloud-bindings update
      --binding ACCESS_BINDING
      --binding-file BINDING_FILE_PATH
    [  --level DEFAULT_ACCESS_LEVEL ]
    [  --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL           ]
    [  --session-length=DEFAULT_SESSION_LENGTH                ]
    [  --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD  ]
    

    Substitua o seguinte:

    • ACCESS_BINDING está no formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • BINDING_FILE_PATH: o caminho para o ficheiro YAML que contém o esquema de associação de acesso. O ficheiro de associação só suporta scopedAccessSettings.
    • DEFAULT_ACCESS_LEVEL: o nome do nível de acesso opcional, que assume a forma accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Substitua POLICY_ID pelo ID da política de acesso e ACCESS_LEVEL_NAME pelo nome do nível de acesso.
    • DEFAULT_DRY_RUN_ACCESS_LEVEL_2: um nome de nível de acesso opcional no formato `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME`. Inclua esta flag para aplicar o nível de acesso de teste especificado a todas as aplicações por predefinição se não forem especificadas no YAML.
    • DEFAULT_SESSION_LENGTH: a duração opcional da sessão no formato de duração ISO 8601, como 30m para 30 minutos ou 2h para duas horas.
    • DEFAULT_SESSION_REAUTH_METHOD: o método opcional para desafiar os utilizadores a validarem novamente a respetiva identidade, que tem de ser um dos seguintes:
      • LOGIN: aplique o início de sessão padrão, que pode incluir a MFA ou outros fatores definidos pelo Workspace.
      • PASSWORD: só requer uma palavra-passe, mesmo que outros fatores estejam definidos. Se as palavras-passe forem geridas através de um IdP externo, os utilizadores são redirecionados para o IdP. Se a sessão do IdP estiver ativa, os utilizadores são autenticados novamente de forma implícita. Se o IdP não estiver ativo, os utilizadores têm de iniciar sessão através do IdP.
      • SECURITY_KEY: exigir uma chave de segurança de hardware.

    Como funcionam em conjunto os argumentos --level e --binding-file

    • Se usar apenas --binding-file, apenas as aplicações no ficheiro têm as políticas aplicadas.
    • Se usar apenas --level, o nível de acesso aplica-se a todas as aplicações.
    • Se usar ambas, as regras são combinadas. O valor --level aplica-se a todas as aplicações, enquanto as políticas no ficheiro YAML especificadas por --binding-file aplicam-se apenas às aplicações conforme definido no ficheiro.

    Trabalhar com controlos de sessão

    • Para definir controlos de sessão predefinidos para todas as aplicações, use --session-length e --session-reauth-method.
    • Se também definir controlos de sessão no ficheiro YAML, esses controlos de sessão substituem as predefinições para essas aplicações específicas.
    • Tem de usar o --session-length e o --session-reauth-method em conjunto.

    Para remover um nível de acesso predefinido ou um nível de acesso de teste de execução predefinido, forneça uma string vazia, como --level= ou --dry-run-level=. Quando estes argumentos não são fornecidos, o comando update não faz alterações.

    Para remover um controlo da sessão, defina --session-length=0.

API

  1. Crie um corpo JSON.

    {
      "accessLevels": [
        "DEFAULT_ACCESS_LEVEL"
      ],
      "scopedAccessSettings": [
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "clientId": "CLIENT_ID"
              }
            }
          },
          "activeSettings": {
            "accessLevels": [
              "ACCESS_LEVEL_A"
            ],
            "sessionSettings": [
              {
                "sessionLength": "SESSION_LENGTH",
                "sessionReauthMethod": "SESSION_REAUTH_METHOD",
                "sessionLengthEnabled": true
              }
            ]
        }
        },
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "name": "CLIENT_NAME"
              }
            },
            "activeSettings": {
              "accessLevels": [
                "ACCESS_LEVEL_C"
              ]
            }
          }
        }
      ]
    }
    

    Substitua o seguinte:

    • DEFAULT_ACCESS_LEVEL: o nome do nível de acesso opcional, que assume a forma accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Substitua POLICY_ID pelo ID da política de acesso e ACCESS_LEVEL_NAME pelo nome do nível de acesso.
    • CLIENT_ID: o ID de cliente OAuth. Tem de usar clientId quando uma aplicação contém sessionSettings.
    • ACCESS_LEVEL_A: um nome de nível de acesso no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
    • SESSION_LENGTH: a duração da sessão no formato de duração ISO 8601, como 30m para 30 minutos ou 2h para duas horas.
    • SESSION_REAUTH_METHOD: o método opcional para desafiar os utilizadores a validarem novamente a respetiva identidade, que tem de ser um dos seguintes:

      • LOGIN: aplique o início de sessão padrão, que pode incluir a MFA ou outros fatores definidos pelo Workspace.
      • PASSWORD: Exigir apenas uma palavra-passe, mesmo que outros fatores estejam definidos. Se as palavras-passe forem geridas através de um IdP externo, os utilizadores são redirecionados para o IdP. Se a sessão do IdP estiver ativa, os utilizadores são autenticados novamente de forma implícita. Se o IdP não estiver ativo, os utilizadores têm de iniciar sessão através do IdP.
      • SECURITY_KEY: exigir uma chave de segurança de hardware.
    • CLIENT_NAME: o nome do cliente. Se a aplicação contiver sessionSettings, não pode usar o nome do cliente. Em alternativa, use o ID de cliente OAuth.

    • ACCESS_LEVEL_C: um nome de nível de acesso no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.

  2. Envie o pedido PATCH.

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
    

    Substitua o seguinte:

    • ACCESS_BINDING está no formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • FIELD_MASK: uma lista obrigatória de campos separados por vírgulas que quer atualizar. Isto indica à API que partes da vinculação de acesso devem ser modificadas.

    fieldMask deve conter as chaves JSON de nível superior no corpo do pedido que quer atualizar, que podem conter accessLevels, dryRunAccessLevels e scopedAccessSettings.

    Se for bem-sucedido, deve receber uma representação do objeto JSON. Se existir um problema, recebe uma mensagem de erro.

Elimine vinculações de acesso

Consola

  1. Na Google Cloud consola, aceda à página Access Context Manager.

    Aceda ao Gestor de acesso sensível ao contexto

  2. Se lhe for pedido, selecione um projeto.

  3. Na página Access Context Manager, selecione uma associação de acesso e, de seguida, clique em Eliminar.

gcloud

   gcloud access-context-manager cloud-bindings delete \
       --binding ACCESS_BINDING

Substitua o seguinte:

  • ACCESS_BINDING está no formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
  • ACCESS_BINDING_NAME é a string exclusiva devolvida para o identificador name quando a associação de acesso foi criada.

API

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • ACCESS_BINDING_NAME é a string exclusiva devolvida para o identificador name quando a associação de acesso foi criada.

Método HTTP e URL:

DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME

Para enviar o seu pedido, escolha uma destas opções:

curl

Execute o seguinte comando:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"

PowerShell

Execute o seguinte comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content

Deve receber um código de estado de êxito (2xx) e uma resposta vazia.