Esta página descreve como ativar o acesso baseado em certificado (CBA) para suas VMs do Google Cloud. É possível usar o CBA para proteger o acesso de dispositivos confiáveis às 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 com os quais você trabalha para ativar e usar o CBA para VMs:
- Access Context Manager: permite criar níveis de acesso que exigem certificados ao determinar o acesso a aplicativos da Web.
- Identity-Aware Proxy (IAP): o encaminhamento de TCP do IAP permite estabelecer um túnel criptografado para encaminhar SSH, RDP e 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 quais condições de acesso 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 de CBA para seu projeto do Google Cloud.
Conceder papéis para acessar VMs pelo 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 de instâncias 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 em certificado a uma VM
Embora o IAP-TCP permita conceder acesso a todas as instâncias de VM em um projeto, é necessário configurar o acesso baseado em certificado para cada instância de VM.
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
podem ser concedidas no projeto.
Console
Abra a página de administração do IAP e selecione a guia Recursos SSH e TCP.
Selecione as instâncias da VM que você quer configurar. Clique em Mostrar painel de informações se ele não estiver visível.
Clique em Adicionar principal e configure o seguinte:
- Novos principais: especifique o usuário ou grupo de usuários a que você quer conceder acesso.
- Selecione um papel: selecione Cloud IAP > Usuário de túnel protegido pelo IAP.
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 menu suspenso Tipo de condição e selecione o nível de acesso baseado em certificado criado anteriormente.
Clique em Salvar.
API
Para configurar o acesso baseado em certificado a uma VM, modifique o arquivo
policy.json
do aplicativo.
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.
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
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 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 o papel
iap.tunnelResourceAccessor
e o acesso baseado em certificado aos seus principais modificando o arquivo JSON da política do IAM.Confira a seguir um exemplo de um arquivo
policy.json
que concede o papeliap.tunnelResourceAccessor
a um grupo de administradores da instância de VM, dando a eles acesso baseado em certificado a recursos de túnel protegidos pelo IAP.Se um principal tiver o papel de proprietário, ele terá permissão para usar o 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 um nome de política, chame o método
accessPolicies.list
.GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
Defina o novo arquivo
policy.json
usando o 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}
Acessar VMs usando certificados do cliente
Para acessar VMs usando certificados do cliente, use um dos métodos a seguir.
- Usar certificados empresariais: Use esse método se você tiver uma infraestrutura de ICP.
- Usar certificados provisionados pela Verificação de endpoints: use esse método se você não tiver uma infraestrutura de PKI. A verificação de endpoint provisiona e registra automaticamente certificados autoassinados com o Google Cloud para todos os dispositivos.
Usar certificados de cliente no navegador Chrome para acessar VMs
- Configure o navegador Chrome usando uma das seguintes opções.
- No navegador Chrome, digite o seguinte domínio para acessar o
Console do Google Cloud:
console-secure.cloud.google.com
. - Acesse as VMs do Google Cloud usando Túnel do IAP.
Usar certificados de cliente na gcloud CLI para acessar VMs
Configure a CLI gcloud usando um dos métodos a seguir.
Acesse VMs do Google Cloud usando o túnel IAP.