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
Abra a página de administração do IAP e, de seguida, selecione o separador SSH e TCP Recursos.
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.
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.
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.
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.
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
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 emPOST
em vez deGET
.curl -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \ ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:getIamPolicy \ -d ''
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çãoiap.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
Defina o novo ficheiro
policy.json
através do métodosetIamPolicy
.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.
- Usar certificados empresariais: Use este método se tiver uma infraestrutura de PKI.
- Usar certificados aprovisionados da validação de pontos finais: use este método se não tiver uma infraestrutura de PKI. A validação de pontos finais aprovisiona e regista automaticamente certificados autoassinados com o Google Cloud para todos os dispositivos.
Use certificados de cliente no navegador Chrome para aceder a VMs
- Configure o navegador Chrome através de uma das seguintes opções.
- No navegador Chrome, introduza o seguinte domínio para aceder à
Google Cloud consola:
console-secure.cloud.google.com
. - Aceda às Google Cloud VMs através do encaminhamento do IAP.
Use certificados de cliente na CLI gcloud para aceder a VMs
Configure a CLI gcloud através de um dos seguintes métodos.
Aceder a Google Cloud VMs através do encaminhamento do IAP.