Conexión a una instancia de Amazon EC2 mediante el punto de conexión de EC2 Instance Connect - Amazon Elastic Compute Cloud

Conexión a una instancia de Amazon EC2 mediante el punto de conexión de EC2 Instance Connect

Puede usar el punto de conexión de EC2 Instance Connect para conectarse a una instancia de Amazon EC2 que admita SSH o RDP.

Requisitos previos
  • Debe tener el permiso de IAM necesario para conectarse a un punto de conexión de EC2 Instance Connect. Para obtener más información, consulte Permisos para usar el punto de conexión de EC2 Instance Connect para conectarse a instancias.

  • El punto de conexión de EC2 Instance Connect se debe encontrar en uno de los siguientes estados:

    • create-complete para un nuevo punto de conexión

    • update-in-progress, update-complete o update-failed, para un punto de conexión existente que se modifica. Cuando se modifica un punto de conexión, este conserva su configuración original hasta que el estado cambia a update-complete.

      Si la VPC no tiene un punto de conexión de EC2 Instance Connect, puede crear uno. Para obtener más información, consulte Creación de un punto de conexión de EC2 Instance Connect.

  • El tipo de dirección IP del punto de conexión de EC2 Instance Connect debe ser compatible con el tipo de dirección IP de la instancia. Si el tipo de dirección IP del punto de conexión es de tipo doble pila, puede funcionar tanto con direcciones IPv4 como IPv6.

  • (Instancias de Linux) Para utilizar la consola de Amazon EC2 para conectarse a la instancia, o para utilizar la CLI para conectarse y hacer que EC2 Instance Connect gestione la clave efímera, la instancia debe tener instalado EC2 Instance Connect. Para obtener más información, consulte Instalación de EC2 Instance Connect.

  • Asegúrese de que el grupo de seguridad de la instancia permita el tráfico SSH entrante desde el punto de conexión de EC2 Instance Connect. Para obtener más información, consulte Reglas del grupo de seguridad de instancias de destino.

Conexión a la instancia de Linux con la consola de Amazon EC2

Puede conectarse a una instancia mediante la consola de Amazon EC2 de la siguiente manera (un cliente basado en navegador).

Para conectarse a la instancia mediante la consola de Amazon EC2
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancias).

  3. Seleccione la instancia y, a continuación, elija Connect.

  4. Elija la pestaña EC2 Instance Connect.

  5. En Tipo de conexión, elija Conectarse mediante una dirección IP privada.

  6. Elija Dirección IPv4 privada o Dirección IPv6. Las opciones disponibles dependen de las direcciones IP asignadas a la instancia. Si una opción aparece atenuada, significa que la instancia no tiene asignada una dirección IP de ese tipo.

  7. En Punto de conexión de EC2 Instance Connect, elija el ID del punto de conexión de EC2 Instance Connect.

    nota

    El punto de conexión de EC2 Instance Connect debe ser compatible con la dirección IP que haya elegido en el paso anterior. Si el tipo de dirección IP del punto de conexión es de tipo doble pila, puede funcionar tanto con direcciones IPv4 como IPv6. Para obtener más información, consulte Creación de un punto de conexión de EC2 Instance Connect.

  8. En Nombre de usuario, si la AMI que utilizó para iniciar la instancia utiliza un nombre de usuario que no sea ec2-user, introduzca el nombre de usuario correcto.

  9. En Duración máxima del túnel (segundos), ingrese la duración máxima permitida de la conexión SSH.

    La duración debe cumplir con la condición maxTunnelDuration especificada en la política de IAM. Si no se tiene acceso a la política de IAM, contáctese con su administrador.

  10. Elija Conectar. Esto abre una ventana de terminal para la instancia.

Conexión a la instancia de Linux con SSH

Puede usar SSH para conectarse a la instancia de Linux y usar el comando open-tunnel para establecer un túnel privado. Se puede utilizar open-tunnel en los modos de conexión única o múltiple. Puede especificar el ID de la instancia, una dirección IPv4 privada o una dirección IPv6.

Para obtener más información acerca del uso de la AWS CLI para conectarse a la instancia de mediante SSH, consulte Conexión mediante la AWS CLI.

El siguiente ejemplo usa OpenSSH. Puede usar cualquier otro cliente SSH que admita el modo proxy.

Conexión única de

Para permitir solo una conexión a una instancia mediante SSH y el comando open-tunnel

Utilice ssh y el comando de AWS CLI open-tunnel de la siguiente manera: El comando de proxy -o incluye el comando open-tunnel que crea el túnel privado hacia la instancia.

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

Para:

  • -i: especifique el par de claves que se usó para iniciar la instancia.

  • ec2-user@i-1234567890abcdef0: especifique el nombre de usuario de la AMI que se usó para iniciar la instancia y el ID de la instancia. En el caso de instancias con una dirección IPv6, debe especificar la dirección IPv6 en lugar del ID de la instancia.

  • --instance-id: especifique el ID de la instancia a la que se va a conectar. Como alternativa, especifique %h, que extrae el ID de instancia del usuario. En el caso de instancias con una dirección IPv6, reemplace --instance-id i-1234567890abcdef0 por --private-ip-address 2001:db8::1234:5678:1.2.3.4.

Conexión múltiple

Para permitir varias conexiones a una instancia, primero ejecute el comando de AWS CLI open-tunnel para iniciar la escucha de nuevas conexiones TCP y, a continuación, use ssh para crear una nueva conexión TCP y un túnel privado hacia la instancia.

Para permitir varias conexiones a la instancia mediante SSH y el comando open-tunnel
  1. Ejecute el siguiente comando para iniciar la escucha de nuevas conexiones TCP en el puerto especificado del equipo local.

    aws ec2-instance-connect open-tunnel \ --instance-id i-1234567890abcdef0 \ --local-port 8888

    Resultado previsto:

    Listening for connections on port 8888.
  2. En una nueva ventana de terminal, ejecute el comando ssh para crear una nueva conexión TCP y un túnel privado para la instancia.

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

    Salida esperada: en la primera ventana de terminal, aparecerá lo siguiente:

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

    Es posible que vea el siguiente código de error:

    [1] Closing tcp connection.

Conéctese a la instancia de Linux con el ID de la instancia mediante la AWS CLI

Si conoce solo el ID de la instancia, puede utilizar el comando de la CLI AWS CLI ec2-instance-connect ssh para conectarse a ella mediante un cliente SSH. Para obtener más información, consulte Conexión mediante la AWS CLI.

Requisitos previos
Para conectarse a una instancia mediante el ID de instancia y un punto de conexión de EC2 Instance Connect

Si solo conoce el ID de la instancia, use el comando ec2-instance-connect ssh de la CLI y especifique el comando ssh, el ID de la instancia y el parámetro --connection-type con el valor eice para usar un punto de conexión de EC2 Instance Connect. Si la instancia solo tiene una dirección IPv6, también debe incluir el parámetro --instance-ip con la dirección IPv6.

  • Si la instancia tiene una dirección IPv4 privada (también puede tener una dirección IPv6), use el siguiente comando y los siguientes parámetros:

    aws ec2-instance-connect ssh \ --instance-id i-1234567890example \ --os-user ec2-user \ --connection-type eice
  • Si la instancia solo tiene una dirección IPv6, incluya el parámetro --instance-ip con la dirección IPv6.

    aws ec2-instance-connect ssh \ --instance-id i-1234567890example \ --instance-ip 2001:db8::1234:5678:1.2.3.4 \ --os-user ec2-user \ --connection-type eice
sugerencia

Si se presenta un error, asegúrese de usar la versión 2 de AWS CLI. El parámetro ssh solo está disponible para la AWS CLI versión 2. Para obtener más información, consulte Información AWS CLI sobre la versión 2 en la AWS Command Line InterfaceGuía del usuario.

Conectarse a una instancia de Windows mediante RDP

Puede usar el protocolo de escritorio remoto (RDP) a través del punto de conexión de EC2 Instance Connect para conectarse a una instancia de Windows sin una dirección IPv4 pública ni un nombre de DNS público.

Para conectarse a la instancia de Windows mediante un cliente RDP
  1. Complete los pasos del 1 al 8 en Conectarse a una instancia de Windows mediante RDP. Tras descargar el archivo de escritorio de RDP en el paso 8, aparecerá el mensaje No se puede conectar, lo cual es de esperar porque la instancia no tiene una dirección IP pública.

  2. Ejecute el siguiente comando para establecer un túnel privado hacia la VPC en la que se encuentra la instancia. --remote-port debe tener el valor 3389 porque RDP usa el puerto 3389 de forma predeterminada.

    aws ec2-instance-connect open-tunnel \ --instance-id i-1234567890abcdef0 \ --remote-port 3389 \ --local-port any-port
  3. En la carpeta Descargas, busque el archivo de escritorio de RDP que descargó y arrástrelo a la ventana del cliente de RDP.

  4. Haga clic con el botón derecho en el archivo de escritorio de RDP y elija Editar.

  5. En la ventana Editar PC, ingrese localhost:local-port en Nombre del PC (la instancia a la que conectarse), donde local-port utilizará el mismo valor que en el paso 2 y, a continuación, seleccione Guardar.

    Tenga en cuenta que la siguiente captura de pantalla de la ventana Editar PC procede de Escritorio remoto de Microsoft en un Mac. Si utiliza un cliente Windows, la ventana puede ser diferente.

    El cliente RDP con el ejemplo “localhost:5555” en el campo de nombre del PC.
  6. En el cliente RDP, haga clic con el botón derecho en el PC (que acaba de configurar) y elija Conectar para conectarse a su instancia.

  7. En la solicitud, ingrese la contraseña descifrada de la cuenta de administrador.

Solución de problemas

Utilice la siguiente información para diagnosticar y solucionar los problemas comunes que pueda encontrar al utilizar el punto de conexión de EC2 Instance Connect para conectar una instancia.

No puede conectarse a su instancia

Los siguientes son los motivos habituales por los que es posible que no pueda conectarse a su instancia.

  • Grupos de seguridad: compruebe los grupos de seguridad asignados al punto de conexión de EC2 Instance Connect y su instancia. Para obtener más información acerca de las reglas de los grupos de seguridad obligatorios, consulte Grupos de seguridad para el punto de conexión de EC2 Instance Connect.

  • Estado de instancia: compruebe que la instancia esté en el estado running.

  • Par de claves: si el comando que usa para conectarse requiere una clave privada, compruebe que la instancia tenga una clave pública y que dispone de la clave privada correspondiente.

  • Permisos de IAM: compruebe que dispone de los permisos de IAM necesarios. Para obtener más información, consulte Concesión de permisos para el punto de conexión de EC2 Instance Connect.

Para obtener más consejos de solución de problemas para instancias de Linux, consulte Solución de problemas de conexión a la instancia de Linux de Amazon EC2. Para obtener más consejos de solución de problemas para instancias de Windows, consulte Solución de problemas con la conexión a la instancia de Windows de Amazon EC2.

ErrorCode: AccessDeniedException

Si aparece un error AccessDeniedException y la condición maxTunnelDuration se especifica en la política de IAM, asegúrese de especificar el parámetro --max-tunnel-duration al conectarse a una instancia. Para obtener más información sobre este parámetro, consulte open-tunnel en la Referencia de comandos de AWS CLI.