Configurar los Controles del servicio de VPC

Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (1ª gen. heredada)

Los Controles del servicio de VPC permiten que las organizaciones definan un perímetro alrededor de Google Cloud los recursos para mitigar los riesgos de robo de datos.

Los entornos de Managed Airflow se pueden implementar dentro de un perímetro de servicio. Cuando configuras tu entorno con los Controles del servicio de VPC, puedes mantener la privacidad de los datos sensibles mientras aprovechas las capacidades de organización de flujos de trabajo completamente administradas de Managed Airflow.

La compatibilidad con los Controles del servicio de VPC para Managed Airflow significa lo siguiente:

  • Ahora se puede seleccionar Managed Airflow como un servicio protegido dentro del perímetro de los Controles del servicio de VPC.
  • Todos los recursos subyacentes que usa Managed Airflow se configuran para admitir la arquitectura de los Controles del servicio de VPC y seguir sus reglas.

La implementación de entornos de Managed Airflow con los Controles del servicio de VPC te proporciona lo siguiente:

  • Reducción del riesgo de robo de datos
  • Protección contra la exposición de datos debido a controles de acceso mal configurados
  • Reducción del riesgo de que usuarios maliciosos copien datos a recursos no autorizados Google Cloud o ante atacantes externos que acceden a recursos desde Internet Google Cloud

Acerca de los Controles del servicio de VPC en Managed Airflow

  • La visualización de una plantilla renderizada con funciones en la IU web con serialización de DAG habilitada es compatible con entornos que ejecutan la versión 1.12.0 o posteriores de Managed Airflow y la versión 1.10.9 o posteriores de Airflow.

  • No se puede establecer la marca async_dagbag_loader en True mientras la serialización de DAG está habilitada.

  • La habilitación de la serialización de DAG inhabilita todos los complementos del servidor web de Airflow, ya que podrían poner en riesgo la seguridad de la red de VPC, en la que se implementa Airflow administrado. Esto no afecta el comportamiento de los complementos de trabajador o programador, incluidos los sensores y operadores de Airflow.

  • Si un entorno de Managed Airflow está protegido por un perímetro, se restringe el acceso a los repositorios públicos de PyPI. Consulta Instala paquetes de PyPI en los Controles del servicio de VPC para obtener más información.

  • Si tu entorno usa redes de IP privada, todo el tráfico interno se enruta a tu red de VPC, excepto el tráfico a los servicios, las APIs y los dominios de Google que están disponibles para los entornos de IP privada a través del Acceso privado a Google.

  • Según cómo configures tu red de VPC, un entorno de IP privada puede obtener acceso a Internet a través de tu red de VPC.

  • En el modo de los Controles del servicio de VPC, Managed Airflow ejecuta dos instancias del servidor web de Airflow. La carga de Identity-Aware Proxy balancea el tráfico de usuarios entre estas instancias. Los servidores web de Airflow se ejecutan en modo “de solo lectura”, lo que significa lo siguiente:

    • La serialización del DAG está habilitada. Como resultado, el servidor web de Airflow no analiza los archivos de DAG.

    • Los registros no se sincronizan con el servidor web, por lo que no puedes modificar ni extender las capacidades del servidor web con complementos.

    • El servidor web de Airflow usa una imagen de contenedor ya compilada por el servicio de Managed Airflow. Si instalas imágenes de PyPI en tu entorno, estas no se instalan en la imagen del contenedor del servidor web.

Perímetros para entornos con VPC compartida y CMEK

Si tu entorno está protegido por un perímetro de servicio y usa VPC compartida, claves de encriptación administradas por el cliente (CMEK), o ambos, asegúrate de que los siguientes proyectos se encuentren en el mismo perímetro de servicio:

  • Proyecto de servicio: el proyecto que contiene el entorno de Managed Airflow.
  • Proyecto host: el proyecto que contiene la red de VPC compartida.
  • Proyecto que aloja las claves de Cloud Key Management Service.

Crea entornos en un perímetro

Se requieren los siguientes pasos para implementar Airflow administrado dentro de un perímetro:

  1. Habilita la API de Access Context Manager y la API de Cloud Composer para tu proyecto. Consulta Habilita API para obtener referencia.

  2. Asegúrate de que tu perímetro de servicio tenga los siguientes servicios accesibles de VPC; de lo contrario, es posible que no se cree tu entorno:

    • API de Cloud Composer (composer.googleapis.com)
    • API de Compute Engine (compute.googleapis.com)
    • API de Kubernetes Engine (container.googleapis.com)
    • API de Container Registry (containerregistry.googleapis.com)
    • API de Artifact Registry (artifactregistry.googleapis.com)
    • API de Cloud Storage (storage.googleapis.com)
    • API de Cloud SQL Admin (sqladmin.googleapis.com)
    • API de Cloud Logging (logging.googleapis.com)
    • API de Cloud Monitoring (monitoring.googleapis.com)
    • API de Cloud Pub/Sub (pubsub.googleapis.com)
    • API de Cloud Resource Manager (cloudresourcemanager.googleapis.com)
    • API de Directorio de servicios (servicedirectory.googleapis.com)
    • API de Cloud Key Management Service (cloudkms.googleapis.com), si usas claves de Cloud KMS o CMEK
    • API de Secret Manager (secretmanager.googleapis.com), si usas Secret Manager como backend de secretos
  3. Crea un nuevo entorno de Managed Airflow con la IP privada habilitada. Ten en cuenta que esta configuración debe establecerse durante la creación del entorno.

    • Usa la versión composer-1.10.4 o una posterior.

    • Asegúrate de que la serialización del DAG esté habilitada. Si tu entorno usa la versión 1.15.0 y posteriores de Managed Airflow, la serialización está habilitada de forma predeterminada.

    • Cuando crees tu entorno, recuerda configurar el acceso al servidor web de Airflow. Para mejorar la protección, solo permite el acceso al servidor web desde rangos de IP específicos. Para obtener más información, consulta Configura el acceso a la red del servidor web.

Agrega un entorno existente al perímetro

Instala paquetes de PyPI en los Controles del servicio de VPC

En la configuración predeterminada de los Controles del servicio de VPC, Managed Airflow solo admite la instalación de paquetes de PyPI desde repositorios privados a los que se puede acceder desde el espacio de direcciones IP internas de la red de VPC.

Instala desde un repositorio privado

La configuración recomendada es configurar un repositorio privado de PyPI:

  1. Complétalo con los paquetes aprobados que usa tu organización y, luego, configura Managed Airflow para instalar dependencias de Python desde un repositorio privado.

  2. Otorga permisos adicionales para instalar paquetes desde repositorios privados repositorios a la cuenta de servicio de tu entorno, como se describe en Control de acceso.

Instala desde un repositorio público

Repositorio remoto

Este es el enfoque recomendado para instalar paquetes desde un repositorio público.

Para instalar paquetes de PyPI desde repositorios fuera del espacio de IP privada, sigue estos pasos:

  1. Crea un repositorio remoto de Artifact Registry.
  2. Otorga acceso a este repositorio a fuentes ascendentes.
  3. Configura Airflow para instalar paquetes desde un repositorio de Artifact Registry.
  4. Otorga permisos adicionales para instalar paquetes desde repositorios de Artifact Registry a la cuenta de servicio de tu entorno, como se describe en Control de acceso.

Conexiones externas

Para instalar paquetes de PyPI desde repositorios fuera del espacio de IP privada, sigue estos pasos:

  1. Configura Cloud NAT para permitir que Managed Airflow que se ejecuta en el espacio de IP privada se conecte con repositorios externos de PyPI.

  2. Configura tus reglas de firewall para permitir conexiones salientes desde el clúster de Composer al repositorio.

Configura la conectividad a los servicios y las APIs de Google

En una configuración de Controles del servicio de VPC, para controlar el tráfico de red, configura el acceso a los servicios y las APIs de Google a través de restricted.googleapis.com. Este dominio bloquea el acceso a los servicios y a las APIs de Google que son incompatibles con los Controles del servicio de VPC.

Los entornos de Managed Airflow usan los siguientes dominios:

  • *.googleapis.com se usa para acceder a otros servicios de Google.

  • *.pkg.dev se usa para obtener imágenes del entorno, por ejemplo, cuando se crea o actualiza un entorno.

  • *.gcr.io GKE requiere conectividad al dominio de Container Registry, independientemente de la versión de Managed Airflow.

Configura la conectividad con el extremo restricted.googleapis.com:

Dominio Nombre de DNS Registro CNAME Registro A
*.googleapis.com googleapis.com. Nombre de DNS: *.googleapis.com.
Tipo de registro de recursos: CNAME
Nombre canónico: googleapis.com.
Tipo de registro de recursos: A
Direcciones IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
*.pkg.dev pkg.dev. Nombre de DNS: *.pkg.dev.
Tipo de registro de recursos: CNAME
Nombre canónico: pkg.dev.
Tipo de registro de recursos: A
Direcciones IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
*.gcr.io gcr.io. Nombre de DNS: *.gcr.io.
Tipo de registro de recursos: CNAME
Nombre canónico: gcr.io.
Tipo de registro de recursos: A
Direcciones IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

Para crear una regla de DNS, haz lo siguiente:

  1. Crea una zona del DNS nueva y usa Nombre de DNS como nombre de DNS de esta zona.

    Ejemplo: pkg.dev.

  2. Agrega un conjunto de registros para Registro CNAME.

    Ejemplo:

    • Nombre de DNS: *.pkg.dev.
    • Tipo de registro de recursos: CNAME
    • Nombre canónico: pkg.dev.
  3. Agrega un conjunto de registros con para Registro A:

    Ejemplo:

    • Tipo de registro de recursos: A
    • Direcciones IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7

Para obtener más información, consulta Cómo configurar una conectividad privada en los servicios y las APIs de Google.

Configura reglas de firewall

Si tu proyecto tiene reglas de firewall no predeterminadas, como reglas que anulan las reglas de firewall implícitas, o modifican las reglas prepropagadas en la red predeterminada, verifica que se configuren las siguientes reglas de firewall.

Por ejemplo, es posible que Managed Airflow no pueda crear un entorno si tienes una regla de firewall que rechaza todo el tráfico de salida. Para evitar problemas, define reglas allow selectivas que sigan la lista y tengan mayor prioridad que la regla deny global.

Configura tu red de VPC para permitir el tráfico de tu entorno:

Descripción Dirección Acción Origen o destino Protocolos Puertos
DNS

Configura como se describe en Compatibilidad con los Controles del servicio de VPC para Cloud DNS
- - - - -
Servicios y APIs de Google Salida Permitir Direcciones IPv4 de restricted.googleapis.com que usas para los servicios y las APIs de Google. TCP 443
Nodos del clúster del entorno Salida Permitir Rango de direcciones IP principal de la subred del entorno TCP, UDP todos
Pods del clúster del entorno Salida Permitir Rango de direcciones IP secundario para Pods en la subred del entorno TCP, UDP todos
Plano de control del clúster del entorno Salida Permitir Rango de IP del plano de control de GKE TCP, UDP todos
Servidor web Salida Permitir Rango de IP de red del servidor web TCP 3306, 3307

Para obtener los rangos de IP del clúster del entorno, haz lo siguiente:

  • Los rangos de direcciones de Pod, Service y plano de control están disponibles en la página Clústeres del clúster de tu entorno:

    1. En la Google Cloud consola, ve a la página Entornos.

      Ir a Entornos

    2. En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.

    3. Ve a la pestaña Configuración del entorno.

    4. Sigue el vínculo ver detalles del clúster.

  • Puedes ver el rango de IP del servidor web del entorno en la pestaña Configuración del entorno.

  • Puedes ver el ID de red del entorno en la pestaña Configuración del entorno. Para obtener rangos de IP para una subred, ve a la página Redes de VPC y haz clic en el nombre de la red para ver los detalles:

    Ir a Redes de VPC

Registros de los Controles del servicio de VPC

Cuando solucionas problemas de creación de entornos, puedes analizar los registros de auditoría generados por los Controles del servicio de VPC.

Además de otros mensajes de registro, puedes consultar los registros para obtener información sobre cloud-airflow-prod@system.gserviceaccount.com y service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com cuentas de servicio que configuran los componentes de tus entornos.

El servicio de Managed Airflow usa la cloud-airflow-prod@system.gserviceaccount.com cuenta de servicio para administrar los componentes del proyecto de usuario de tus entornos.

La service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com cuenta de servicio, también conocida como cuenta de servicio del agente de servicio de Composer, administra los componentes del entorno en los proyectos host y de servicio.

¿Qué sigue?