Tutorial: Configuración del acceso a la red privada mediante una AWS Client VPN - Amazon Managed Workflows para Apache Airflow

Tutorial: Configuración del acceso a la red privada mediante una AWS Client VPN

En este tutorial, se explican los pasos necesarios para crear un túnel VPN desde su equipo hasta el servidor web Apache Airflow para su entorno Amazon Managed Workflows para Apache Airflow. Para conectarse a Internet a través de un túnel VPN, primero tendrá que crear un punto de conexión AWS Client VPN. Una vez configurado, un punto de conexión Client VPN actúa como servidor VPN, lo que permite una conexión segura desde el equipo a los recursos de la VPC. A continuación, se conectará a la Client VPN desde su equipo mediante la AWS Client VPN para escritorio.

Red privada

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

La imagen muestra la arquitectura de un entorno de Amazon MWAA con un servidor web privado.

El modo de acceso de red privada limita el acceso a la interfaz de usuario 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 mediante red privada al servidor web, debe empaquetar todas sus dependencias en un archivo wheel de Python (.whl), y luego hacer referencia al .whl en su requirements.txt. Para obtener instrucciones sobre cómo empaquetar e instalar sus dependencias mediante el archivo wheel, consulte Administración de dependencias con archivos wheel de Python.

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

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

Casos de uso

Puede utilizar este tutorial antes o 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 privadas que su entorno. Si utiliza este tutorial después de haber creado un entorno de Amazon MWAA, una vez que haya completado los pasos, podrá volver a la consola de Amazon MWAA y cambiar el modo de acceso al servidor web Apache Airflow a Red privada.

Antes de empezar

  1. Compruebe los permisos de usuario. Asegúrese de que su cuenta en AWS Identity and Access Management (IAM) tenga los permisos necesarios para crear y administrar los recursos de VPC.

  2. Utilice su VPC de Amazon MWAA. En este tutorial, se asume que está asociando la Client VPN a una VPC existente. La VPC de Amazon debe estar en la misma región de AWS que un entorno de Amazon MWAA y tener dos subredes privadas. Si no ha creado una Amazon VPC, utilice la plantilla de AWS CloudFormation en Opción 3: creación de una red Amazon VPC sin acceso a Internet.

Objetivos

En este tutorial, hará lo siguiente:

  1. Crear un punto de conexión AWS Client VPN mediante una plantilla de AWS CloudFormation para una Amazon VPC existente.

  2. Generar certificados y claves de servidor y cliente y, a continuación, cargar el certificado y la clave del servidor en AWS Certificate Manager en la misma región de AWS que un entorno de Amazon MWAA.

  3. Descargar y modificar un archivo de configuración de punto de conexión de Client VPN para su Client VPN y utilizar el archivo para crear un perfil de VPN para conectarse mediante Client VPN para escritorio.

(Opcional) Paso uno: identificar la VPC, las reglas de CIDR y la seguridad de la VPC

En la siguiente sección, se describe cómo encontrar los ID de su Amazon VPC, su grupo de seguridad de VPC y una forma de identificar las reglas de CIDR que necesitará para crear su Client VPN en los pasos siguientes.

Identificación de las reglas de su CIDR

En la siguiente sección, se muestra cómo identificar las reglas de su CIDR, que necesitará para crear su Client VPN.

Identificación del CIDR de su Client VPN
  1. Abra la página Sus Amazon VPC en la consola de Amazon VPC.

  2. Utilice el selector de región de la barra de navegación para elegir la misma región AWS que un entorno de Amazon MWAA.

  3. Elija su Amazon VPC.

  4. Supongamos que los CIDR de sus subredes privadas son:

    • Subred privada 1: 10.192.10.0 /24

    • Subred privada 2: 10.192.11.0 /24

    Si el CIDR de su Amazon VPC es 10.192.0.0/16, el CIDR de IPv4 de cliente que especificaría para su Client VPN sería 10.192.0.0/22.

  5. Guarde este valor de CIDR y el valor de su ID de VPC para los pasos siguientes.

Identificación de su VPC y sus grupos de seguridad

En la siguiente sección, se muestra cómo encontrar el ID de su Amazon VPC y de sus grupos de seguridad, que necesitará para crear su Client VPN.

nota

Puede que esté utilizando varios grupos de seguridad. Deberá especificar todos los grupos de seguridad de la VPC en los pasos siguientes.

Identificación de los grupos de seguridad
  1. Abra la página Grupos de seguridad en la consola de Amazon VPC.

  2. En la barra de navegación, utilice el selector de región para elegir la región de AWS.

  3. Busque la Amazon VPC en el ID de la VPC e identifique los grupos de seguridad asociados a la VPC.

  4. Guarde el ID de sus grupos de seguridad y de la VPC para los pasos siguientes.

Paso dos: crear los certificados de servidor y cliente

Los puntos de enlace de Client VPN solo admiten claves RSA con un tamaño de 1024 bits y 2048 bits. En la sección siguiente, se explica cómo utilizar easy-rsa de OpenVPN para generar los certificados y las claves del servidor y el cliente, y cargar después los certificados en ACM mediante la AWS Command Line Interface (AWS CLI).

Creación de certificados de cliente
  1. Siga estos pasos rápidos para crear y cargar los certificados en ACM mediante la AWS CLI en autenticación y autorización de clientes: autenticación mutua.

  2. En estos pasos, debe especificar la misma región AWS que un entorno de Amazon MWAA en el comando de la AWS CLI al cargar los certificados de servidor y cliente. A continuación, se muestran algunos ejemplos de cómo especificar la región en estos comandos:

    1. ejemplo región para el certificado de servidor
      aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt --region us-west-2
    2. ejemplo región para el certificado de cliente
      aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt --region us-west-2
    3. Tras estos pasos, guarde el valor devuelto en la respuesta de la AWS CLI para los ARN del certificado de servidor y del certificado de cliente. Deberá especificar estos ARN en la plantilla de AWS CloudFormation para crear la Client VPN.

  3. En estos pasos, se guardan un certificado de cliente y una clave privada en su equipo. A continuación, se muestra un ejemplo de dónde encontrar estas credenciales:

    1. ejemplo en macOS

      En macOS, el contenido se guarda en /Users/youruser/custom_folder. Si incluye todos los contenidos (ls -a) de este directorio, debería ver algo parecido a lo siguiente:

      . .. ca.crt client1.domain.tld.crt client1.domain.tld.key server.crt server.key
    2. Tras estos pasos, guarde el contenido o anote la ubicación del certificado de cliente en client1.domain.tld.crt y la clave privada en client1.domain.tld.key. Deberá agregar estos valores al archivo de configuración de su Client VPN.

Paso tres: guardar la plantilla de AWS CloudFormation localmente

La siguiente sección contiene la plantilla de AWS CloudFormation para crear la Client VPN. Debe especificar la misma Amazon VPC, los mismos grupos de seguridad de VPC y las mismas subredes privadas que su entorno Amazon MWAA.

  • Copie el contenido de la siguiente plantilla y guárdelo localmente como mwaa_vpn_client.yaml. También puede descargar la plantilla.

    Sustituya los valores siguientes:

    • YOUR_CLIENT_ROOT_CERTIFICATE_ARN: el ARN de su certificado client1.domain.tld en ClientRootCertificateChainArn.

    • YOUR_SERVER_CERTIFICATE_ARN: el ARN del certificado de su servidor en ServerCertificateArn.

    • La regla CIDR de IPv4 del cliente en ClientCidrBlock. Se proporciona una regla CIDR de 10.192.0.0/22.

    • Su ID de Amazon VPC en VpcId. Se proporciona un VPC de vpc-010101010101.

    • Sus ID de grupo de seguridad de VPC en SecurityGroupIds. Se proporciona un grupo de seguridad de sg-0101010101.

    AWSTemplateFormatVersion: 2010-09-09 Description: This template deploys a VPN Client Endpoint. Resources: ClientVpnEndpoint: Type: 'AWS::EC2::ClientVpnEndpoint' Properties: AuthenticationOptions: - Type: "certificate-authentication" MutualAuthentication: ClientRootCertificateChainArn: "YOUR_CLIENT_ROOT_CERTIFICATE_ARN" ClientCidrBlock: 10.192.0.0/22 ClientConnectOptions: Enabled: false ConnectionLogOptions: Enabled: false Description: "MWAA Client VPN" DnsServers: [] SecurityGroupIds: - sg-0101010101 SelfServicePortal: '' ServerCertificateArn: "YOUR_SERVER_CERTIFICATE_ARN" SplitTunnel: true TagSpecifications: - ResourceType: "client-vpn-endpoint" Tags: - Key: Name Value: MWAA-Client-VPN TransportProtocol: udp VpcId: vpc-010101010101 VpnPort: 443
nota

Si utiliza más de un grupo de seguridad para su entorno, puede especificar varios grupos de seguridad en el siguiente formato:

SecurityGroupIds: - sg-0112233445566778b - sg-0223344556677889f

Paso cuatro: crear la pila AWS CloudFormation de Client VPN

Cómo crear el AWS Client VPN
  1. Abra la consola de AWS CloudFormation.

  2. Seleccione La plantilla está lista y Cargar un archivo de plantilla.

  3. Seleccione Elegir archivo y seleccione su archivo mwaa_vpn_client.yaml.

  4. Seleccione Siguiente, Siguiente.

  5. Seleccione la casilla de confirmación y, a continuación, Crear pila.

Paso cinco: asociar subredes a su Client VPN

Cómo asociar subredes privadas a la AWS Client VPN
  1. Abra la consola de Amazon VPC.

  2. Seleccione la página Puntos de enlace de Client VPN.

  3. Seleccione su Client VPN y, a continuación, elija la pestaña Asociaciones, Asociar.

  4. Elija lo siguiente en la lista desplegable:

    • Su Amazon VPC en VPC.

    • Una de sus subredes privadas en Elegir una subred para asociar.

  5. Elija Asociar.

nota

La VPC y la subred tardan varios minutos en asociarse a Client VPN.

Paso seis: agregar una regla de entrada de autorizaciones al Client VPN

Debe agregar una regla de entrada de autorización mediante la regla CIDR para su VPC a su Client VPN. Si desea autorizar usuarios o grupos específicos de su grupo de Active Directory o proveedor de identidad (IdP) basado en SAML, consulte las reglas de autorización en la guía Client VPN.

Cómo añadir el CIDR a la AWS Client VPN
  1. Abra la consola de Amazon VPC.

  2. Seleccione la página Puntos de enlace de Client VPN.

  3. Seleccione su Client VPN y, a continuación, elija la pestaña Autorización, Autorizar entrada.

  4. Especifique lo siguiente:

    • La regla CIDR de su Amazon VPC en Red de destino que se habilitará. Por ejemplo:

      10.192.0.0/16
    • En Conceder acceso a, elija Permitir el acceso a todos los usuarios.

    • En Descripción, escriba un nombre descriptivo.

  5. Seleccione Agregar regla de autorización.

nota

Según los componentes de red de su Amazon VPC, es posible que también necesite esta regla de autorización de entrada a su lista de control de acceso a la red (NACL).

Paso siete: descargar el archivo de configuración del punto de conexión de Client VPN

Cómo descargar el archivo de configuración
  1. Siga estos pasos rápidos para descargar el archivo de configuración de Client VPN en Descargar el archivo de configuración de punto de conexión de Client VPN.

  2. En estos pasos, se le pedirá que añada una cadena al nombre de DNS del punto de conexión de Client VPN. A continuación se muestra un ejemplo:

    1. ejemplo nombre de DNS del punto de conexión

      Si el nombre de DNS del punto de conexión de Client VPN tiene el siguiente aspecto:

      remote cvpn-endpoint-0909091212aaee1.prod.clientvpn.us-west-1.amazonaws.com 443

      Puede agregar una cadena para identificar el punto de conexión de Client VPN de la siguiente manera:

      remote mwaavpn.cvpn-endpoint-0909091212aaee1.prod.clientvpn.us-west-1.amazonaws.com 443
  3. En estos pasos, se le pide que agregue el contenido del certificado de cliente entre un nuevo conjunto de etiquetas <cert></cert> y el contenido de la clave privada entre un nuevo conjunto de etiquetas <key></key>. A continuación se muestra un ejemplo:

    1. Abra un símbolo del sistema y cambie los directorios a la ubicación del certificado de cliente y la clave privada.

    2. ejemplo macOS client1.domain.tld.crt

      Para mostrar el contenido del archivo client1.domain.tld.crt en macOS, puede usar cat client1.domain.tld.crt.

      Copie el valor del terminal y péguelo en downloaded-client-config.ovpn así:

      ZZZ1111dddaBBB -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- YOUR client1.domain.tld.crt -----END CERTIFICATE----- </cert>
    3. ejemplo macOS client1.domain.tld.key

      Para mostrar el contenido de client1.domain.tld.key, puede utilizar cat client1.domain.tld.key.

      Copie el valor del terminal y péguelo en downloaded-client-config.ovpn así:

      ZZZ1111dddaBBB -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- YOUR client1.domain.tld.crt -----END CERTIFICATE----- </cert> <key> -----BEGIN CERTIFICATE----- YOUR client1.domain.tld.key -----END CERTIFICATE----- </key>

Paso ocho: conectarse a la AWS Client VPN

El cliente para AWS Client VPN se proporciona de forma gratuita. Puede conectar su equipo directamente a AWS Client VPN para disfrutar de una experiencia de VPN integral.

Conexión a Client VPN
  1. Descargue e instale AWS Client VPN para escritorio.

  2. Abra la AWS Client VPN.

  3. Seleccione Archivo, Perfiles administrados en el menú del cliente VPN.

  4. Seleccione Agregar perfil y, a continuación, elija downloaded-client-config.ovpn.

  5. Introduzca un nombre descriptivo en Nombre público.

  6. Seleccione Agregar perfil, Listo.

  7. Elija Conectar.

Después de conectarse a Client VPN, tendrá que desconectarse de otras VPN para ver cualquiera de los recursos de su Amazon VPC.

nota

Es posible que tenga que salir del cliente y empezar de nuevo antes de poder conectarse.

Siguientes pasos