Conexão com uma instância do Amazon EC2 usando o EC2 Instance Connect Endpoint - Amazon Elastic Compute Cloud

Conexão com uma instância do Amazon EC2 usando o EC2 Instance Connect Endpoint

É possível usar o EC2 Instance Connect Endpoint para se conectar a uma instância do Amazon EC2 compatível com SSH ou RDP.

Pré-requisitos
  • É necessário ter a permissão do IAM exigida para criar um EC2 Instance Connect Endpoint. Para ter mais informações, consulte Permissões para usar o EC2 Instance Connect Endpoint para se conectar às instâncias.

  • O EC2 Instance Connect Endpoint deve estar no estado Disponível (console) ou create-complete (AWS CLI). Caso não tenha um EC2 Instance Connect Endpoint para sua VPC, será possível criar um. Para ter mais informações, consulte Criar um EC2 Instance Connect Endpoint.

  • A instância deve ter um endereço IPv4 (privado ou público). O EC2 Instance Connect Endpoint não oferece suporte a conexões com instâncias que utilizam endereços IPv6.

  • (Instâncias do Linux) Para usar o console do Amazon EC2 para se conectar à instância ou para usar a CLI para se conectar e fazer com que o EC2 Instance Connect lide com a chave temporária, a instância deve ter o EC2 Instance Connect instalado. Para ter mais informações, consulte Instalar o EC2 Instance Connect.

  • Certifique-se de que o grupo de segurança da instância permita tráfego SSH de entrada do grupo de segurança do EC2 Instance Connect Endpoint. Para ter mais informações, consulte Regras do grupo de segurança da instância de destino.

Conectar-se à sua instância do Linux usando o console do Amazon EC2

É possível se conectar a uma instância usando o console do Amazon EC2 (um cliente baseado em navegador) conforme descrito a seguir.

Conectar-se a instâncias do Linux usando o console do Amazon EC2
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione a instância e escolha Conectar.

  4. Escolha a guia EC2 Instance Connect.

  5. Em Tipo de conexão, escolha Conectar-se usando o EC2 Instance Connect Endpoint.

  6. Em EC2 Instance Connect Endpoint, escolha o ID do EC2 Instance Connect Endpoint.

  7. Para Nome de usuário, se a AMI que você usou para executar a instância usar um nome de usuário diferente de ec2-user, insira o nome de usuário correto.

  8. Em Duração máxima do túnel (segundos), insira a duração máxima permitida para a conexão de SSH.

    A duração deve estar em conformidade com qualquer condição maxTunnelDuration especificada na política do IAM. Caso não tenha acesso à política do IAM, entre em contato com seu administrador.

  9. Selecione Conectar. Isso abrirá uma janela de terminal para sua instância.

Conectar-se à instância do Linux usando SSH

É possível usar o SSH para se conectar à sua instância de Linux e usar o comando open-tunnel para estabelecer um túnel privado. É possível usar open-tunnel no modo de conexão única ou de conexão múltipla.

Para obter mais informações sobre o uso da AWS CLI para se conectar à sua instância utilizando SSH, consulte Conectar-se usando o AWS CLI.

Os exemplos a seguir usam OpenSSH. É possível usar qualquer outro cliente SSH que ofereça suporte a um modo proxy.

Conexão única

Para permitir somente uma única conexão com uma instância usando SSH e o comando open-tunnel

Use o ssh o comando open-tunnel da AWS CLI da seguinte forma. O comando de proxy -o inclui o comando open-tunnel que cria o túnel privado para a instância.

ssh -i my-key-pair.pem ec2-user@i-0123456789example \ -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-id i-0123456789example'

Em:

  • -i: especifique o par de chaves usado para iniciar a instância.

  • ec2-user@i-0123456789example: especifique o nome do usuário da AMI que foi usada para iniciar a instância e o ID da instância.

  • --instance-id: especifique o ID da instância à qual se conectar. Como alternativa, especifique %h, que extrai o ID da instância do usuário.

Conexão múltipla

Para permitir várias conexões a uma instância, primeiro execute o comando open-tunnel da AWS CLI para começar a escutar novas conexões de TCP, e depois use o ssh para criar uma nova conexão de TCP e um túnel privado para sua instância.

Para permitir várias conexões com sua instância usando SSH e o comando open-tunnel
  1. Execute o comando a seguir para começar a escutar novas conexões de TCP na porta especificada em sua máquina local.

    aws ec2-instance-connect open-tunnel \ --instance-id i-0123456789example \ --local-port 8888

    Saída esperada

    Listening for connections on port 8888.
  2. Em uma nova janela de terminal, execute o comando ssh a seguir para criar uma nova conexão de TCP e um túnel privado para sua instância.

    ssh -i my-key-pair.pem ec2-user@localhost -p 8888

    Saída esperada: na primeira janela do terminal, você verá o seguinte:

    [1] Accepted new tcp connection, opening websocket tunnel.

    Também será possível ver o seguinte:

    [1] Closing tcp connection.

Conectar-se à sua instância do Linux usando a AWS CLI

Se você souber apenas o ID da sua instância, poderá usar o comando ec2-instance-connect da AWS CLI para se conectar à sua instância usando um cliente SSH. Para obter mais informações sobre como usar o comando ec2-instance-connect, consulte Conectar-se usando o AWS CLI.

Pré-requisitos

Instale a AWS CLI versão 2 e configure-a usando suas credenciais. Para obter mais informações, consulte Instalar ou atualizar para a versão mais recente da AWS CLI e Configurar a AWS CLI no Guia do usuário da AWS Command Line Interface. Como alternativa, abra AWS CloudShell e execute os comandos da AWS CLI em seu shell pré-autenticado.

Para se conectar a uma instância usando o ID da instância e um EC2 Instance Connect Endpoint

Se você souber apenas o ID da instância, use o comando ec2-instance-connect da CLI e especifique o comando ssh, o ID da instância e o parâmetro --connection-type com o valor eice.

aws ec2-instance-connect ssh --instance-id i-1234567890example --os-user ec2-user --connection-type eice
dica

Se receber um erro ao usar esse comando, verifique se está usando o AWS CLI versão 2. O parâmetro ssh apenas está disponível para o AWS CLI versão 2. Para obter mais informações, consulte Sobre o AWS CLI versão 2, no Guia do usuário do AWS Command Line Interface.

Conectar-se à instância do Windows no usando RDP

É possível usar o Remote Desktop Protocol (RDP) no EC2 Instance Connect Endpoint para se conectar a uma instância do Windows sem um endereço IPv4 público ou nome de DNS público.

Para se conectar à sua instância do Windows usando um cliente RDP
  1. Conclua as etapas 1 a 8 em Conectar-se à sua instância baseada no Windows usando RDP. Após fazer o download do arquivo da área de trabalho RDP na Etapa 8, você receberá uma mensagem Não foi possível se conectar, o que é esperado porque a instância não tem um endereço IP público.

  2. Execute o comando a seguir para estabelecer um túnel privado para a VPC na qual a instância está localizada. A --remote-port deve ser 3389, pois o RDP usa a porta 3389 por padrão.

    aws ec2-instance-connect open-tunnel \ --instance-id i-0123456789example \ --remote-port 3389 \ --local-port any-port
  3. Na sua pasta Downloads, localize o arquivo de área de trabalho de RDP que você baixou e arraste-o para a janela do cliente RDP.

  4. Clique com o botão direito do mouse no arquivo de área de trabalho de RDP e escolha Editar.

  5. Na janela Editar computador, para Nome do computador (a instância à qual se conectar), insira localhost:local-port, em que local-port usa o mesmo valor especificado na Etapa 2, e, em seguida, escolha Salvar.

    Observe que a captura de tela a seguir da janela Editar PC é do Microsoft Remote Desktop em um Mac. Se você estiver usando um cliente Windows, a janela pode ser diferente.

    O cliente RDP com o exemplo “localhost:5555" no campo do nome do PC.
  6. No cliente RDP, clique com o botão direito do mouse no PC (que você acabou de configurar) e escolha Conectar para se conectar à sua instância.

  7. No prompt, insira a senha descriptografada da conta do administrador.

Solução de problemas

Use as informações a seguir para ajudar a diagnosticar e corrigir problemas que podem ser encontrados ao usar o EC2 Instance Connect Endpoint para se conectar a uma instância.

Não é possível conectar-se à sua instância

A seguir estão motivos comuns pelos quais você pode não conseguir se conectar à sua instância.

  • Grupos de segurança: verifique os grupos de segurança atribuídos ao EC2 Instance Connect Endpoint e à sua instância. Para obter mais informações sobre as regras necessárias de grupo de segurança, consulte Grupos de segurança para o EC2 Instance Connect Endpoint.

  • Estado da instância:^verifique se a instância está no estado running.

  • Par de chaves: se o comando que você está usando para se conectar exigir uma chave privada, verifique se sua instância tem uma chave pública e se você tem a chave privada correspondente.

  • Permissões do IAM: verifique se você tem as permissões do IAM necessárias. Para ter mais informações, consulte Conceder permissões para usar o EC2 Instance Connect Endpoint.

Para obter mais dicas de solução de problemas para instâncias do Linux, consulte Solucionar problemas de conexão com a instância do Linux do Amazon EC2. Para obter dicas de solução de problemas para instâncias do Windows, consulte Solucionar problemas de conexão à instância do Windows do Amazon EC2.

ErrorCode: AccessDeniedException

Se você receber um erro AccessDeniedException e a condição maxTunnelDuration estiver especificada na política do IAM, certifique-se de especificar o parâmetro --max-tunnel-duration ao conectar-se a uma instância. Para obter mais informações sobre esse parâmetro, consulte open-tunnel na Referência de comandos da AWS CLI.