Ative o acesso baseado em certificados para VMs

Esta página descreve como ativar o acesso baseado em certificados (CBA) para as suas Google Cloud VMs. Pode usar a CBA para proteger o acesso de dispositivos fidedignos a VMs. Google Cloud

Vista geral

A CBA para VMs usa a funcionalidade de acesso sensível ao contexto para proteger o acesso através do TLS mútuo (mTLS). Google Cloud Seguem-se os principais componentes com os quais trabalha para ativar e usar a CBA para VMs:

  • Gestor de acesso sensível ao contexto: permite-lhe criar níveis de acesso que requerem certificados quando determinam o acesso a aplicações Web.
  • Identity-Aware Proxy (IAP): o encaminhamento TCP do IAP permite-lhe estabelecer um túnel encriptado através do qual pode encaminhar SSH, RDP e outro tráfego para instâncias de VM. Além disso, uma política de IAP oferece-lhe um controlo detalhado sobre que utilizadores têm autorização para estabelecer túneis para instâncias de VMs específicas e que condições de acesso os utilizadores têm de cumprir para usar esses túneis.
  • Política do Chrome Enterprise: fornece autenticação mútua (mTLS) entre os utilizadores e as VMs quando usam o navegador Chrome.
  • CLI do Google Cloud: fornece autenticação mútua (mTLS) entre os utilizadores e as VMs quando usa a CLI gcloud.

Antes de começar

Certifique-se de que criou níveis de acesso da CBA para o seu Google Cloud projeto.

Conceda funções para aceder a VMs através do encaminhamento TCP do IAP

Tem de conceder as funções de gestão de identidade e de acesso (IAM) adequadas num projeto para permitir que os utilizadores ou os grupos de utilizadores usem o encaminhamento TCP do IAP para aceder às VMs.

A tabela seguinte mostra as funções predefinidas que tem de conceder aos administradores fidedignos para o encaminhamento TCP e tarefas relacionadas.

Tarefa Funções Mais informações
Encaminhamento TCP Utilizador do túnel protegido por IAP (roles/iap.tunnelResourceAccessor) Conceder acesso a todas as instâncias de VM num projeto ou Conceder acesso a uma VM específica
Acesso SSH Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1)
Início de sessão do SO (recomendado) Vários Configurar funções de início de sessão do SO em contas de utilizador
Use uma conta de serviço Utilizador da conta de serviço (roles/iam.serviceAccountUser) A função serviceAccountUser

Para mais informações sobre a concessão de funções para o encaminhamento de TCP do IAP, consulte o artigo Conceda funções para o encaminhamento de TCP do IAP.

Configure o acesso baseado em certificado a uma VM

Embora o IAP-TCP lhe permita conceder acesso a todas as instâncias de VM num projeto, tem de configurar o acesso baseado em certificados para cada instância de VM individual.

Para conceder a um utilizador ou a um grupo de utilizadores acesso baseado em certificado a uma VM, conceda a função roles/iap.tunnelResourceAccessor na instância de VM. Os outros papéis podem ser concedidos no projeto.

Consola

  1. Abra a página de administração do IAP e, de seguida, selecione o separador SSH e TCP Recursos.

    Aceda à página de CIs

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

  3. Clique em Adicionar principal e configure o seguinte:

    • Novos responsáveis: especifique o utilizador ou o grupo de utilizadores ao qual quer conceder acesso.
    • Selecionar uma função: selecione Cloud IAP > Utilizador do túnel protegido pelo IAP.
  4. Clique em Adicionar condição do IAM e configure uma condição:

    • Título: introduza um nome para a condição.
    • Criador de condições: selecione Nível de acesso no menu pendente Tipo de condição e, de seguida, selecione o nível de acesso baseado em certificado criado anteriormente.
  5. Clique em Guardar.

API

Para configurar o acesso baseado em certificados a uma VM, modifique o ficheiro policy.json da sua aplicação.

Consulte o artigo Gerir o acesso a recursos protegidos pelo IAP para mais informações sobre a utilização da API IAM para gerir 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. Obtenha a política IAM para a instância do Compute Engine através do método getIamPolicy. O bit de dados vazio no final transforma o pedido curl 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. Conceda a função iap.tunnelResourceAccessor e o acesso baseado em certificados aos seus principais modificando o ficheiro JSON da política IAM.

    Segue-se um exemplo de um ficheiro policy.json que concede a função iap.tunnelResourceAccessor a um grupo de administradores de instâncias de VM, dando-lhes acesso baseado em certificados a recursos de túneis protegidos pelo IAP.

    Tenha em atenção que, se um principal tiver a função Proprietário, tem autorização para usar o IAP para encaminhamento 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 um nome da política, chame o método accessPolicies.list.

    GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
    
  4. Defina o novo ficheiro policy.json através do 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}
    

Aceda a VMs através de certificados de cliente

Para aceder às VMs através de certificados de cliente, use um dos seguintes métodos.

Use certificados de cliente no navegador Chrome para aceder a VMs

  1. Configure o navegador Chrome através de uma das seguintes opções.
  2. No navegador Chrome, introduza o seguinte domínio para aceder à Google Cloud consola: console-secure.cloud.google.com.
  3. Aceda às Google Cloud VMs através do encaminhamento do IAP.

Use certificados de cliente na CLI gcloud para aceder a VMs

  1. Configure a CLI gcloud através de um dos seguintes métodos.

  2. Aceder a Google Cloud VMs através do encaminhamento do IAP.