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 los recursos deGoogle Cloud para mitigar los riesgos de robo de datos.

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

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

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

La implementación de entornos de Managed Airflow con Controles del servicio de VPC te brinda 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
  • Se reduce el riesgo de que usuarios maliciosos copien datos a recursosGoogle Cloud no autorizados o de que atacantes externos accedan a recursosGoogle Cloud desde Internet.

Acerca de los Controles del servicio de VPC en Managed Airflow

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

Managed Airflow (Gen 3) 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 Managed Airflow (Gen 3) bloquean las llamadas a las APIs, los servicios y los dominios de Google que no se encuentran 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 tanto a los servicios restringidos como 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 Managed Airflow (gen. 3), 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 los entornos protegidos con los Controles del servicio de VPC. Esta restricción se agregó en Managed Airflow (3ª gen.) para mejorar la seguridad del entorno. Si bien Managed Airflow (gen. 2) permite configurar el acceso a esos servicios no compatibles, recomendamos evitar hacerlo en cualquier entorno protegido por los Controles del servicio de VPC.

Perímetros para entornos con VPC compartida y CMEK

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

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

Crea entornos en un perímetro

Sigue estos pasos para implementar Managed Airflow 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. Crea un perímetro siguiendo 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 protegidos por el perímetro incluya todos los servicios que usa Managed Airflow, además de otros servicios que quieras 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 sistema de archivos de contenedores (containerfilesystem.googleapis.com)
    • API de Cloud DNS (dns.googleapis.com)
    • Copia de seguridad para GKE API (gkebackup.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. Si tu perímetro de servicio restringe el acceso a la API con los servicios accesibles de VPC, asegúrate de que la lista de servicios permitidos incluya todos los servicios que usa Managed Airflow.

  4. Crea un entorno de Managed Airflow nuevo:

    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 los argumentos --web-server-allow-all, --web-server-allow-ip o --web-server-deny-all. Para obtener más información sobre el uso de estos argumentos, consulta Crea entornos. Para mejorar la protección, permite el acceso al servidor web solo desde rangos de IP específicos.
    4. No permitir la instalación de paquetes desde repositorios de Internet públicos con el argumento --enable-private-builds-only

      Ejemplo:

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

  6. De forma predeterminada, tu entorno no puede acceder a recursos fuera del perímetro, incluso si se agrega una API correspondiente a la lista de servicios accesibles de VPC. Para permitir el acceso a recursos fuera del perímetro, configura un puente perimetral, reglas de entrada y salida, o bien mueve los recursos al mismo perímetro.

    Por ejemplo, supongamos que tienes una clave de Cloud KMS en el perímetro A y un entorno de Managed Airflow en el perímetro B. Incluso si permites la API de Cloud Key Management Service en el perímetro B con los servicios accesibles de VPC, tu entorno no podrá acceder a la clave. También debes configurar la comunicación a través del límite del perímetro.

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 Managed Airflow (3ª gen.) a esta configuración, sigue estos pasos:

  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 permitir la instalación de paquetes desde repositorios de Internet públicos con el argumento --enable-private-builds-only
  5. Si es necesario, configura el acceso al servidor web de Airflow. Para mejorar la protección, permite el acceso al servidor web solo 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, 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.

De forma predeterminada, todos los entornos de Managed Airflow dentro de un perímetro de los 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. Completa el repositorio con los paquetes verificados que usa tu organización y, luego, configura Managed Airflow 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 a este repositorio acceso a fuentes upstream.
  3. Configura Airflow para instalar paquetes desde un repositorio de Artifact Registry.

Registros de los Controles del servicio de VPC

Cuando solucionas problemas relacionados con la creación de entornos, puedes analizar los registros de auditoría que generan los Controles del servicio de VPC.

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

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

La cuenta de servicio service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com, 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?