Estoy tratando de usar AWS Systems Manager Session Manager para conectarme a mis instancias EC2.
Estas son instancias EC2 privadas, sin IP pública, ubicadas en una subred privada en una VPC con acceso a Internet a través de una puerta de enlace NAT.
Las ACL de red están completamente abiertas (tanto entrantes como salientes), pero no hay ningún grupo de seguridad que permita el acceso SSH a las instancias.
Revisé todos los requisitos previos de Session Manager (agente de SSM, AMI de Amazon Linux 2); sin embargo, cuando intento conectarme a una instancia a través de la consola de AWS, aparece una señal de advertencia roja que dice: " No pudimos conectarnos a su ejemplo Las razones comunes para esto incluyen ".
Luego, si agrego un grupo de seguridad a la instancia que permite el acceso SSH (puerto de entrada 22) y espero unos segundos, repito el mismo procedimiento de conexión y no aparece la advertencia roja y puedo conectarme a la instancia.
Aunque sé que estas instancias son seguras (no tienen IP pública y están ubicadas en una subred privada), abrirles el puerto SSH no es un requisito que esperaría de Session Manager. De hecho, la documentación oficial dice que uno de sus beneficios es: " No hay puertos de entrada abiertos y no es necesario administrar hosts bastión o claves SSH ".
Busqué publicaciones relacionadas pero no pude encontrar nada específico. ¿Alguna idea de lo que me podría estar perdiendo?
¡Gracias!
Asegúrese de estar utilizando la consola de Session Manager , no la consola EC2 para establecer la sesión.
Por mi propia experiencia, sé que a veces usar la opción "Conectar" de EC2 Console no funciona al principio.
Sin embargo, si va a la consola de AWS Systems Manager y luego a Session Manager , podrá Start session en su instancia. Esto supone que su agente de SSM, su rol y su conectividad a Internet están configurados correctamente. En caso afirmativo, debería poder ver las instancias administradas de SSM para las cuales iniciar su sesión de ssh.
Además, el grupo de seguridad debe permitir conexiones salientes . Los ssh entrantes no son necesarios si configura todo correctamente.
A pesar de lo que dice toda la documentación, debe habilitar la entrada HTTPS y funcionará.
Gracias por su respuesta. Intenté conectarme usando la consola de Session Manager en lugar de la consola EC2 y no funcionó. En realidad, recibo la advertencia roja solo la primera vez que intento conectarme sin el puerto SSH abierto. Luego asigno un grupo de seguridad con acceso entrante al puerto 22 y puedo conectarme. Ahora, cuando elimino el grupo de seguridad e intento conectarme nuevamente, no aparece la advertencia roja en la consola sino una pantalla en blanco, no pasa nada y no puedo ingresar.
Dicho esto, descubrí que mis instancias EC2 no tenían ningún puerto de salida abierto en los grupos de seguridad. Abrí todo el rango de puertos TCP para la salida, sin abrir SSH de entrada y pude conectarme. Luego restringí un poco el rango de puertos de salida: intenté abrir solo el rango efímero (puertos reservados bloqueados) y ese problema volvió a surgir.
Mi conclusión es que todo el rango de puertos TCP debe abrirse para la salida. Esto es mejor que abrir el puerto SSH 22 para la entrada, pero hay algo que todavía no entiendo del todo. Es razonable que se necesiten puertos de salida para establecer la conexión y comunicarse con la instancia, pero ¿por qué puertos reservados? ¿El lado del servidor SSH usa un puerto reservado para la conexión hacia atrás?