Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
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 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 deGoogle Cloud no autorizados o de que atacantes externos accedan a recursos deGoogle Cloud desde Internet.
Acerca de los Controles del servicio de VPC en Cloud Composer
- 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 un entorno de Cloud Composer 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 privadas, todo el tráfico interno se enruta a tu red de VPC, excepto el tráfico a las APIs, los servicios y los dominios de Google que están disponibles para los entornos de IP privadas 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.
Cloud Composer no admite el uso de identidades de terceros en las reglas de entrada y salida para permitir las operaciones de la IU de Apache Airflow. Sin embargo, puedes usar el tipo de identidad
ANY_IDENTITYen las reglas de entrada y salida para permitir el acceso a todas las identidades, incluidas las de terceros. Para obtener más información sobre el tipo de identidadANY_IDENTITY, consulta Reglas de entrada y salida.En el modo de Controles del servicio de VPC, el acceso al servidor web está protegido por el perímetro y se bloquea el acceso desde fuera del perímetro. Para permitir el acceso desde fuera del perímetro de servicio, configura los niveles de acceso o las reglas de entrada y salida según sea necesario. Además, puedes restringir el acceso al servidor web a rangos de IP específicos.
Crea entornos en un perímetro
Se requieren los siguientes pasos para implementar Cloud Composer dentro de un perímetro:
Habilita la API de Access Context Manager y la API de Cloud Composer para tu proyecto. Consulta Habilita API para obtener referencia.
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)
- La API de Cloud Storage (storage.googleapis.com)
- API de Administrador de Cloud SQL (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 del servicio de token de seguridad (sts.googleapis.com)
- API de Cloud Resource Manager (cloudresourcemanager.googleapis.com)
- API de Service Directory (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
Crea un entorno nuevo de Cloud Composer:
La IP privada debe estar habilitada. Ten en cuenta que esta configuración debe establecerse durante la creación del 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.
De forma predeterminada, solo se permite el acceso a la IU y la API de Airflow desde el perímetro de seguridad. Si deseas que esté disponible fuera del perímetro de seguridad, configura niveles de acceso o 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 se cumplen las siguientes condiciones:
- Ya creaste o configuraste el perímetro como se describe en la sección anterior.
- Tus entornos usan IP privada.
Instala paquetes de PyPI en los Controles del servicio de VPC
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 internas de la red de VPC.
De forma predeterminada, todos los entornos de Cloud Composer 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:
Propágalo con los paquetes aprobados que usa tu organización y, luego, configura Cloud Composer para instalar dependencias de Python desde un repositorio privado.
Otorga permisos adicionales para instalar paquetes desde repositorios privados 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:
- Crea un repositorio remoto de Artifact Registry.
- Otorga a este repositorio acceso a las fuentes upstream.
- Configura Airflow para instalar paquetes desde un repositorio de Artifact Registry.
- Otorga permisos adicionales para instalar paquetes desde repositorios de Artifact Registry en 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:
Configura Cloud NAT para permitir que Cloud Composer se ejecute en el espacio de IP privada y se conecte con repositorios externos de PyPI.
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 las APIs y los servicios de Google a través de restricted.googleapis.com. Este dominio bloquea el acceso a las APIs y los servicios de Google que no son compatibles con los Controles del servicio de VPC.
Los entornos de Cloud Composer usan los siguientes dominios:
*.googleapis.comse usa para acceder a otros servicios de Google.*.composer.cloud.google.comse usa para que el servidor web de Airflow de tu entorno sea accesible. Esta regla se debe aplicar antes de crear un entorno.- Como alternativa, puedes crear una regla para una región específica. Para ello, usa
REGION.composer.cloud.google.com. ReemplazaREGIONpor la región en la que se encuentra el entorno, por ejemplo,us-central1.
- Como alternativa, puedes crear una regla para una región específica. Para ello, usa
(Opcional) Se usa
*.composer.googleusercontent.comcuando se accede al servidor web de Airflow de tu entorno. Esta regla solo es necesaria si accedes al servidor web de Airflow desde una instancia que se ejecuta en la red de VPC y no es necesaria en otros casos. Un caso de uso común para esta regla es cuando deseas llamar a la API de REST de Airflow desde la red de VPC.- Como alternativa, puedes crear una regla para un entorno específico. Para ello, usa
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com. ReemplazaENVIRONMENT_WEB_SERVER_NAMEpor la parte única de la URL de la IU de Airflow de tu entorno, por ejemplo,bffe6ce6c4304c55acca0e57be23128c-dot-us-central1.
- Como alternativa, puedes crear una regla para un entorno específico. Para ello, usa
*.pkg.devse usa para obtener imágenes del entorno, por ejemplo, cuando se crea o actualiza un entorno.*.gcr.ioGKE requiere conectividad al dominio de Container Registry, independientemente de 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 de recurso: CNAMENombre canónico: googleapis.com. |
Tipo de registro de recurso: ADirecciones 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 de recurso: CNAMENombre canónico: composer.cloud.google.com. |
Tipo de registro de recurso: ADirecciones IPv4: 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7
|
*.composer.googleusercontent.com
(opcional; consulta la descripción) |
composer.googleusercontent.com. |
Nombre de DNS: *.composer.googleusercontent.com.Tipo de registro de recurso: CNAMENombre canónico: composer.googleusercontent.com. |
Tipo de registro de recurso: ADirecciones 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 recurso: CNAMENombre canónico: pkg.dev. |
Tipo de registro de recurso: ADirecciones 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 recurso: CNAMENombre canónico: gcr.io. |
Tipo de registro de recurso: ADirecciones 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:
Crea una zona de DNS nueva y usa Nombre de DNS como el nombre de DNS de esta zona.
Ejemplo:
pkg.dev.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.
- Nombre de DNS:
Agrega un conjunto de registros con el 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
- Tipo de registro de recursos:
Para obtener más información, consulta Configura una conectividad privada a 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 propagadas previamente en la red predeterminada, verifica que estén configuradas las siguientes reglas de firewall.
Por ejemplo, Cloud Composer podría no 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 desde tu entorno:
- Consulta Cómo usar reglas de firewall para aprender a verificar, agregar y actualizar las reglas de tu red de VPC.
- Usa la Herramienta de conectividad para validar la conectividad entre los rangos de IP.
- Puedes usar etiquetas de redes 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 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 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 |
| (Si tu entorno usa Private Service Connect) Subred de conexión | Salida | Permitir | Rango de subred de conexión de Cloud Composer | TCP | 3306 y 3307 |
| (Si tu entorno usa intercambios de tráfico entre VPC) Red de arrendatario | Salida | Permitir | Rango de IP de la red de usuarios de Cloud Composer | TCP | 3306 y 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 Clusters del clúster de tu entorno:
En la consola de Google Cloud , ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
Sigue el vínculo Ver 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 la subred del entorno y el ID de la subred de conexión de Cloud Composer en la pestaña Configuración del entorno. Para 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:
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 Cloud Composer usa la cuenta de servicio cloud-airflow-prod@system.gserviceaccount.com para administrar los componentes del proyecto del inquilino 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.