Esta página descreve como ativar o acesso baseado em certificado (CBA) para suas VMs Google Cloud . É possível usar o CBA para proteger o acesso de dispositivos confiáveis a Google Cloud VMs.
Visão geral
O CBA para VMs usa o recurso de acesso baseado no contexto Google Cloud para proteger o acesso usando o 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 do IAP oferece controle refinado sobre quais usuários têm permissão para estabelecer túneis para instâncias de VM e quais condições de acesso os usuários precisam atender para usar esses 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: fornece 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 o projeto Google Cloud .
Conceder papéis para acessar VMs pelo encaminhamento de TCP do IAP
É necessário conceder os papéis apropriados do Identity and Access Management (IAM) em um projeto para que usuários ou grupos de usuários usem o encaminhamento TCP do IAP para acessar VMs.
A tabela a seguir mostra os papéis predefinidos que você precisa conceder a administradores confiáveis para encaminhamento 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 do 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 o encaminhamento TCP do IAP, consulte Conceder papéis para o encaminhamento 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 o acesso baseado em certificado a uma VM, conceda o papel
roles/iap.tunnelResourceAccessor
na instância da 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 uma função: selecione Cloud IAP > Usuário de túnel protegido por 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 a solicitação do 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 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 seu 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 de cliente
Para acessar VMs usando certificados de cliente, use um dos seguintes métodos.
- Usar certificados corporativos: use este 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 PKI. A Verificação de endpoints provisiona e registra automaticamente certificados autoassinados com Google Cloud para cada dispositivo.
Usar certificados de cliente no navegador Chrome para acessar VMs
- Configure o navegador Chrome usando uma das seguintes opções.
- No navegador Chrome, insira o seguinte domínio para acessar o
console do Google Cloud:
console-secure.cloud.google.com
. - Acesse Google Cloud VMs usando o encapsulamento do IAP.
Usar certificados de cliente na gcloud CLI para acessar VMs
Configure a CLI gcloud usando um dos métodos a seguir.
Acesse Google Cloud VMs usando o encapsulamento do IAP.