Quiero usar el Administrador de sesiones, una función de AWS Systems Manager, para crear el reenvío de puertos.
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Para usar el Administrador de sesiones para crear el reenvío de puertos, sigue estos pasos:
-
Confirma que Systems Manager administra tu instancia de Amazon Elastic Compute Cloud (Amazon EC2). Para obtener más información, consulta Administración de instancias de EC2 con Systems Manager e Instalación y desinstalación manuales de AWS Systems Manager Agent en instancias de EC2 para Linux.
-
Instala el complemento del Administrador de sesiones para la AWS CLI.
-
Para comprobar que el puerto de la instancia de EC2 objetivo está en modo de escucha, ejecuta los siguientes comandos:
Linux:
netstat -plant
macOS:
lsof -iTCP -sTCP:LISTEN -P -n
Windows:
netstat -nb
-
Configura una política de AWS Identity and Access Management (IAM) que permita a los usuarios utilizar sesiones de reenvío de puertos a través de Systems Manager. El siguiente ejemplo de política de IAM permite el reenvío de puertos en todas las instancias de EC2 de una cuenta de AWS:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ssm:StartSession",
"Resource": [
"arn:aws:ec2:*:example-account-id:instance/*",
"arn:aws:ssm:*::document/AWS-StartPortForwardingSession"
]
}
]
}
Nota: Sustituye example-account-id por el ID de tu cuenta:
-
Ejecuta el comando en función de tu sistema operativo.
Linux o macOS:
# aws ssm start-session \
--target example-EC2-instance-ID \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["80"], "localPortNumber":["example-local-port"]}'
Nota: Susituye example-EC2-instance-ID por el ID de tu instancia de EC2 y example-local-port por tu puerto local.
Windows:
# aws ssm start-session
--target "example-EC2-instance-ID" --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["80"],"localPortNumber"=["example-local-port"]
Nota: Susituye example-EC2-instance-ID por el ID de tu instancia de EC2 y example-local-port por tu puerto local.
-
Para ver el contenido del servidor web de tu instancia, en el navegador de tu máquina local, carga http://localhost:example-local-port.
Nota: No es necesario abrir el puerto de entrada 80 en la instancia de EC2 administrada en un grupo de seguridad o en una lista de control de acceso de la red.