608
AWS EC2 Instance Connect es un servicio que le permite conectarse de forma segura a sus instancias EC2 mediante Secure Shell (SSH) sin necesidad de utilizar un host bastión o crear y administrar claves SSH. Con EC2 Instance Connect, puede establecer rápidamente conexiones SSH a sus instancias EC2 mediante la consola EC2 o la CLI de AWS.
EC2 Instance Connect utiliza políticas de AWS Identity and Access Management (IAM) para controlar el acceso a sus instancias EC2. Cuando usa EC2 Instance Connect a una instancia, usa sus credenciales de usuario o rol de IAM para autenticarse con AWS, y luego AWS genera una clave pública SSH de un solo uso que se envía a la instancia. La clave pública se usa para autenticar su sesión SSH, que luego se elimina cuando finaliza la sesión.
EC2 Instance Connect es una alternativa más segura al acceso SSH tradicional porque elimina la necesidad de administrar y distribuir claves SSH, lo que puede ser un riesgo para la seguridad si no se administra correctamente. Además, dado que EC2 Instance Connect no requiere un host bastión, simplifica su arquitectura y reduce el costo de administrar sus instancias EC2.
En este tutorial, analizaremos la configuración de EC2 Instance Connect en sus máquinas virtuales EC2 y probaremos la conexión mediante la consola web y la CLI.
Requisitos
- Debe tener una cuenta de AWS activa. El nivel libre cuenta es suficiente para este tutorial.
- Una instancia EC2 a la que puede acceder. Este ejemplo utilizará dos instancias EC2 para la demostración: amazonas linux 2 y ubuntu.
Instalación de EC2 Instance Connect en una instancia
Nota. Puede omitir este paso si su instancia EC2 ejecuta los siguientes sistemas operativos:
-
Amazon Linux 2 2.0.20190618 o posterior
-
Ubuntu 20.04 o posterior
Cuando lanza una instancia por primera vez, crea una nueva clave SSH o usa una existente. Esta clave SSH es necesaria para conectarse a su instancia EC2 mediante un cliente SSH para que pueda instalar el paquete de conexión de la instancia EC2.
Primero, acceda a su instancia EC2 mediante SSH utilizando su cliente SSH preferido. En este ejemplo, estoy usando el comando SSH integrado.
ssh -i aws_private_key.pem [email protected]
Instancia de Ubuntu
Ejecute los siguientes comandos para instalar EC2 Instance Connect en una instancia de Ubuntu.
Para instalar EC2 Instance Connect en una instancia de Ubuntu.
# Update the local package index sudo apt-get update # Install the ec2-instance-connect package sudo apt-get install -y ec2-instance-connect
El paquete instala cuatro scripts en /usr/share/ec2-instance-connect/.
Confirme que EC2 Instance Connect está instalado.
sudo cat /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf
La presencia de esta línea confirma que EC2 Instance Connect está correctamente instalado.
ExecStart=/usr/sbin/sshd -D -o "AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f" -o "AuthorizedKeysCommandUser ec2-instance-connect" $SSHD_OPTS
Instancia de Amazon Linux 2
Ejecute el siguiente comando para instalar EC2 Instance Connect en una instancia de Amazon Linux.
sudo yum install ec2-instance-connect
El paquete instala tres scripts en /opt/aws/bin/.
Confirme el archivo /etc/ssh/sshd_config.
sudo cat /etc/ssh/sshd_config
Si las líneas siguientes aparecen en /etc/ssh/sshd_configEC2 Instance Connect está instalado.
AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
AuthorizedKeysCommandUser ec2-instance-connect
Conéctese a la instancia EC2 Conéctese desde la consola EC2 (web)
Después de instalar EC2 Instance Connect en la instancia, ahora puede conectarse a ella. Una forma de SSH en la instancia de AWS EC2 es desde la consola de EC2.
Inicie sesión en su Consola EC2 de AWS y navegue a las instancias EC2. Seleccione la instancia a la que desea conectarse y haga clic en Conectar.
Sobre el Conectarse a la instancia página, seleccione la Conexión de instancia EC2 pestaña y haga clic en Conectar.
El CloudShell La instancia se conecta automáticamente a su instancia EC2 sin que ingrese ninguna clave o credencial SSH.
Conéctese a la instancia EC2 Conéctese desde la interfaz de línea de comandos (CLI)
El cliente SSH basado en web en la consola EC2 puede ser suficiente para algunos administradores. Pero para otros, un cliente local seguiría siendo la herramienta de facto para la gestión remota. En este caso, puede instalar EC2 Instance Connect CLI en su computadora.
Requisitos de la CLI de EC2 Instance Connect
- El puerto SSH de la instancia EC2 de destino debe estar abierto a Internet.
- Para instalar, su computadora debe tener Python y PIP instalados.
- Para usarlo, primero debe instalar y configurar la CLI de AWS.
Instale la CLI de EC2 Instance Connect
Abra una sesión de terminal en su computadora y ejecute el siguiente comando para descargar el archivo CLI de EC2 Instance Connect.
aws s3api get-object --bucket ec2-instance-connect --key cli/ec2instanceconnectcli-latest.tar.gz ec2instanceconnectcli-latest.tar.gz
Una vez el ec2instanceconnectcli-latest.tar.gz se descarga el archivo, instale el paquete usando el siguiente comando.
sudo pip install ec2instanceconnectcli-latest.tar.gz
EC2 Instance Connect ya está instalado y el mssh El comando ya está disponible. Este comando le permite conectarse a la instancia EC2 utilizando los perfiles configurados en AWS CLI.
Para usar este comando, la sintaxis es:
# For Ubuntu Instance mssh ubuntu@{instance-id}
# For Amazon Linux 2 Instance mssh ec2-user@{instance-id}
Conclusión
En conclusión, AWS EC2 Instance Connect proporciona una forma cómoda y segura de acceder a sus instancias EC2 mediante SSH. Al aprovechar el sistema AWS Identity and Access Management (IAM), puede otorgar permisos granulares a usuarios y grupos para conectarse a sus instancias. Además, EC2 Instance Connect elimina la necesidad de administrar y distribuir claves SSH, lo que facilita el mantenimiento del control de acceso y la auditabilidad.
Con EC2 Instance Connect, puede usar su cliente SSH existente para conectarse a sus instancias sin tener que configurar un host bastión ni exponer los puertos SSH a la Internet pública. Esto reduce la superficie de ataque de sus instancias y mejora la postura de seguridad de su infraestructura.
AWS EC2 Instance Connect es una poderosa herramienta que simplifica y agiliza la administración de acceso SSH para sus instancias EC2. Siguiendo los pasos descritos en esta publicación de blog, puede comenzar con EC2 Instance Connect y aprovechar sus muchos beneficios.