Configura los Controles del servicio de VPC

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

Los entornos de Cloud Composer 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 funciones de organización de flujos de trabajo completamente administradas de Cloud Composer.

La compatibilidad con los Controles del servicio de VPC para Cloud Composer significa lo siguiente:

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

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

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

Crea un perímetro de servicio

Consulta Cómo crear un perímetro de servicio para aprender a crear y configurar perímetros de servicio. Asegúrate de seleccionar Cloud Composer como uno de los servicios protegidos dentro del perímetro.

Crea entornos en un perímetro

Hay algunos pasos adicionales necesarios para implementar Cloud Composer dentro de un perímetro. Cuando crees tu entorno de Cloud Composer, sigue estos pasos:

  1. Habilita la API de Access Context Manager y la API de Cloud Composer para tu proyecto. Consulta Cómo habilitar las API para obtener referencias.

  2. Incluye en la lista blanca las siguientes cuentas de servicio. Para ello, agrégalas a un AccessLevel y adjúntalas al perímetro de servicio:

    • PROJECT_NUMBER@cloudservices.gserviceaccount.com: Esta cuenta de servicio ejecuta procesos internos de Google en tu nombre y no aparece en la sección Cuentas de servicio de Cloud Console. Puedes obtener más información al respecto en esta página.
    • cloud-logs@system.gserviceaccount.com: Esta cuenta de servicio permite que Cloud Composer almacene registros en el servicio Cloud Monitoring de tu proyecto.
  3. Agrega los siguientes servicios al perímetro para obtener la máxima protección de tu entorno: Cloud SQL, Pub/Sub, Monitoring, Cloud Storage, Kubernetes Engine y Container Registry.

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

  5. Habilita la serialización de DAG en la base de datos de Airflow. Para ello, agrega la anulación de configuración [core] store_serialized_dags=True y [core] store_dag_code=True en la sección core cuando crees un entorno. Consulta serialización de DAG para obtener más detalles.

  6. Crea un nuevo entorno de Cloud Composer con la IP privada habilitada. Ten en cuenta que esta configuración debe configurarse durante la creación del entorno.

  7. Cuando crees tu entorno, recuerda configurar el acceso al servidor web de Airflow. Para obtener la máxima protección, solo permite el acceso al servidor web desde rangos de IP específicos. Para obtener más información, consulta el paso 5 en Crea un entorno nuevo.

Configura entornos existentes con los Controles del servicio de VPC

Si tu entorno cumple con ciertas condiciones, puedes configurar Cloud Composer para que funcione dentro de un perímetro:

  1. El entorno se creó con la API de Composer Beta, con la IP privada habilitada.

  2. La serialización de DAG está activada.

Si se cumplen estas condiciones, puedes agregar el proyecto que contiene tu entorno al perímetro, suponiendo que el perímetro se creó como se describe en la sección anterior.

Instala paquetes de PyPI

En la configuración de los Controles del servicio de VPC predeterminada (que se muestra arriba), Cloud Composer solo admite la instalación de paquetes PyPI desde repositorios privados a los que se puede acceder desde el espacio de direcciones IP privadas de la red de VPC. La configuración recomendada para este proceso es configurar un repositorio privado de PyPI, propagarlo con los paquetes aprobados que usa tu organización y, luego, Configurar Cloud Composer para instalar dependencias de Python desde un repositorio privado.

También es posible instalar paquetes de PyPI desde repositorios fuera del espacio de IP privado. Sigue estos pasos:

  1. Configura Cloud NAT para permitir que Composer se ejecute en el espacio de IP privado para conectarse con repositorios externos de PyPI.
  2. Configura tus reglas de firewall para permitir conexiones salientes desde el clúster de Composer al repositorio.

Cuando uses esta configuración, asegúrate de comprender los riesgos de usar repositorios externos y de estar cómodo con ellos. Asegúrate de que el contenido y la integridad de cualquier repositorio externo puedan usarse, ya que estas conexiones podrían usarse como un vector de robo.

Lista de tareas para la configuración de red

Tu red de VPC debe estar configurada correctamente para crear entornos de Cloud Composer dentro de un perímetro. Asegúrate de seguir los requisitos de configuración que se detallan a continuación.

  • Navega a la sección Red de VPC -> Firewall en Cloud Console y verifica que estén configuradas las siguientes reglas de firewall:

    • Permite la salida del rango de IP del nodo de GKE a cualquier lugar, puerto 53
    • Permitir la salida del rango de IP de nodo de GKE al rango de IP de nodo de GKE en todos los puertos
    • Permitir la salida del rango de IP del nodo de GKE al rango de IP de la instancia principal de GKE, todos los puertos
    • Permitir la salida del rango de IP de nodo de GKE a 199.36.153.4/30, puerto 443 (restricted.googleapis.com)
    • Permite la entrada de las verificaciones de estado de GCP 130.211.0.0/22,35.191.0.0/16 al rango de IP de nodo. Puertos TCP 80 y 443
    • Permite la salida del rango de IP del nodo a las verificaciones de estado de GCP. Puertos TCP 80 y 443.

    Consulta Cómo usar reglas de firewall para aprender a verificar, agregar y actualizar las reglas de tu red de VPC.

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

    • Verifica la existencia de una asignación de DNS de *.googleapis.com a restricted.googleapis.com
    • El DNS *.gcr.io debe resolverse como 199.36.153.4/30 de manera similar al extremo googleapis.com. Para ello, crea una zona nueva como: CNAME *.gcr.io -> gcr.io. A gcr.io. -> 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 a los servicios y las API de Google.

Limitaciones

  • Todas las restricciones de red de los Controles del servicio de VPC también se aplicarán a tus entornos de Cloud Composer. Consulta la documentación de los Controles del servicio de VPC para obtener más información.

  • Si habilitas la serialización de DAG, se evita que Airflow muestre una plantilla procesada con funciones en la IU web. Esto puede solucionarse en una versión futura de Airflow y Cloud Composer.

  • No se admite la configuración de 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 Cloud Composer. Esto no afecta el comportamiento de los complementos del programador o del trabajador, incluidos los operadores de Airflow, los sensores, etc.

  • Cuando Cloud Composer se ejecuta dentro de un perímetro, se restringe el acceso a los repositorios de PyPI públicos. Consulta la instalación de dependencias de Python para obtener información sobre cómo instalar módulos de PyPi en modo de IP privada.