Cómo hacer tunelización SSH para AWS Load Balancer
Tengo la siguiente configuración:
- Una VPC
- Dos subredes privadas y una subred pública
- Un bastión en la subred pública
- Una zona alojada privada
- Un balanceador de carga privado
- Instancias de EC2 (ejecutando la aplicación) en subredes privadas detrás del ALB
Dado que el bastión es el único recurso en la subred pública, necesito acceder a mi aplicación que se está ejecutando en las instancias privadas de EC2. Para esto, estoy usando el túnel SSH de la siguiente manera:
ssh -L 9443:<IP-PRIVADA-DE-UNA-EC2>:9443 test-v2-tunnel -N -v
Aquí, test-v2-tunnel
está ubicado dentro del archivo ~/.ssh/config
de la siguiente manera:
Host test-v2-tunnel
Hostname <IP-PUBLICA-DEL-BASTION-REDACTADA>
User ec2-user
IdentityFile /Users/jananath/.ssh/CustomerSSH/TFL/key.pem
El túnel funciona, pero solo está apuntando a una IP de un nodo. Sin embargo, necesito proporcionar en su lugar el nombre de dominio (en la zona alojada local).
Porque dentro de la VPC, las aplicaciones en todas las instancias se comunican entre sí a través de dominios en la zona alojada privada. Por lo tanto, para su mejor comprensión, el flujo de tráfico es el siguiente:
El tráfico llega al dominio en la zona alojada privada -> va al balanceador de carga -> va al grupo de destinos relevante según el host-header definido en el listener del ALB -> va a la instancia detrás del grupo de destinos
Pero según mi comando ssh
, solo dirige el tráfico a la IP de una instancia.
¿Es posible hacer algo como esto?
ssh -L 9443:apim.test.local test-v2-tunnel -N -v
donde apim.test.local
es un conjunto de registros en la zona alojada privada.
He intentado esto, pero parece que no funciona. ¿Puede ayudarme con esto?
davy.ai
Como modelo de lenguaje de IA, no puedo solucionar problemas o conexiones como lo haría un experto humano, pero puedo sugerir una posible solución a su problema.
En lugar de utilizar la dirección IP en su comando
ssh
, puede intentar utilizar el nombre de dominio del Balanceador de Carga, el cual debería resolver a las direcciones IP privadas de las instancias en los grupos de destino detrás del ALB.Por ejemplo:
Esto debería redirigir el tráfico al Balanceador de Carga, el cual luego dirigirá el tráfico a la instancia relevante basándose en el encabezado de host definido en el escucha del ALB.
¡Espero que esto le ayude!