View a markdown version of this page

Tutorial: Configuración del acceso a la red privada mediante un host bastión de Linux - Amazon Managed Workflows para Apache Airflow

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Configuración del acceso a la red privada mediante un host bastión de Linux

Este tutorial le explica los pasos necesarios para crear un túnel SSH desde su ordenador hasta el servidor web Apache Airflow para su entorno de Amazon Managed Workflows for Apache Airflow. Se asume que ya ha creado un entorno Amazon MWAA. Una vez configurado, un host bastión de Linux actúa como jump server que permite una conexión segura desde el equipo a los recursos de la VPC. A continuación, utilizará un complemento de administración de proxy SOCKS para controlar la configuración del proxy de su navegador y acceder a la interfaz de usuario de Apache Airflow.

nota

Este tutorial se aplica al modo de acceso a la red privada. Si eliges el acceso a redes públicas y privadas, no necesitas un host bastión para acceder a la interfaz de usuario de Apache Airflow, ya que se puede acceder a ella a través de Internet.

Red privada

En este tutorial, se asume que ha elegido el modo de acceso red privada para su servidor web de Apache Airflow.

Esta imagen muestra la arquitectura de un entorno de Amazon MWAA con acceso a una red privada.

El modo de acceso de red privada limita el acceso a la UI de Apache Airflow a los usuarios de su Amazon VPC a los que se les ha concedido acceso a la política de IAM de su entorno.

Al crear un entorno con acceso a una red privada, debe empaquetar todas sus dependencias en un archivo de Python wheel (.whl) y, a continuación, hacer referencia a él en su. .whl requirements.txt Para obtener instrucciones sobre cómo empaquetar e instalar sus dependencias mediante el archivo wheel, consulte cómo administrar dependencias con archivos wheel de Python.

En la siguiente imagen, se muestra dónde se encuentra la opción de red privada en la consola de Amazon MWAA.

En la imagen, se muestra dónde se encuentra la opción de red privada en la consola de Amazon MWAA.

Casos de uso

Puede utilizar este tutorial después de haber creado un entorno Amazon MWAA. Debe usar la misma Amazon VPC, los mismos grupos de seguridad de VPC y las mismas subredes públicas que su entorno.

Antes de empezar

  1. Compruebe los permisos de usuario. Asegúrate de que tu cuenta en AWS Identity and Access Management (IAM) tenga los permisos suficientes para crear y administrar los recursos de la VPC.

  2. Utilice su VPC de Amazon MWAA. En este tutorial, se asume que está asociando el host bastión a una VPC existente. La Amazon VPC debe estar en la misma región que su entorno de Amazon MWAA y tener dos subredes privadas, tal y como se define en Creación de la red de VPC.

  3. Cree una clave de SSH. Debe crear una clave SSH de Amazon EC2 (.pem) en la misma región que su entorno de Amazon MWAA para conectarse a los servidores virtuales. Si no tiene una clave SSH, consulte cómo crear o importar un par de claves en la guía del usuario de Amazon EC2.

Objetivos

En este tutorial, hará lo siguiente:

  1. Crear una instancia de host bastión de Linux mediante una plantilla de CloudFormation para una VPC existente.

  2. Autorizar el tráfico entrante al grupo de seguridad de la instancia bastión mediante una regla de entrada en el puerto 22.

  3. Autorizar el tráfico de entrada del grupo de seguridad de un entorno de Amazon MWAA al grupo de seguridad de la instancia de bastión.

  4. Crear un túnel SSH hasta la instancia de bastión.

  5. Instala y configura el FoxyProxy complemento para que el navegador Firefox acceda a la interfaz de usuario de Apache Airflow.

Paso 1: Crea la instancia de bastión

En la siguiente sección se describen los pasos para crear la instancia de bastión de Linux.

Abra la consola de Amazon Elastic Compute Cloud en https://console.aws.amazon.com/ec2/ y cree una instancia de Amazon EC2 en una de las subredes públicas de la VPC que se usa para su entorno de Amazon MWAA.

nota

Le recomendamos que permita el reenvío de TCP en la instancia Amazon EC2. El reenvío de TCP significa el reenvío de TCP por SSH, lo que permite ssh -L/-D la construcción de túneles a través del host. La AllowTcpForwarding directiva del daemon config () /etc/ssh/sshd_config de SSH controla esta configuración. Se usa de forma predeterminada yes en la mayoría de las AMI de Amazon Linux y Ubuntu, pero a menudo está deshabilitada en las AMI de bastión reforzadas.

Paso 2: Crea el túnel SSH

Los siguientes pasos describen cómo crear el túnel SSH hacia tu bastión de Linux. Un túnel SSH recibe la solicitud de tu dirección IP local al bastión de Linux, por lo que en los pasos anteriores se configuró el reenvío de TCP para el bastión de Linux. true

macOS/Linux
Pasos para crear un túnel con la línea de comandos
  1. Abra la página Instancias de la consola de Amazon EC2.

  2. Elija una instancia.

  3. Copie la dirección en DNS IPv4 público. Por ejemplo, ec2-4-82-142-1.compute-1.amazonaws.com.

  4. En el símbolo del sistema, vaya hasta el directorio en el que está guardada la clave SSH.

  5. Ejecute el comando siguiente para conectarse a la instancia del bastión mediante SSH. Sustituya el valor de muestra por el nombre de la clave SSH en mykeypair.pem.

    ssh -i mykeypair.pem -N -D 8157 ec2-user@YOUR_PUBLIC_IPV4_DNS
Windows (PuTTY)
Creación de un túnel con PuTTY
  1. Abra la página Instancias de la consola de Amazon EC2.

  2. Elija una instancia.

  3. Copie la dirección en DNS IPv4 público. Por ejemplo, ec2-4-82-142-1.compute-1.amazonaws.com.

  4. Abra PuTTY y seleccione Sesión.

  5. Introduzca el nombre del host en Nombre del host como ec2-user@ y el puerto YOUR_PUBLIC_IPV4_DNS como. 22

  6. Expanda la pestaña SSH y seleccione Autent. En Archivo de clave privada para la autenticación, elija su archivo “ppk” local.

  7. En SSH, seleccione la pestaña Túneles y, a continuación, seleccione las opciones Dinámico y Autom.

  8. En Puerto de origen, agregue el puerto 8157 (o cualquier otro puerto que no se utilice) y, a continuación, deje el puerto Destino en blanco. Elija Añadir.

  9. Seleccione la pestaña Sesión e introduzca un nombre de sesión. Por ejemplo, SSH Tunnel.

  10. Elija Guardar y Abrir.

    nota

    Puede que tenga que introducir una contraseña para la clave pública.

nota

Si recibes un Permission denied (publickey) error, te recomendamos usar la AWSSupport-TroubleshootSSH herramienta y elegir Ejecutar esta automatización (consola) para solucionar los problemas de configuración de SSH.

Paso tres: configurar el grupo de seguridad del bastión como regla de entrada

El acceso a los servidores y el acceso regular a Internet desde los servidores se permite con un grupo de seguridad de mantenimiento especial adjunto a esos servidores. Los siguientes pasos describen cómo configurar el grupo de seguridad bastión como fuente de tráfico entrante al grupo de seguridad de VPC de un entorno.

  1. Abra la página Entornos en la consola de Amazon MWAA.

  2. Seleccione un entorno.

  3. En el panel Redes, elija Grupo de seguridad de VPC.

  4. Elija Editar reglas de entrada.

  5. Seleccione Agregar regla.

  6. Elija el ID del grupo de seguridad de la lista desplegable Origen.

  7. Deje las opciones restantes en blanco o establézcalas en sus valores predeterminados.

  8. Seleccione Guardar reglas.

Paso cuatro: copiar la URL de Apache Airflow

En los siguientes pasos, se describe cómo abrir la consola de Amazon MWAA y copiar la URL en la interfaz de usuario de Apache Airflow.

  1. Abra la página Entornos en la consola de Amazon MWAA.

  2. Seleccione un entorno.

  3. Copie la URL en la interfaz de usuario de Airflow para los pasos siguientes.

Paso cinco: configurar los ajustes del proxy

Si utiliza un túnel de SSH con enrutamiento de puertos dinámico, debe utilizar un complemento de administración de proxy de SOCKS para controlar los ajustes del proxy en el navegador. Por ejemplo, puedes usar la --proxy-server función de Chromium para iniciar una sesión en el navegador o usar la FoxyProxy extensión en el navegador Mozilla FireFox .

Opción uno: configurar un túnel SSH utilizando el enrutamiento de puertos local

Si no desea utilizar un proxy SOCKS, puede configurar un túnel SSH al a través del enrutamiento de puertos local. El siguiente comando de ejemplo accede al servidor web Apache Airflow reenviando el tráfico al puerto local 8157.

  1. Abra una nueva ventana del símbolo del sistema.

  2. Escriba el siguiente comando para abrir un túnel SSH.

    ssh -i mykeypair.pem -N -L 8157:YOUR_VPC_ENDPOINT_ID-vpce.us-east-1.airflow.amazonaws.com:443 ec2-user@YOUR_PUBLIC_IPV4_DNS

    -L hace referencia al uso de enrutamiento de puertos local que le permite especificar un puerto local usado para reenviar datos al puerto remoto identificado en el servidor web local del nodo.

  3. Introduzca http://localhost:8157/ en su navegador.

    nota

    Es posible que necesite usar https://localhost:8157/.

Opción dos: proxies con la línea de comandos

La mayoría de los navegadores web permiten configurar los proxies mediante una línea de comandos o un parámetro de configuración. Por ejemplo, con Chromium puede iniciar el navegador con el comando siguiente:

chromium --proxy-server="socks5://localhost:8157"

Esto inicia una sesión de navegador que utiliza el túnel SSH creado en los pasos anteriores para enviar sus solicitudes por proxy. Puede abrir la URL de su entorno privado de Amazon MWAA (con https://) de la siguiente manera:

https://YOUR_VPC_ENDPOINT_ID-vpce.us-east-1.airflow.amazonaws.com/home.

Opción tres: usar proxies para Mozilla Firefox FoxyProxy

El siguiente ejemplo muestra una configuración FoxyProxy estándar (versión 7.5.1) para Mozilla Firefox. FoxyProxy proporciona un conjunto de herramientas de administración de proxy. Le permite utilizar un servidor proxy para las URL que coincidan con los patrones correspondientes a los dominios utilizados por la interfaz de usuario de Apache Airflow.

  1. En Firefox, abre la página de la extensión FoxyProxy Estándar.

  2. Seleccione Agregar a Firefox.

  3. Elija Agregar.

  4. Selecciona el FoxyProxy icono en la barra de herramientas de tu navegador y selecciona Opciones.

  5. Copie el siguiente código y guárdelo localmente como mwaa-proxy.json. Sustituya el valor de YOUR_HOST_NAME muestra por su URL de Apache Airflow.

    { "e0b7kh1606694837384": { "type": 3, "color": "#66cc66", "title": "airflow", "active": true, "address": "localhost", "port": 8157, "proxyDNS": false, "username": "", "password": "", "whitePatterns": [ { "title": "airflow-ui", "pattern": "YOUR_HOST_NAME", "type": 1, "protocols": 1, "active": true } ], "blackPatterns": [], "pacURL": "", "index": -1 }, "k20d21508277536715": { "active": true, "title": "Default", "notes": "These are the settings that are used when no patterns match a URL.", "color": "#0055E5", "type": 5, "whitePatterns": [ { "title": "all URLs", "active": true, "pattern": "*", "type": 1, "protocols": 1 } ], "blackPatterns": [], "index": 9007199254740991 }, "logging": { "active": true, "maxSize": 500 }, "mode": "patterns", "browserVersion": "82.0.3", "foxyProxyVersion": "7.5.1", "foxyProxyEdition": "standard" }
  6. En el panel Importar ajustes desde FoxyProxy versiones 6.0 o posteriores, elija Importar ajustes y seleccione el mwaa-proxy.json archivo.

  7. Seleccione Aceptar.

Paso seis: abrir la interfaz de usuario de Apache Airflow

Los siguientes pasos describen cómo abrir la interfaz de usuario de Apache Airflow.

  1. Abra la página Entornos en la consola de Amazon MWAA.

  2. Elija Abrir interfaz de usuario de Airflow.

Siguientes pasos