Configurar los Controles del servicio de VPC

Cloud Composer 1 | Cloud Composer 2

Los 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 capacidades 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 protegido dentro del perímetro de los Controles del servicio de VPC.
  • Todos los recursos subyacentes que usa Cloud Composer se configuran para admitir la arquitectura de los Controles del servicio de VPC y seguir sus reglas.

Implementar entornos de Cloud Composer 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 de Google Cloud, o ante atacantes externos que acceden a recursos de Google Cloud desde Internet.

Servidor web de Airflow en modo de Controles del servicio de VPC

En el modo de Controles del servicio de VPC, el perímetro protege el acceso al servidor web y el acceso desde fuera del perímetro está bloqueado.

Para permitir el acceso desde fuera del perímetro de servicio, configura el nivel de acceso de forma adecuada.

Crea un perímetro de servicio

Consulta Crea un perímetro de servicio a fin de obtener información para 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 pasos adicionales necesarios para implementar Cloud Composer dentro de un perímetro. Cuando creas 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 Habilita API para obtener referencia.

  2. Asegúrate de que el perímetro de servicio tenga los siguientes servicios accesibles de VPC. De lo contrario, es posible que el entorno no se pueda crear:

    • 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)
    • La API de Cloud Storage (storage.googleapis.com)
    • API de Administrador de Cloud SQL (sqladmin.googleapis.com)
    • API de Cloud Build (cloudbuild.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 Security Token Service (sts.googleapis.com)
    • API de Cloud Resource Manager (cloudresourcemanager.googleapis.com)
    • API de Directorio de servicios (servicedirectory.googleapis.com)
    • La API de Cloud Key Management Service (cloudkms.googleapis.com), si usas Cloud KMS o claves CMEK
    • La API de Secret Manager (secretmanager.googleapis.com), si usas Secret Manager como backend de secretos

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

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

  5. De forma predeterminada, el acceso a la IU y la API de Airflow solo se permite desde el perímetro de seguridad. Si deseas que esté disponible fuera del perímetro de seguridad, configura el nivel de acceso de forma adecuada, como se describe en Permite el acceso a recursos protegidos desde el exterior de un perímetro.

Configura entornos existentes con los Controles del servicio de VPC

Puedes agregar el proyecto que contiene tu entorno al perímetro si se cumplen las siguientes condiciones:

Instala paquetes de PyPI

En la configuración predeterminada de los Controles del servicio de VPC, Cloud Composer solo admite la instalación de paquetes de 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 privada. Lleva a cabo los pasos siguientes:

  1. Configura Cloud NAT para permitir que Cloud Composer se ejecute en el espacio de IP privada y 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.

Cuando uses esta configuración, asegúrate de comprender los riesgos de usar repositorios externos. Asegúrate de confiar en el contenido y la integridad de los repositorios externos, ya que estas conexiones podrían usarse como vectores de robo de datos.

Configura la conectividad con los servicios y las API de Google

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

Los entornos de Cloud Composer usan los siguientes dominios:

  • *.googleapis.com se usa para acceder a otros servicios de Google.
  • *.composer.cloud.google.com se usa para acceder a la IU de Airflow y a la IU del DAG del entorno.
  • *.pkg.dev se usa para obtener imágenes del entorno, como cuando se crea o se actualiza un entorno.
  • *.gcr.io GKE requiere conectividad al dominio de Container Registry sin importar la versión de Cloud Composer.

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 del recurso: 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
*.composer.cloud.google.com composer.cloud.google.com. Nombre de DNS: *.composer.cloud.google.com.
Tipo de registro del recurso: CNAME
Nombre canónico: composer.cloud.google.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 del recurso: 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 del recurso: 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, sigue estos pasos:

  1. Crea una zona DNS nueva y usa el nombre de DNS como el nombre de DNS de la zona.

    Ejemplo: pkg.dev.

  2. Agrega un conjunto de registros para el 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 A Record:

    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 Configura la conectividad privada a los servicios y las API 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 modifica las reglas de firewall prepropagadas en la red predeterminada, verifica que las siguientes reglas de firewall estén configuradas.

Por ejemplo, es posible que Cloud Composer no pueda crear un entorno si tienes una regla de firewall que rechace 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 la red de VPC para permitir el tráfico desde el entorno:

  • Consulta Usa reglas de firewall para obtener información sobre cómo verificar, agregar y actualizar reglas en tu red de VPC.
  • Usa la Herramienta de conectividad para validar la conectividad entre rangos de IP.
  • Puedes usar etiquetas de red para limitar aún más el acceso. Puedes establecer estas etiquetas cuando creas un entorno.
Descripción Dirección Acción Origen o destino Protocolos Puertos
DNS

Configúralo como se describe en Compatibilidad de los Controles del servicio de VPC para Cloud DNS
- - - - -
API y servicios de Google Salida Permitir Direcciones IPv4 de restricted.googleapis.com que usas para las APIs y los servicios 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 los 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
Subred de conexión (si tu entorno usa Private Service Connect) Salida Permitir Rango de subred de la conexión de Cloud Composer TCP 3306 o 3307.
Red de usuarios (si tu entorno usa intercambios de tráfico de VPC) Salida Permitir Rango de IP de la red de usuarios de Cloud Composer TCP 3306 o 3307.

Para obtener los rangos de IP, sigue estos pasos:

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

    1. En la consola de Google Cloud, 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 para ver los detalles del clúster.

  • Puedes ver el rango de IP de la red de usuarios de Cloud Composer del entorno en la pestaña Configuración del entorno.

  • Puedes ver el ID de subred del entorno y el ID de subred de conexión de Cloud Composer en la pestaña Configuración del entorno. Si quieres obtener los rangos de IP de 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 del entorno, puedes analizar los registros de auditoría que generan los Controles del servicio de VPC.

Además de otros mensajes de registro, puedes verificar 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 componentes de los entornos.

El servicio de Cloud Composer usa la cuenta de servicio cloud-airflow-prod@system.gserviceaccount.com para administrar los componentes de proyectos de usuario de tus entornos.

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

Limitaciones

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