Conectar-se a VMs do Linux usando o Identity-Aware Proxy

Neste documento, descrevemos como se conectar a uma instância de máquina virtual (VM) usando o endereço IP interno dela usando o encaminhamento de TCP do Identity-Aware Proxy (IAP).

O encaminhamento de TCP do IAP permite que você estabeleça um túnel criptografado para encaminhar conexões SSH para VMs. Quando você se conecta a uma VM que usa o IAP, o IAP encapsula a conexão SSH no HTTPS antes de encaminhar a conexão à VM. Em seguida, o IAP verifica se você tem as permissões necessárias do IAM e, se tiver, concede acesso à VM.

Se você precisar se conectar a uma VM que não tenha endereços IP externo e não puder usar o IAP, analise os outros métodos listados em Opções de conexão para VMs somente internas.

Antes de começar

  • Crie uma regra de firewall para ativar as conexões do IAP.
  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a Cloud de Confiance by S3NS serviços e APIs do. Para executar código ou exemplos em um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o Cloud de Confiance console para acessar Cloud de Confiance by S3NS serviços e APIs, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:

      gcloud init
  • Defina uma região e uma zona padrão.

Sistemas operacionais compatíveis

Esses métodos de conexão são compatíveis com todas as imagens públicas do Linux disponíveis no Compute Engine. Para imagens do Fedora CoreOS, é necessário configurar o acesso SSH antes de usar esses métodos.

Conectar-se às VMs

Para se conectar a uma VM, conclua as etapas em uma das guias a seguir.

Console

Para encapsular conexões SSH pelo endereço IP interno de uma VM usando o SSH no navegador, faça o seguinte:

  1. No Cloud de Confiance console do, acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Na lista de instâncias de máquina virtual, clique em SSH na linha de instância a que você quer se conectar.

gcloud

Faça o encapsulamento de conexões SSH pelo endereço IP interno de uma VM usando o gcloud compute ssh comando com a --tunnel-through-iap sinalização:

    No Cloud de Confiance console do, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte de baixo do Cloud de Confiance console do, uma Cloud Shell sessão é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  1. Conecte-se à VM executando o seguinte comando:

    gcloud compute ssh VM-NAME \
        --tunnel-through-iap
  2. Substitua VM_NAME pelo nome da VM a que você quer se conectar.

IAP Desktop

Para se conectar a uma VM usando o IAP Desktop, faça o seguinte:

  1. Instale o IAP Desktop na sua estação de trabalho, se ainda não tiver feito isso.

  2. Abra o IAP Desktop. A janela Adicionar projetos será aberta.

  3. Quando solicitado, faça login usando a Conta do Google que tem acesso ao projeto com as VMs a que você quer se conectar.

  4. Na janela Adicionar projetos, insira o ID ou o nome do projeto que contém as VMs a que você quer se conectar.

  5. Na janela Project Explorer, clique com o botão direito do mouse no nome da VM novamente e selecione Connect para se conectar à VM.

Clientes OpenSSH

Conecte-se a uma VM que não tem um endereço IP externo usando SSH por um túnel IAP. É possível gravar seu próprio arquivo de configuração SSH (~/.ssh/config) para que ferramentas como o VS Code ou o cliente OpenSSH possam se conectar sem problemas.

  1. Gere e propague suas chaves SSH conectando-se à VM pelo menos uma vez executando o gcloud compute ssh comando:

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME --tunnel-through-iap

    Verifique se a conexão foi estabelecida e saia.

  2. Abra ou crie o arquivo de configuração SSH na estação de trabalho local. Esse arquivo normalmente está localizado em ~/.ssh/config no Linux e macOS ou %USERPROFILE%\.ssh\config no Windows.

  3. Anexe uma entrada de configuração para sua VM adicionando o bloco a seguir ao arquivo de configuração SSH:

    Host VM_NAME
        HostName VM_NAME
        IdentityFile PATH_TO_PRIVATE_KEY
        ProxyCommand gcloud compute start-iap-tunnel %h %p --listen-on-stdin --project=PROJECT_ID --zone=ZONE --verbosity=warning
        User USERNAME

    Substitua:

    • VM_NAME: o nome da VM a que você quer se conectar.
    • PATH_TO_PRIVATE_KEY: o caminho para o arquivo de chave privada, normalmente ~/.ssh/google_compute_engine.
    • PROJECT_ID: o ID do projeto que contém a VM.
    • ZONE: a zona em que a VM está localizada.
    • USERNAME: o nome de usuário na VM (por exemplo, o nome de usuário do Login do SO do Google Cloud ou o nome de usuário de metadados).
  4. Conecte-se à VM no terminal local ou no cliente SSH executando o seguinte comando:

    ssh VM_NAME

App PuTTY

Faça o encapsulamento de conexões SSH por meio do endereço IP interno de uma VM usando o PuTTY. Para isso, faça o seguinte:

  1. Adicione uma chave SSH à VM, se ainda não tiver feito isso.
  2. Se a estação de trabalho ainda não tiver o app PuTTY instalado, faça o download dos arquivos do pacote PuTTY.
  3. No Cloud de Confiance console do, acesse a página Instâncias de VM e encontre o nome da VM a que você quer se conectar.

    Acessar instâncias de VM

  4. Abra o app PuTTY. Uma janela de configuração de conexão será aberta.
  5. No campo Host Name, insira o nome de usuário associado à chave SSH e o nome da VM à qual você quer se conectar. Use o seguinte formato:

    USERNAME@VM_NAME

    Substitua:

    • USERNAME: o nome de usuário será aquele que você especificou quando criou a chave SSH.
    • NAME: o nome da VM.
  6. No menu Category, navegue até Connection > SSH > Auth.
  7. No campo Arquivo de chave privada para autenticação, selecione o arquivo da chave SSH privada que corresponde à chave pública adicionada à VM.
  8. No menu Categoria, navegue até Conexão > Proxy.
  9. Na seção Tipo de proxy, selecione Local.
  10. No campo Comando Telnet ou comando proxy local, digite este comando:

    gcloud.cmd compute start-iap-tunnel VM_NAME PORT_NUMBER --listen-on-stdin --project=PROJECT_ID --zone=ZONE

    Substitua:

    • VM_NAME: o nome da VM a que você quer se conectar.
    • PORT_NUMBER: a porta em que o daemon sshd é executado. O padrão PORT_NUMBER é 22.
    • PROJECT_ID: o projeto que hospeda a VM a que você quer se conectar.
    • ZONE: é a zona em que a VM está localizada
  11. Clique em Abrir para se conectar à VM.

Solução de problemas

Para encontrar métodos de diagnóstico e resolução de conexões SSH com falha, consulte Solução de problemas de SSH.

A seguir