Proteger o console do Google Cloud e as APIs do Google Cloud

Neste documento, mostramos como proteger o acesso ao console do Google Cloud e às APIs do Google Cloud usando as regras baseadas em contexto.

O acesso baseado no contexto para o console do Google Cloud e as APIs do Google Cloud restringe o acesso ao console do Google Cloud e às APIs do Google Cloud com regras baseadas no contexto. Ele faz parte do BeyondCorp Enterprise e ajuda a garantir que pessoas e grupos dentro da organização que atendam aos requisitos de acesso definidos possam acessar o console do Google Cloud e as APIs do Google Cloud (incluindo o acesso da Google Cloud CLI).

Para proteger o console do Google Cloud e as APIs do Google Cloud, siga estas etapas:

  1. [Opcional] Implante a Verificação de endpoints nos dispositivos da sua organização.
  2. Crie um nível de acesso no Access Context Manager.
  3. Crie um grupo de usuários vinculados por restrições baseadas no contexto.
  4. Receba as permissões necessárias de gerenciamento de identidade e acesso.
  5. Crie uma vinculação de acesso que aplique regras com base no contexto para o console do Google Cloud e as APIs do Google Cloud.

[Opcional] Implantar a verificação de endpoints

Se você quiser proteger o acesso ao console do Google Cloud e às APIs do Google Cloud usando atributos do dispositivo, implante a Verificação de endpoints nos dispositivos da sua organização.

A Verificação de endpoints é executada como uma extensão do Chrome em computadores e laptops para usuários do MacOS, Windows e Linux. Um administrador pode implantá-lo nos dispositivos da empresa usando o Google Admin Console ou os membros da organização podem instalá-lo por conta própria.

Criar um nível de acesso

É necessário definir um nível de acesso que possa ser usado ao determinar o acesso ao console do Google Cloud e às APIs do Google Cloud criando um nível de acesso básico no Access Context Manager.

Criar um grupo de usuários

Crie um grupo de usuários que precisa estar vinculado por restrições baseadas no contexto. Todos os usuários desse grupo que também são membros da sua organização precisam atender ao nível de acesso criado anteriormente para acessar o console do Google Cloud e as APIs do Google Cloud.

Conceder as permissões necessárias do IAM

Conceda as permissões do IAM no nível da organização que serão necessárias para criar vinculações de acesso do Access Context Manager.

Console

  1. Acesse a página IAM e administrador no Console do Google Google Cloud.

    Acessar IAM e administrador

  2. Clique em Adicionar e configure o seguinte:

    • Novos membros: especifique o usuário ou grupo em que você quer conceder as permissões.
    • Selecione um papel: selecione Access Context Manager > Administrador de vinculação de acesso à nuvem.
  3. Clique em Save.

gcloud

  1. Verifique se você está autenticado com privilégios suficientes para adicionar permissões do IAM no nível da organização. Você precisa, no mínimo, do papel Administrador da organização.

    Depois de confirmar que você tem as permissões certas, faça login com:

    gcloud auth login
    
  2. Atribua o papel GcpAccessAdmin executando o seguinte comando:

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID é o ID da organização. Se você ainda não tiver o ID da organização, use o seguinte comando para encontrá-lo:

       gcloud organizations list
      
    • EMAIL é o endereço de e-mail da pessoa ou do grupo a que você quer conceder o papel.

Criar uma vinculação de acesso

Uma vinculação de acesso é um mapeamento entre o grupo de usuários criado anteriormente e o nível de acesso do Access Context Manager definido para acessar o console do Google Cloud e as APIs do Google Cloud.

É possível criar uma vinculação de acesso de uma das seguintes maneiras:

  • Vinculação de acesso entre um grupo e um nível de acesso.
  • Vinculação de acesso entre um grupo e um nível de acesso com configuração de simulação. Com a configuração de simulação, é possível criar uma vinculação de acesso entre um grupo e um nível de acesso de simulação ou entre um grupo, um nível de acesso e um nível de acesso de simulação.

Criar uma vinculação com um nível de acesso

Console

  1. Acesse a página do BeyondCorp Enterprise no console do Google Cloud.

    Acesse o BeyondCorp Enterprise

  2. Escolha uma organização e clique em Selecionar.

  3. Clique em Gerenciar acesso para escolher quais grupos de usuários terão acesso.

  4. Clique em Adicionar e configure o seguinte:

    • Grupos de participantes: especifique o grupo a que você quer conceder acesso. Somente os grupos que ainda não estiverem vinculados a um nível de acesso estarão disponíveis para seleção.
    • Selecionar níveis de acesso: escolha o nível de acesso a ser aplicado ao grupo.
  5. Clique em Save.

gcloud

Consulte a Google Cloud CLI para mais informações sobre esse e outros comandos gcloud access-context-manager cloud-bindings, incluindo outras opções de sinalização.

 gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --level ACCESS_LEVEL \
    --organization ORG_ID

Em que:

  • GROUP_ID é o ID do grupo de usuários criado anteriormente.

    Se você não tiver o ID de grupo disponível, é possível recuperá-lo chamando o método get no recurso Groups.

  • ORG_ID é o ID da organização usado ao criar o papel GcpAccessAdmin. Se a propriedade access-context-manager/organization não tiver sido definida, substitua ORG_ID na sinalização opcional --organization pelo ID da organização usada ao criar o papel GcpAccessAdmin.
  • POLICY_ID é o ID da política de acesso da organização.
  • ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.

API

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

  • ORG_ID é o ID da organização usado ao criar o papel GcpAccessAdmin.
  • GROUP_ID é o ID do grupo de usuários criado anteriormente.

    Se você não tiver o ID de grupo disponível, é possível recuperá-lo chamando o método get no recurso Groups.

  • POLICY_ID é o ID da política de acesso da organização.
  • ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | 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"
  ]
}

Criar uma vinculação de acesso com configuração de simulação

É possível criar uma vinculação de acesso com configuração de simulação para entender o impacto dos níveis de acesso no seu ambiente nos seguintes cenários:

  • Para avaliar o impacto de um nível de acesso antes de aplicá-lo, crie uma vinculação de acesso com um nível de acesso de simulação.
  • Para aplicar um nível de acesso e avaliar o impacto de um nível de acesso de simulação ao mesmo tempo, crie uma vinculação de acesso com um nível de acesso ativo e um nível de acesso de simulação.

Uma vinculação com um nível de acesso de simulação não impede o acesso, mas registra as violações desse nível. Para ver os detalhes do registro, consulte os registros de negação.

Criar uma vinculação de acesso com um nível de acesso de simulação

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key = GROUP_ID \
    --dry-run-level = DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Em que:

  • GROUP_ID é o ID do grupo de usuários criado anteriormente.

    Se você não tiver o ID de grupo disponível, é possível recuperá-lo chamando o método get no recurso Groups.

  • ORG_ID é o ID da organização usado ao criar o papel GcpAccessAdmin. Se a propriedade access-context-manager/organization não tiver sido definida, substitua ORG_ID na sinalização opcional --organization pelo ID da organização usada ao criar o papel GcpAccessAdmin.
  • POLICY_ID é o ID da política de acesso da organização.
  • DRY_RUN_ACCESS_LEVEL é o ACCESS_LEVEL para o qual você quer entender o efeito. ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.

API

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

  • ORG_ID é o ID da organização usado ao criar o papel GcpAccessAdmin.
  • GROUP_ID é o ID do grupo de usuários criado anteriormente.

    Se você não tiver o ID de grupo disponível, é possível recuperá-lo chamando o método get no recurso Groups.

  • POLICY_ID é o ID da política de acesso da organização.
  • DRY_RUN_ACCESS_LEVEL é o ACCESS_LEVEL para o qual você quer entender o efeito. ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "groupKey": "GROUP_ID",
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a esta:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",

  "dryRunAccessLevels": [
    "accessPolicies/305009197125/accessLevels/another"
  ]
}

Criar uma vinculação de acesso com um nível de acesso e um de simulação

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key = GROUP_ID \
    --level = ACCESS_LEVEL \
    --dry-run-level = DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Em que:

  • GROUP_ID é o ID do grupo de usuários criado anteriormente.

    Se você não tiver o ID de grupo disponível, é possível recuperá-lo chamando o método get no recurso Groups.

  • ORG_ID é o ID da organização usado ao criar o papel GcpAccessAdmin. Se a propriedade access-context-manager/organization não tiver sido definida, substitua ORG_ID na sinalização opcional --organization pelo ID da organização usada ao criar o papel GcpAccessAdmin.
  • POLICY_ID é o ID da política de acesso da organização.
  • ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.
  • DRY_RUN_ACCESS_LEVEL é o ACCESS_LEVEL para o qual você quer entender o efeito. ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.

API

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

  • ORG_ID é o ID da organização usado ao criar o papel GcpAccessAdmin.
  • GROUP_ID é o ID do grupo de usuários criado anteriormente.

    Se você não tiver o ID de grupo disponível, é possível recuperá-lo chamando o método get no recurso Groups.

  • POLICY_ID é o ID da política de acesso da organização.
  • ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.
  • DRY_RUN_ACCESS_LEVEL é o ACCESS_LEVEL para o qual você quer entender o efeito. ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | 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"
  ]
}

Ver os registros de negação

Depois de criar uma configuração de simulação, é possível analisar os registros para identificar onde ela nega acesso.

A tabela a seguir lista os campos de registro que podem ser usados para criar e executar a consulta a fim de receber os registros:

Nome do campo Descrição
protoPayload > authenticationInfo > principalEmail ID do e-mail do principal para o qual o acesso foi negado.
protoPayload > metadata > deniedApplications Nome do aplicativo para o qual o acesso foi negado.
protoPayload > metadata > evaluationResult O resultado da avaliação da política de acesso ativa. Valores possíveis: GRANTED ou DENIED.
protoPayload > metadata > appliedAccessLevels Os níveis de acesso aplicados exigidos pela política de acesso ativa.
protoPayload > metadata > appliedDryRunAccessLevels Os níveis de acesso aplicados exigidos pela política de acesso de simulação.
protoPayload > metadata > dryRunEvaluationResult O resultado da avaliação da política de acesso de simulação, que indica a ação pretendida quando a política de acesso é aplicada. Valores possíveis: GRANTED ou DENIED.

Para ver detalhes sobre como criar uma consulta para registros, consulte Linguagem de consulta do Logging.

Console

  1. No menu de navegação do console do Google Cloud, clique em Logging e em Explorador de registros.

    Acessar o Explorador de registros

  2. No campo Consulta, insira um filtro de consulta como o filtro a seguir e clique em Executar consulta.

    severity="ERROR" AND
    (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
     protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
     protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"
    
  3. Veja os registros em Resultados da consulta.

gcloud

Para ver registros usando a CLI gcloud, execute um comando como este:

gcloud logging read 'severity="ERROR" AND
  (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
   protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
   protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"'

Gerenciar vinculações de acesso

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

É possível visualizar os detalhes da vinculação de acesso que você criou, editá-la ou excluí-la.

Conferir vinculações de acesso

Console

É possível visualizar todas as vinculações de acesso da organização e os detalhes de uma vinculação de acesso.

gcloud

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

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

    Em que:

    ORG_ID é o ID da organização usado ao criar o papel GcpAccessAdmin. . Se a propriedade access-context-manager/organization não tiver sido definida, substitua ORG_ID na sinalização opcional --organization pelo ID da organização usada 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
    

    Em que:

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

API

  • Confira todas as vinculações de acesso:

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

    • ORG_ID é o ID da organização usado ao criar o papel GcpAccessAdmin. Se a propriedade access-context-manager/organization não tiver sido definida, substitua ORG_ID na sinalização opcional --organization pelo ID da organização usada 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
      ]
    }
    
    

  • Confira 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 vinculações de acesso

Console

Você pode atualizar uma vinculação de acesso conforme necessário.

gcloud

  • Para atualizar uma vinculação de acesso, como alterar o nível de acesso, execute o seguinte comando:

      gcloud access-context-manager cloud-bindings update \
         --binding ACCESS_BINDING \
         --level ACCESS_LEVEL
    

    Em que:

    • ACCESS_BINDING está no formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • ORG_ID é o ID da organização usado ao criar o papel GcpAccessAdmin.
    • ACCESS_BINDING_NAME é a string exclusiva retornada para o identificador name quando a vinculação de acesso foi criada.
    • Substitua o valor por ACCESS_LEVEL conforme necessário. ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.
  • Para atualizar uma vinculação de acesso com um nível de acesso de simulação, execute o seguinte comando:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Substitua o valor por DRY_RUN_ACCESS_LEVEL conforme necessário. Ele está no formato accessPolicies/POLICY_ID/accessLevels/DRY_ACCESS_LEVEL_NAME.

  • Para atualizar uma vinculação de acesso e alterar o nível de acesso e o nível de acesso de simulação, execute o seguinte comando:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
     --level=`ACCESS_LEVEL`
     --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Substitua o valor por ACCESS_LEVEL e DRY_RUN_ACCESS_LEVEL conforme necessário. ACCESS_LEVEL e DRY_RUN_ACCESS_LEVEL estão no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME, e DRY_RUN_ACCESS_LEVEL é o mesmo que ACCESS_LEVEL.

  • Para remover um nível de acesso de simulação de uma vinculação de acesso, execute o seguinte comando:

      gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=
    

API

  • Atualize uma vinculação de acesso, como para alterar o nível de acesso:

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

    • ACCESS_BINDING_NAME é a string exclusiva retornada para o identificador name quando a vinculação de acesso foi criada.
    • ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.

    Método HTTP e URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels

    Corpo JSON da solicitação:

    {
        "accessLevels": [ "ACCESS_LEVEL" ]
    }
    
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels"

    PowerShell

    Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels" | 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"
        ]
    }
    
    

  • Atualize uma vinculação de acesso com o nível de acesso de simulação:

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

    • ACCESS_BINDING_NAME é a string exclusiva retornada para o identificador name quando a vinculação de acesso foi criada.
    • DRY_RUN_ACCESS_LEVEL é o ACCESS_LEVEL para o qual você quer entender o efeito. ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.

    Método HTTP e URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    Corpo JSON da solicitação:

    {
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
    }
    
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

    Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content

    Você receberá uma resposta JSON semelhante a esta:

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

  • Atualize uma vinculação de acesso e altere o nível de acesso e o nível de acesso de simulação:

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

    • ACCESS_BINDING_NAME é a string exclusiva retornada para o identificador name quando a vinculação de acesso foi criada.
    • ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.
    • DRY_RUN_ACCESS_LEVEL é o ACCESS_LEVEL para o qual você quer entender o efeito. ACCESS_LEVEL está no formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Os valores de POLICY_ID e ACCESS_LEVEL_NAME podem ser encontrados no Access Context Manager quando você criou o nível de acesso.

    Método HTTP e URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels

    Corpo JSON da solicitação:

    {
      "accessLevels": [ "ACCESS_LEVEL" ],
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
     }
    
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels"

    PowerShell

    Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels" | 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"
      ]
    }
    
    

  • Remova um nível de acesso de simulação de uma vinculação de acesso:

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

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

    Método HTTP e URL:

    PATCH PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    Corpo JSON da solicitação:

    {
      "dryRunAccessLevels": [ ]
    }
    
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

    Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content

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

Excluir vinculações de acesso

Console

É possível excluir uma vinculação de acesso sempre que necessário.

gcloud

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

Em que:

  • 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, faça as substituições a seguir:

  • 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 de êxito (2xx) e uma resposta vazia.

Perguntas frequentes

  • Quanto tempo leva para uma vinculação de acesso recém-criada entrar em vigor?

    Isso pode levar até 24 horas.

  • O que acontecerá se eu excluir um grupo com uma vinculação de acesso?

    O grupo e a vinculação são excluídos, e todos os usuários do grupo terão acesso permitido.

  • O que acontecerá se eu excluir o nível de acesso usado em uma vinculação de acesso?

    O nível de acesso não poderá ser atendido, e todos os usuários do grupo vinculado serão negados.

  • O que acontece quando um usuário está em vários grupos que têm vinculações de acesso?

    O usuário só precisa atender ao nível de acesso de um desses grupos para conseguir acesso.

  • E os usuários que não fazem parte da minha organização?

    Qualquer pessoa que não faça parte da sua organização, mesmo que você as tenha adicionado ao grupo de usuários que precisa estar vinculado pelas restrições baseadas no contexto, não está sujeita à vinculação de acesso.

A seguir