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

Você pode se conectar a uma instância usando o console do Amazon EC2 conforme descrito a seguir.

Como se conectar à sua instância usando o cliente com base em navegador
  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. Em Nome de usuário, se a AMI que você usou para iniciar 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.

É 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.

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 --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.

É 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 Solução de problemas de conexão com a instância do Linux. Para obter dicas de solução de problemas para instâncias do Windows, consulte Solução de problemas para conexão à instância do Windows.

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.