Gerenciar vinculações de acesso

Nesta página, explicamos como gerenciar as vinculações de acesso atuais, que definem como as políticas de acesso são aplicadas aos grupos de usuários. É possível visualizar, modificar e excluir essas vinculações conforme necessário. As vinculações de acesso determinam como os níveis de acesso e os controles de sessão são aplicados a um grupo de usuários.

Para saber como criar vinculações de acesso e mais detalhes sobre níveis de acesso e controles de sessão, consulte Aplicar políticas a grupos de usuários com vinculações de acesso.

Ver vinculações de acesso de visualização

Depois que as vinculações de acesso são criadas para um grupo de usuários, o acesso ao Google Cloud console e às Google Cloud APIs é controlado com base na satisfação do nível de acesso vinculado.

É possível visualizar, editar ou excluir os detalhes da vinculação de acesso criada.

Console

  1. No Google Cloud console do, acesse a página Access Context Manager.

    Acessar o Access Context Manager

  2. Se for solicitado, selecione um projeto. A lista de vinculações de acesso é exibida na página do Access Context Manager.

gcloud

  • Para visualizar todas as vinculaçõ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 você usou ao criar o papel GcpAccessAdmin.

  • Para visualizar os detalhes de uma vinculaçã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 dela.

API

  • Visualizar todas as vinculações de acesso:

    Antes de usar os dados da solicitação abaixo, faça estas substituições:

    • ORG_ID é o ID da organização que você usou ao criar o papel 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 você usou ao criar o papel GcpAccessAdmin.

    Método HTTP e URL:

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

    Para enviar a solicitação, 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

    Você receberá uma resposta JSON semelhante a esta:

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

  • Visualizar os detalhes de uma vinculação de acesso:

    Método HTTP e URL:

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

    Para enviar a solicitação, 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

    Você receberá uma resposta JSON semelhante a esta:

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

Atualizar uma vinculação de acesso

É possível atualizar uma vinculação de acesso para fazer o seguinte:

  • Adicionar, remover ou alterar quais aplicativos têm uma política.
  • Modificar os níveis de acesso de um aplicativo em um grupo de usuários.
  • Adicionar um novo nível de acesso de simulação ou promover um já existente para um nível ativo.

Console

  1. No Google Cloud console do, acesse a página Access Context Manager.

    Acessar o Access Context Manager

  2. Se for solicitado, selecione um projeto.

  3. Na página do Access Context Manager, selecione uma vinculação de acesso e clique em Editar para atualizá-la.

Não é possível atualizar vinculações de acesso com níveis de acesso de simulação ou controles de sessão no console. Google Cloud

gcloud

  1. Crie um arquivo de vinculaçã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:

    • ACCESS_BINDING está no formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • BINDING_FILE_PATH: o caminho para o arquivo YAML que contém o esquema de vinculação de acesso. O arquivo de vinculação oferece suporte apenas a scopedAccessSettings.
    • DEFAULT_ACCESS_LEVEL: o nome do nível de acesso opcional, que assume o formato 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 essa flag para aplicar o nível de acesso de teste especificado a todos os aplicativos por padrão, se eles não forem especificados no YAML.
    • DEFAULT_SESSION_LENGTH: a duração da sessão opcional no formato de hora, como 15h para 15 horas ou 2h para duas horas.
    • DEFAULT_SESSION_REAUTH_METHOD: o método opcional para desafiar os usuários a verificar novamente a identidade deles, que precisa ser um dos seguintes:
      • LOGIN: aplica o login padrão, que pode incluir MFA ou outros fatores definidos pelo Workspace.
      • PASSWORD: exige apenas uma senha, mesmo que outros fatores sejam definidos. Se as senhas forem gerenciadas usando um IdP externo, os usuários serão redirecionados para o IdP. Se a sessão do IdP estiver ativa, os usuários serão autenticados novamente de forma implícita. Se o IdP não estiver ativo, os usuários precisarão fazer login pelo IdP.
      • SECURITY_KEY: exige uma chave de segurança de hardware.

    Como os argumentos --level e --binding-file funcionam juntos

    • Se você usar apenas --binding-file, somente os aplicativos no arquivo terão as políticas aplicadas.
    • Se você usar apenas --level, o nível de acesso será aplicado a todos os aplicativos.
    • Se você usar os dois, as regras serão combinadas. O valor --level se aplica a todos os aplicativos, enquanto as políticas no arquivo YAML especificado por --binding-file só se aplicam aos aplicativos definidos no arquivo.

    Como trabalhar com controles de sessão

    • Para definir controles de sessão padrão para todos os aplicativos, use --session-length e --session-reauth-method.
    • Se você também definir controles de sessão no arquivo YAML, esses controles vão substituir as configurações padrão desses aplicativos específicos.
    • É necessário usar --session-length e --session-reauth-method juntos.

    Para remover um nível de acesso padrão ou um nível de acesso de simulação padrão, forneça uma string vazia, como --level= ou --dry-run-level=. Quando esses argumentos não são fornecidos, o comando update não faz nenhuma mudança.

    Para remover um controle de 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:

    • DEFAULT_ACCESS_LEVEL: o nome do nível de acesso opcional, que assume o formato 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 do cliente OAuth. É possível usar clientId ou name quando um aplicativo 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 usando o 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 usuários a verificar novamente a identidade deles, que precisa ser um dos seguintes:

      • LOGIN: aplica o login padrão, que pode incluir MFA ou outros fatores definidos pelo Workspace.
      • PASSWORD: exige apenas uma senha, mesmo que outros fatores sejam definidos. Se as senhas forem gerenciadas usando um IdP externo, os usuários serão redirecionados para o IdP. Se a sessão do IdP estiver ativa, os usuários serão autenticados novamente de forma implícita. Se o IdP não estiver ativo, os usuários precisarão fazer login pelo IdP.
      • SECURITY_KEY: exige uma chave de segurança de hardware.
    • CLIENT_NAME: o nome do cliente. É possível usar name ou clientId quando um aplicativo contém sessionSettings.

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

  2. Envie a solicitação PATCH.

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

    Substitua:

    • 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 você quer atualizar. Isso informa à API quais partes da vinculação de acesso modificar.

    fieldMask precisa conter as chaves JSON de nível superior no corpo da solicitação que você quer atualizar, que podem conter accessLevels, dryRunAccessLevels e scopedAccessSettings.

    Se não houver nenhum problema, você vai receber uma representação do objeto JSON. Se houver um problema, você vai receber uma mensagem de erro.

Excluir vinculações de acesso

Console

  1. No Google Cloud console do, acesse a página Access Context Manager.

    Acessar o Access Context Manager

  2. Se for solicitado, selecione um projeto.

  3. Na página do Access Context Manager, selecione uma vinculação de acesso e clique em Excluir.

gcloud

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

Substitua:

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

API

Antes de usar os dados da solicitação abaixo, faça estas substituições:

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

Método HTTP e URL:

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

Para enviar a solicitação, 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

Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.