Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Controles de Servicio de VPC permite a las organizaciones definir un perímetro alrededor de los recursos deGoogle Cloud para mitigar el riesgo de filtración externa de datos.
Los entornos de Cloud Composer se pueden desplegar en un perímetro de servicio. Si configuras tu entorno con Controles de Servicio de VPC, puedes mantener la confidencialidad de los datos sensibles y, al mismo tiempo, beneficiarte de las funciones de orquestación de flujos de trabajo totalmente gestionadas de Cloud Composer.
La compatibilidad de Controles de Servicio de VPC con Cloud Composer implica lo siguiente:
- Ahora se puede seleccionar Cloud Composer como servicio seguro dentro de un perímetro de Controles de Servicio de VPC.
- Todos los recursos subyacentes que usa Cloud Composer están configurados para admitir la arquitectura de Controles de Servicio de VPC y seguir sus reglas.
Al implementar entornos de Cloud Composer con Controles de Servicio de VPC, obtienes lo siguiente:
- Se reduce el riesgo de filtración externa de datos.
- Protección frente a la exposición de datos debido a controles de acceso mal configurados.
- Se reduce el riesgo de que usuarios malintencionados copien datos en recursos no autorizados o de que atacantes externos accedan a recursos desde Internet.Google Cloud Google Cloud
Acerca de los Controles de Servicio de VPC en Cloud Composer
- Todas las restricciones de red de Controles de Servicio de VPC también se aplican a tus entornos de Cloud Composer. Para obtener más información, consulta la documentación de Controles de Servicio de VPC.
Si un entorno de Cloud Composer está protegido por un perímetro, el acceso a los repositorios públicos de PyPI estará restringido. Para obtener más información, consulta el artículo sobre cómo instalar paquetes de PyPI en Controles de Servicio de VPC.
Si tu entorno usa redes de IP privadas, todo el tráfico interno se dirige 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 privada a través del acceso privado de Google.
En función de 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.
En el modo Controles de 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 niveles de acceso o reglas de entrada y salida según sea necesario. Además, puedes restringir el acceso al servidor web a intervalos de IP específicos.
Crear entornos en un perímetro
Para desplegar Cloud Composer dentro de un perímetro, debes seguir estos pasos:
Habilita las APIs Access Context Manager y Cloud Composer en tu proyecto. Consulta la sección Habilitar APIs.
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)
- API de Cloud Storage (storage.googleapis.com)
- API Admin 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 Security Token Service (sts.googleapis.com)
- API de Cloud Resource Manager (cloudresourcemanager.googleapis.com)
- API Service Directory (servicedirectory.googleapis.com)
- API de Cloud Key Management Service (cloudkms.googleapis.com), si usas claves de Cloud KMS o CMEK.
- API Secret Manager (secretmanager.googleapis.com), si usas Secret Manager como backend de secretos.
Crea un entorno de Cloud Composer:
La opción IP privada debe estar habilitada. Ten en cuenta que esta opción debe configurarse durante la creación del entorno.
Recuerda configurar el acceso al servidor web de Airflow. Para mejorar la protección, permite el acceso al servidor web solo desde intervalos de IP específicos. Para obtener más información, consulta Configurar el acceso a la red del servidor web.
De forma predeterminada, solo se permite el acceso a la interfaz de usuario y a 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.
Añadir un entorno a un perímetro
Puedes añadir el proyecto que contiene tu entorno a un perímetro si se cumplen las siguientes condiciones:
- Ya has creado o configurado el perímetro como se describe en la sección anterior.
- Tus entornos usan IPs privadas.
Instalar paquetes de PyPI en Controles de Servicio de VPC
En la configuración predeterminada de Controles de 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 que se encuentren dentro de un perímetro de Controles de Servicio de VPC no tienen acceso a los repositorios públicos de PyPI.
Instalar desde un repositorio privado
La configuración recomendada es configurar un repositorio privado de PyPI:
Rellénalo con los paquetes verificados que usa tu organización y, a continuación, configura Cloud Composer para instalar dependencias de Python desde un repositorio privado.
Concede permisos adicionales para instalar paquetes de repositorios privados a la cuenta de servicio de tu entorno, tal como se describe en Control de acceso.
Instalar desde un repositorio público
Repositorio remoto
Este es el método recomendado para instalar paquetes desde un repositorio público.
Para instalar paquetes de PyPI desde repositorios que no estén en el espacio de IP privada, sigue estos pasos:
- Crea un repositorio remoto de Artifact Registry.
- Concede a este repositorio acceso a las fuentes upstream.
- Configura Airflow para instalar paquetes desde un repositorio de Artifact Registry.
- Concede permisos adicionales para instalar paquetes de repositorios de Artifact Registry en la cuenta de servicio de tu entorno, tal como se describe en Control de acceso.
Conexiones externas
Para instalar paquetes de PyPI desde repositorios que no estén en el espacio de IP privada, sigue estos pasos:
Configura Cloud NAT para permitir que Cloud Composer, que se ejecuta en el espacio de IP privada, se conecte con repositorios PyPI externos.
Configura tus reglas de cortafuegos para permitir las conexiones salientes del clúster de Composer al repositorio.
Configurar la conectividad con las APIs y los servicios de Google
En una configuración de Controles de Servicio de VPC, para controlar el tráfico de red, configure 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 admiten Controles de 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 que el servidor web de Airflow de tu entorno sea accesible. Esta regla debe aplicarse antes de crear un entorno.- También puedes crear una regla para una región concreta. Para ello, usa
REGION.composer.cloud.google.com
. SustituyeREGION
por la región en la que se encuentra el entorno. Por ejemplo,us-central1
.
- También puedes crear una regla para una región concreta. Para ello, usa
(Opcional)
*.composer.googleusercontent.com
se usa al acceder al servidor web de Airflow de tu entorno. Esta regla solo es obligatoria si accedes al servidor web de Airflow desde una instancia que se ejecuta en la red VPC. En el resto de los casos, no es necesaria. Un caso habitual de esta regla es cuando quieres llamar a la API REST de Airflow desde la red de VPC.- También puedes crear una regla para un entorno específico. Para ello, usa
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com
. SustituyeENVIRONMENT_WEB_SERVER_NAME
por la parte única de la URL de la interfaz de usuario de Airflow de tu entorno. Por ejemplo,bffe6ce6c4304c55acca0e57be23128c-dot-us-central1
.
- También puedes crear una regla para un entorno específico. Para ello, usa
*.pkg.dev
se usa para obtener imágenes de entorno, como al crear o actualizar un entorno.*.gcr.io
GKE requiere conectividad con el dominio de Container Registry, independientemente de la versión de Cloud Composer.
Configura la conectividad con el endpoint restricted.googleapis.com
:
Dominio | Nombre de DNS | Registro CNAME | Registro A |
---|---|---|---|
*.googleapis.com
|
googleapis.com. |
Nombre de DNS: *.googleapis.com. Tipo de registro de recursos: 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 de recursos: 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
|
*.composer.googleusercontent.com
(opcional, consulta la descripción) |
composer.googleusercontent.com. |
Nombre de DNS: *.composer.googleusercontent.com. Tipo de registro de recursos: CNAME Nombre canónico: composer.googleusercontent.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 de recursos: 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 de recursos: 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:
Crea una zona DNS y usa Nombre de DNS como nombre de DNS de esta zona.
Ejemplo:
pkg.dev.
Añade un conjunto de registros para Registro CNAME.
Ejemplo:
- Nombre de DNS:
*.pkg.dev.
- Tipo de registro de recursos:
CNAME
- Nombre canónico:
pkg.dev.
- Nombre de DNS:
Añade un conjunto de registros con un 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 el artículo sobre cómo configurar la conectividad privada en servicios y APIs de Google.
Configurar reglas de cortafuegos
Si tu proyecto tiene reglas de cortafuegos que no son las predeterminadas, como reglas que anulan las reglas de cortafuegos implícitas o que modifican las reglas predefinidas de la red predeterminada, verifica que las siguientes reglas de cortafuegos estén configuradas.
Por ejemplo, Cloud Composer podría no crear un entorno si tienes una regla de firewall que deniega todo el tráfico de salida. Para evitar problemas, define reglas allow
selectivas que sigan la lista y tengan una prioridad mayor que la regla deny
global.
Configura tu red de VPC para permitir el tráfico de tu entorno:
- Consulta Usar reglas de cortafuegos para saber cómo comprobar, añadir y actualizar reglas de tu red de VPC.
- Usa la herramienta de conectividad para validar la conectividad entre intervalos de IP.
- Puede usar etiquetas de red para limitar aún más el acceso. Puede definir estas etiquetas al crear un entorno.
Descripción | Dirección | Acción | Origen o destino | Protocolos | Puertos |
---|---|---|---|---|---|
DNS Configurar como se describe en Compatibilidad con Controles de Servicio de VPC para Cloud DNS |
- | - | - | - | - |
APIs y servicios de Google | Salida | Permitir | Direcciones IPv4 de restricted.googleapis.com que uses para las APIs y los servicios de Google. |
TCP | 443 |
Nodos del clúster del entorno | Salida | Permitir | Intervalo de direcciones IP principales de la subred del entorno | TCP, UDP | todos |
Pods de clúster del entorno | Salida | Permitir | Intervalo de direcciones IP secundario para los pods de la subred del entorno | TCP, UDP | todos |
Plano de control del clúster del entorno | Salida | Permitir | Intervalo de IPs del plano de control de GKE | TCP, UDP | todos |
Si tu entorno usa Private Service Connect, subred de conexión | Salida | Permitir | Intervalo de subred de conexión de Cloud Composer | TCP | 3306, 3307 |
(Si tu entorno usa emparejamientos de VPC) Red de inquilino | Salida | Permitir | Intervalo de IP de la red de tenant de Cloud Composer | TCP | 3306, 3307 |
Para obtener los intervalos de IPs del clúster del entorno, sigue estos pasos:
Los intervalos de direcciones de pods, servicios y planos de control están disponibles en la página Clústeres del clúster de tu entorno:
En la Google Cloud consola, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
Sigue el enlace Ver los detalles del clúster.
Puedes ver el intervalo de IPs de la red de arrendatario 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 intervalos 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 Controles de Servicio de VPC
Cuando solucionas problemas de creación de entornos, puedes analizar los registros de auditoría generados por Controles de 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 componentes de tus entornos.
El servicio Cloud Composer usa la cuenta de servicio cloud-airflow-prod@system.gserviceaccount.com
para gestionar los componentes del proyecto de 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, gestiona los componentes del entorno en los proyectos de servicio y host.