Configurar los Controles del servicio de VPC

Airflow administrado (3ª gen.) | Airflow administrado (2ª gen.) | Airflow administrado (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 Airflow administrado 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 Airflow administrado.

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

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

Implementar entornos de Airflow administrado 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 Airflow administrado

Acerca de la conectividad a los servicios y las APIs de Google en los Controles del servicio de VPC

Airflow administrado (3ª gen.) enruta el tráfico a los servicios de Google a través de restricted.googleapis.com, lo que permite el acceso a las APIs, los servicios y los dominios de Google compatibles con este rango.

Para obtener más información y la lista de servicios y dominios disponibles a través de restricted.googleapis.com, consulta Configuración de red en la documentación de la nube privada virtual.

Los entornos de Airflow administrado (3ª gen.) bloquean las llamadas a las APIs, los servicios y los dominios de Google que no están en la lista de APIs y servicios obligatorios. Si deseas llamar a una API desde un DAG, haz lo siguiente:

  1. Asegúrate de que el servicio admita los Controles del servicio de VPC.
  2. Agrega el servicio a los servicios restringidos.
  3. Agrega el servicio a los servicios accesibles de VPC.

Por ejemplo, si usas un operador de Vertex AI, agrega aiplatform.googleapis.com a los servicios restringidos y a los servicios accesibles de VPC.

Para obtener más información sobre cómo agregar servicios a un perímetro, consulta Administra perímetros de servicio en la documentación de los Controles del servicio de VPC.

En Airflow administrado (3ª gen.), no se puede acceder a los servicios que no admiten los Controles del servicio de VPC y que no están disponibles a través de restricted.googleapis.com desde entornos protegidos con los Controles del servicio de VPC. Esta restricción se agregó en Airflow administrado (3ª gen.) para mejorar la seguridad del entorno. Si bien Airflow administrado (2ª gen.) permite configurar el acceso a esos servicios no compatibles, te recomendamos que no lo hagas en ningún entorno protegido por los Controles del servicio de VPC.

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 Airflow administrado para tu proyecto. Consulta Habilita API para obtener referencia.

  2. Para crear un perímetro, sigue las instrucciones de configuración del perímetro en la documentación de los Controles del servicio de VPC. Asegúrate de que la lista de servicios restringidos incluya todos los servicios que usa Airflow administrado, además de otros servicios que deseas restringir:

    • API de Cloud Composer (composer.googleapis.com)
    • API de Artifact Registry (artifactregistry.googleapis.com)
    • API de Compute Engine (compute.googleapis.com)
    • API de Kubernetes Engine (container.googleapis.com)
    • API de Container File System (containerfilesystem.googleapis.com)
    • API de Cloud DNS (dns.googleapis.com)
    • API de Service Account Credentials (iamcredentials.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 SQL Admin (sqladmin.googleapis.com)
    • API de Cloud Storage (storage.googleapis.com)

    • Para todos los demás servicios que usan tus DAGs, haz lo siguiente:

      1. Agrega el servicio a los servicios restringidos.
      2. Agrega el servicio a los servicios accesibles de VPC.
  3. Crea un nuevo entorno de Airflow administrado:

    1. Usa Google Cloud CLI para crear tu entorno.
    2. Habilita la IP privada con el argumento --enable-private-environment.
    3. Especifica los parámetros de acceso para el servidor web con --web-server-allow-all, --web-server-allow-ip, o --web-server-deny-all argumentos. Para obtener más información sobre el uso de estos argumentos, consulta Crea entornos. Para mejorar la protección, solo permite el acceso al servidor web desde rangos de IP específicos.
    4. No permitas la instalación de paquetes desde repositorios públicos de Internet con el --enable-private-builds-only argumento.

      Ejemplo:

      gcloud composer environments create example-environment \
        --location us-central1 \
        --enable-private-environment \
        --web-server-allow-all \
        --enable-private-builds-only
      
  4. De forma predeterminada, solo se permite el acceso a la IU y la API de Airflow desde dentro del perímetro de seguridad. Si deseas que esté disponible fuera del perímetro de seguridad, configura los niveles de acceso o las reglas de entrada y salida.

Agrega un entorno existente al perímetro

Puedes agregar el proyecto que contiene tu entorno a un perímetro si tus entornos usan IP privadas y la instalación de paquetes de PyPI desde repositorios públicos está inhabilitada.

Para actualizar un entorno existente de Airflow administrado (3ª gen.) a esta configuración, haz lo siguiente:

  1. Asegúrate de haber creado o configurado el perímetro como se describe en la sección anterior.
  2. Usa Google Cloud CLI para actualizar tu entorno.
  3. Habilita la IP privada con el argumento --enable-private-environment.
  4. No permitas la instalación de paquetes desde repositorios públicos de Internet con el argumento --enable-private-builds-only.
  5. Si es necesario, configura 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.

Ejemplo:

gcloud composer environments update example-environment \
  --location us-central1 \
  --enable-private-environment \
  --enable-private-builds-only

Instala paquetes de PyPI en los Controles del servicio de VPC

En la configuración predeterminada de los Controles del servicio de VPC, Airflow administrado 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.

De forma predeterminada, todos los entornos de Airflow administrado dentro de un perímetro de Controles del servicio de VPC no tienen acceso a los repositorios públicos de PyPI.

Instala desde un repositorio privado

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

  1. Propágalo con los paquetes aprobados que usa tu organización y, luego, configura Airflow administrado para instalar dependencias de Python desde un repositorio privado.

Instala desde un repositorio público

Para instalar paquetes de PyPI desde un repositorio externo, haz lo siguiente:

  1. Crea un repositorio remoto de Artifact Registry.
  2. Otorga acceso a este repositorio a las fuentes ascendentes.
  3. Configura Airflow para instalar paquetes desde un repositorio de Artifact Registry.

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 Airflow administrado 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?