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 externos 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. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

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. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

gcloud

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

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  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 Conectar para se conectar à VM.

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 console do Google Cloud, 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: seu nome de usuário. Se você gerencia suas chaves SSH em metadados, o nome de usuário será aquele que você especificou quando criou a chave SSH. Para contas do Login do SO, o nome de usuário é definido no seu perfil do Google. Por exemplo, cloudysanfrancisco_example_com ou cloudysanfrancisco.
    • 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