Ativar o acesso baseado em certificado para VMs

Nesta página, descrevemos como ativar o acesso baseado em certificado (CBA) para as VMs do Google Cloud. É possível usar a CBA para proteger o acesso de de dispositivos confiáveis para VMs do Google Cloud.

Visão geral

A CBA para VMs usa o recurso de acesso baseado no contexto do Google Cloud para proteger usando TLS mútuo (mTLS). Confira a seguir os principais componentes que você usa para ativar e usar a CBA em VMs:

  • Access Context Manager: permite criar níveis de acesso que exigem certificados quando e determinar o acesso a aplicativos da Web.
  • Identity-Aware Proxy (IAP): TCP TCP encaminhamento permite estabelecer uma conexão túnel para o encaminhamento de SSH, RDP e de outros tipos de tráfego para instâncias de VM. Além disso, uma política de IAP oferece controle sobre quais usuários têm permissão para estabelecer túneis para determinadas VMs instâncias e as condições de acesso que os usuários devem atender para usar tais túneis.
  • Política do Chrome Enterprise: oferece autenticação mútua (mTLS) entre usuários e VMs ao usar o navegador Chrome.
  • Google Cloud CLI: oferece autenticação mútua (mTLS) entre usuários e VMs ao usar a CLI gcloud.

Antes de começar

Verifique se você criou níveis de acesso à CBA. para seu projeto do Google Cloud.

Conceder papéis para acessar VMs por meio do encaminhamento de TCP do IAP

Você precisa conceder os papéis apropriados do Identity and Access Management (IAM) em um projeto para permitem que usuários ou grupos de usuários usem o encaminhamento de TCP do IAP para acessar VMs.

A tabela a seguir mostra os papéis predefinidos que você precisa conceder para encaminhamento de TCP e tarefas relacionadas.

Tarefa Papéis Mais informações
Encaminhamento do TCP Usuário do túnel protegido pelo IAP (roles/iap.tunnelResourceAccessor) Conceder acesso a todas as instâncias de VM em um projeto ou Conceder acesso a uma VM específica
Acesso SSH Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1)
Login do SO (recomendado) Vários Como configurar papéis de Login do SO em contas de usuário
Usar uma conta de serviço Usuário da conta de serviço (roles/iam.serviceAccountUser) O papel serviceAccountUser

Para mais informações sobre como conceder papéis para encaminhamento de TCP do IAP, Consulte Conceder papéis para encaminhamento de TCP do IAP.

Configurar o acesso baseado no certificado a uma VM

Ainda que o IAP-TCP permita conceder acesso a todas as instâncias de VM em um é preciso configurar o acesso baseado em certificado para cada instância de VM individual.

Para conceder a um usuário ou grupo de usuários acesso baseado em certificado a uma VM, conceda roles/iap.tunnelResourceAccessor na instância de VM. As outras funções que podem ser concedidas no projeto.

Console

  1. Abra a página Administrador do IAP e selecione as opções SSH e TCP Recursos.

    Acessar a página do IAP

  2. Selecione as instâncias da VM que você quer configurar. Clique em Mostrar informações painel de informações se ele não estiver visível.

  3. Clique em Adicionar principal e configure o seguinte:

    • Novos principais: especifique o usuário ou grupo de usuários que você quer conceder acesso.
    • Selecione um papel: selecione Cloud IAP > Usuário de túnel protegido por IAP.
  4. Clique em Adicionar condição do IAM e configure uma condição:

    • Título: digite um nome para a condição.
    • Criador de condições: selecione Nível de acesso no Condition Type e selecione o tipo de acesso baseado no certificado nível criado anteriormente.
  5. Clique em Salvar.

API

Para configurar o acesso baseado no certificado a uma VM, modifique o policy.json.

Consulte Como gerenciar o acesso a recursos protegidos pelo IAP. para mais informações sobre como usar a API IAM para gerenciar políticas de acesso.

  1. Exporte as seguintes variáveis.

    export IAP_BASE_URL=https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_tunnel
    # Replace POLICY_FILE.JSON with the name of JSON file to use for setIamPolicy
    export JSON_NEW_POLICY=POLICY_FILE.JSON
    
  2. Consiga a política do IAM para a instância do Compute Engine usando o método getIamPolicy. O bit de dados vazio no final transforma o curl solicitação em POST em vez de GET.

    curl -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:getIamPolicy \
         -d ''
    
  3. Conceder o papel iap.tunnelResourceAccessor e o acesso baseado no certificado a seus principais, modificando a Arquivo JSON de política do IAM.

    Este é um exemplo de um arquivo policy.json que concede os iap.tunnelResourceAccessor a um grupo de administradores da instância de VM, concedendo acesso baseado no certificado aos recursos de túnel protegidos pelo IAP.

    Se um principal tiver o papel de proprietário, ele terá permissão para usar IAP para encaminhamento de TCP.

    {
      "policy": {
        "bindings": [
          {
            "role": "roles/iap.tunnelResourceAccessor",
            "members": ["group:instance-admins@example.com"],
            "condition": {
              "expression": "\"accessPolicies/POLICY_NAME/accessLevels/CERTIFICATE_BASED_ACCESS_LEVEL_NAME\" in request.auth.access_levels,
              "title": "CERTIFICATE_BASED_CONDITION_NAME"
            }
          }
        ]
      }
    }
    

    Para encontrar o nome da política, faça o seguinte: chamar accessPolicies.list .

    GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
    
  4. Defina o novo arquivo policy.json usando o método setIamPolicy.

    curl -i -H "Content-Type:application/json" \
              -H "Authorization: Bearer $(gcloud auth print-access-token)" \
              ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:setIamPolicy \
              -d @${JSON_NEW_POLICY}
    

Acessar VMs usando certificados do cliente

Para acessar VMs usando certificados do cliente, use um dos métodos a seguir.

Usar certificados do cliente no navegador Chrome para acessar VMs

  1. Configure o navegador Chrome usando uma das opções a seguir.
  2. No navegador Chrome, digite o seguinte domínio para acessar o Console do Google Cloud: console-secure.cloud.google.com.
  3. Acesse as VMs do Google Cloud usando Túnel do IAP.

Usar certificados do cliente na CLI gcloud para acessar VMs

  1. Configure a CLI gcloud usando um dos métodos a seguir.

  2. Acesse as VMs do Google Cloud usando o tunelamento IAP.