- ¿Cómo ejecutar comandos en EC2 sin abrir SSH?
- Prerrequisitos y arquitectura general
- Configuración del rol y la política de IAM necesarios
- Instalación y comprobación del agente SSM en distribuciones comunes de Linux
- Ejecución de comandos con Run Command (ejemplo de CLI de AWS)
- Uso del Administrador de sesiones para acceso interactivo y reenvío de puertos
- Administrar salidas y registros (CloudWatch/S3)
- Escenarios prácticos y ejemplos
- Consejos de seguridad y mejores prácticas
- Errores comunes y solución de problemas
- Resumen y cómo utilizar nuestros servicios
- Pasos sugeridos para comenzar
- Preguntas frecuentes
¿Cómo ejecutar comandos en EC2 sin abrir SSH?
Ejecutar comandos de forma remota en una instancia EC2 con AWS Systems Manager Un método Seguro, Escalable Y sin necesidad de abrir un puerto SSH para ejecutar comandos en instancias EC2. Esta guía proporciona una implementación paso a paso, prerrequisitos, ejemplos de comandos de la CLI de AWS, configuración de IAM y consejos prácticos de seguridad para administradores de sitios, DevOps e ingenieros de red.
Prerrequisitos y arquitectura general
Para poder ejecutar comandos de forma remota en EC2, se requieren tres componentes principales:
- El agente SSM está instalado y ejecutándose en EC2.
- EC2 tiene un perfil de instancia IAM que tiene las políticas mínimas requeridas para registrarse y comunicarse con Systems Manager (Núcleo de instancia administrada de Amazon SSM).
- Conectividad de red a los servicios SSM (a través de Internet o puntos finales de VPC para SSM/EC2Messages/SSM-SessionManager).
Arquitectura: Usuario o script de la consola de AWS o comando AWS CLI/SDK Comando Ejecutar O inicio de sesión Llamadas → Systems Manager envía el mensaje al Agente SSM en EC2 → El Agente ejecuta el comando y devuelve la salida a CloudWatch/S3 o el resultado de la llamada.
Una nota sobre el acceso a la red
Si EC2 está en una subred privada sin NAT, utilice Puntos finales de VPC Para com.amazonaws. .ssm, mensajes ec2, mensajes ssmmessages y s3 Usar.
Configuración del rol y la política de IAM necesarios
Cree un rol de IAM para EC2 y adjunte la política administrada de AWS:
Política de confianza (entidad de confianza para EC2):
{
"Version":"2012-10-17",
"Statement":[{"Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"},"Action":"sts:AssumeRole"}]
}Adjuntar política administrada: Núcleo de instancia administrada de Amazon SSM
aws iam create-role --role-name SSMInstanceRole --assume-role-policy-document file://trust-policy.json
aws iam attach-role-policy --role-name SSMInstanceRole --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCoreEsta política incluye los permisos necesarios para registrar y enviar registros a SSM. Para almacenar resultados en S3 o usar KMS para el cifrado, también debe agregar permisos para escribir en ese bucket de S3 y usar la clave KMS.
Luego, convierta este rol en un perfil de instancia y conéctelo a EC2.
Instalación y comprobación del agente SSM en distribuciones comunes de Linux
Para Amazon Linux 2:
sudo yum install -y amazon-ssm-agent
sudo systemctl enable --now amazon-ssm-agentPara Ubuntu (ejemplo con descarga de paquete Debian):
REGION=us-east-1
wget https://s3.${REGION}.amazonaws.com/amazon-ssm-${REGION}/latest/debian_amd64/amazon-ssm-agent.deb
sudo dpkg -i amazon-ssm-agent.deb
sudo systemctl enable --now amazon-ssm-agentComprobar el estado:
sudo systemctl status amazon-ssm-agent
sudo tail -n 200 /var/log/amazon/ssm/amazon-ssm-agent.log
Ejecución de comandos con Run Command (ejemplo de CLI de AWS)
Manera rápida de ejecutar un comando de shell en una o más instancias EC2:
Ejemplo: ejecutar apt update y upgrade en una instancia:
aws ssm send-command \
--instance-ids "i-0123456789abcdef0" \
--document-name "AWS-RunShellScript" \
--parameters commands=["sudo apt-get update -y","sudo apt-get upgrade -y"] \
--comment "Update packages" \
--region us-east-1Para segmentar por etiqueta (por ejemplo, todos los servidores web con la etiqueta Role=web):
aws ssm send-command \
--targets Key=tag:Role,Values=web \
--document-name "AWS-RunShellScript" \
--parameters commands=["/opt/deploy/deploy.sh"] \
--region eu-central-1Obtener la salida de un comando:
1) Con la salida de send-command, obtienes un CommandId.
2)
aws ssm get-command-invocation --command-id <COMMAND_ID> --instance-id i-0123456789abcdef0Si la salida se envía a S3, configure los parámetros del comando de envío en --output-s3-bucket-name y --prefijo-de-clave-de-salida-s3 Especificar.
Consejos prácticos para ejecutar scripts grandes
- Sube los scripts a S3 y en Ejecutar comando simplemente wget + Correr.
- Para scripts recurrentes de Gerente Estatal Usar.
- Utilice parámetros y documentos administrados por SSM (documentos de automatización) para una automatización completa.
Uso del Administrador de sesiones para acceso interactivo y reenvío de puertos
El administrador de sesiones permite un shell interactivo sin SSH y también puede realizar reenvío de puertos.
Iniciar una sesión interactiva:
aws ssm start-session --target i-0123456789abcdef0Requiere instalación para uso interactivo en la consola o mediante AWS CLI complemento de administrador de sesiones Lo tienes en el cliente.
Ejemplo de reenvío de puertos para acceso a base de datos:
aws ssm start-session \
--target i-0123456789abcdef0 \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["3306"],"localPortNumber":["3307"]}'Luego puedes ir a host local:3307 La conexión y el tráfico se tunelizan a través de SSM sin abrir el puerto 3306 a Internet.
Administrar salidas y registros (CloudWatch/S3)
En Preferencias del Administrador de sesiones, habilite los registros de CloudWatch o el registro de S3 para guardar todas las sesiones.
Para ejecutar comando, puede redirigir la salida a S3 o habilitar la salida de CloudWatch:
--cloud-watch-output-config '{"CloudWatchOutputEnabled":true}'
Escenarios prácticos y ejemplos
Realizar una actualización masiva en docenas de instancias EC2 en múltiples regiones:
- Utilice la segmentación con etiqueta o grupo de recursos.
- Utilice SSM Maintenance Windows o Patch Manager para programar y coordinar.
Uso para GPU y servidores de renderizado:
Para servidores GPU implementados en varias ubicaciones (por ejemplo, en nuestras más de 85 ubicaciones o regiones de AWS), use el comando Ejecutar para instalar los controladores de NVIDIA, CUDA y los paquetes dependientes. Ejemplo:
aws ssm send-command --instance-ids "i-..." --document-name "AWS-RunShellScript" --parameters commands=["sudo apt-get install -y nvidia-driver-470","sudo reboot"]Configuración rápida de un VPS comercial con latencia mínima:
- En lugar de abrir SSH/22, utilice el Administrador de sesiones y el reenvío de puertos para acceder de forma segura al servidor comercial.
- Elegir la ubicación correcta (el centro de datos más cercano con una ruta directa al bróker) y usar CDN/BGP/red privada puede reducir el ping; tenemos más de Más de 85 ubicaciones Atendemos estas necesidades en todo el mundo.
Consejos de seguridad y mejores prácticas
Nunca abra el puerto SSH públicamente.SSM actúa como una alternativa de bajo riesgo.
- De mínimo privilegio Utilice roles y usuarios de IAM. Permita únicamente la ejecución de documentos específicos o el acceso a parámetros.
- Habilite el registro del Administrador de sesiones y envíe salidas a S3 con cifrado KMS o CloudWatch.
- Para almacén de parámetros de tipo Cadena segura Y utiliza una clave KMS dedicada.
- Limitaciones del administrador de sesiones: puede configurar programaciones y políticas de IAM para que se ejecuten solo durante un período de tiempo o con MFA.
- Para entornos sensibles, aproveche los puntos finales de VPC para SSM y grupos de seguridad y ACL de red sólidos.
Errores comunes y solución de problemas
- Instancia no administrada / No registrada: Verifique que el agente SSM esté instalado y en ejecución y que la función IAM correcta esté asociada.
- Tiempo de conexión agotado: Verifique el enrutamiento de la red, los puntos finales de VPC o el acceso a Internet/NAT.
- Permiso denegado al enviar salida a S3: El rol de IAM debe tener acceso de escritura a ese depósito.
- start-session da un error: Asegúrese de que session-manager-plugin esté instalado en el cliente y que Session Manager esté habilitado en la consola.
Resumen y cómo utilizar nuestros servicios
Ejecutar comandos de forma remota en una instancia EC2 con AWS Systems Manager es una forma segura y conveniente de administrar EC2 de forma remota, ejecutar scripts, aplicar parches y acceder sin SSH.
Esta solución se adapta bien a las necesidades de:
- Servidor de gráficos (GPU) para IA y renderizado,
- VPS para comercio con requisitos de ping bajos,
- Servidores de juegos e infraestructura con alto SLA,
Se puede combinar. Si necesita gestionar una combinación de AWS EC2 y nuestros servidores internacionales (más de 85 ubicaciones), ofrecemos:
- Para cargas de trabajo sensibles a la latencia, elija nuestra ubicación más cercana.
- Utilice BGP/CDN y enlaces dedicados (si es necesario).
- Utilice los documentos SSM + Automation para administrar y automatizar entre nuestros entornos On-prem / AWS / VPS y mantener los registros centralizados en CloudWatch/S3.
Pasos sugeridos para comenzar
Para ver nuestros planes de Cloud Server, GPU Cloud y VPS para negociar o para recibir asesoramiento técnico sobre cómo elegir la mejor ubicación e implementación segura con AWS Systems Manager, revise los planes o comuníquese con nuestro equipo de soporte para diseñar una arquitectura personalizada y segura para su proyecto.









