Estabeleça ligação a VMs Linux através do Identity-Aware Proxy

Este documento descreve como estabelecer ligação a uma instância de máquina virtual (VM) através do respetivo endereço IP interno, usando o encaminhamento TCP do Identity-Aware Proxy (IAP).

O encaminhamento TCP do IAP permite-lhe estabelecer um túnel encriptado através do qual pode encaminhar ligações SSH para VMs. Quando estabelece ligação a uma VM que usa o IAP, o IAP envolve a ligação SSH em HTTPS antes de encaminhar a ligação para a VM. Em seguida, o IAP verifica se tem as autorizações de IAM necessárias e, se tiver, concede acesso à VM.

Se precisar de estabelecer ligação a uma VM que não tenha endereços IP externos e não puder usar o IAP, reveja os outros métodos indicados em Opções de ligação para VMs apenas internas.

Antes de começar

  • Crie uma regra de firewall para ativar as ligações do IAP.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-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. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

Sistemas operativos compatíveis

Estes métodos de ligação são suportados para todas as imagens Linux públicas disponíveis no Compute Engine. Para imagens do Fedora CoreOS, tem de configurar o acesso SSH antes de poder usar estes métodos.

Estabeleça ligação a VMs

Para estabelecer ligação a uma VM, conclua os passos num dos seguintes separadores.

Consola

Encaminhe as ligações SSH através do endereço IP interno de uma VM com o SSH no navegador fazendo 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

Encaminhe ligações SSH através do endereço IP interno de uma VM com o comando gcloud compute ssh e a flag --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. Ligue-se à VM executando o seguinte comando:

    gcloud compute ssh VM-NAME \
        --tunnel-through-iap
  2. Substitua VM_NAME pelo nome da VM à qual quer estabelecer ligação.

    IAP Desktop

    Para estabelecer ligação a uma VM através do IAP Desktop, faça o seguinte:

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

    2. Abra o IAP Desktop. É apresentada a janela Adicionar projetos.

    3. Quando lhe for pedido, inicie sessão com a Conta Google que tem acesso ao projeto com as VMs às quais quer estabelecer ligação.

    4. Na janela Adicionar projetos, introduza o ID do projeto ou o nome do projeto que contém as VMs às quais quer estabelecer ligação.

    5. Na janela Project Explorer, clique novamente com o botão direito do rato no nome da VM e selecione Connect para estabelecer ligação à VM.

    App PuTTY

    Encaminhe as ligações SSH através do endereço IP interno de uma VM com o PuTTY, fazendo o seguinte:

    1. Adicione uma chave SSH à VM se ainda não o tiver feito.
    2. Se a sua estação de trabalho ainda não tiver a app PuTTY instalada, transfira os ficheiros do pacote PuTTY.
    3. Na Google Cloud consola, aceda à página Instâncias de VM e encontre o nome da VM à qual quer estabelecer ligação.

      Aceder a Instâncias de VM

    4. Abra a app PuTTY. É aberta uma janela de configuração da ligação.
    5. No campo Host Name, introduza o nome de utilizador associado à chave SSH e o nome da VM à qual quer estabelecer ligação. Use o seguinte formato:

      USERNAME@VM_NAME

      Substitua o seguinte:

      • USERNAME: o seu nome de utilizador. Se gerir as suas chaves SSH nos metadados, o nome de utilizador é o que especificou quando criou a chave SSH. Para as contas de início de sessão do SO, o nome de utilizador é definido no seu perfil do Google. Por exemplo, cloudysanfrancisco_example_com ou cloudysanfrancisco.
      • NAME: o nome da VM.
    6. No menu Category (Categoria), navegue para Connection > SSH > Auth (Ligação > SSH > Autenticação).
    7. No campo Private key file for authentication (Ficheiro de chave privada para autenticação), selecione o ficheiro de chave SSH privada que corresponde à chave pública que adicionou à VM.
    8. No menu Categoria, navegue para Ligação > Proxy.
    9. Na secção Tipo de proxy, selecione Local.
    10. No campo Comando Telnet ou comando de proxy local, introduza o seguinte comando:

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

      Substitua o seguinte:

      • VM_NAME: o nome da VM à qual quer estabelecer ligação.
      • PORT_NUMBER: a porta na qual o daemon sshd é executado. O valor predefinido PORT_NUMBER é 22.
      • PROJECT_ID: o projeto que aloja a VM à qual quer estabelecer ligação.
      • ZONE: a zona onde a VM está localizada.
    11. Clique em Abrir para estabelecer ligação à VM.

Resolução de problemas

Para encontrar métodos de diagnóstico e resolução de problemas de ligações SSH com falhas, consulte o artigo Resolução de problemas de SSH.

O que se segue?