Airflow géré (3e génération) | Airflow géré (2e génération) | Airflow géré (ancienne 1re génération)
VPC Service Controls permet aux organisations de définir un périmètre autour des ressourcesGoogle Cloud pour limiter les risques d'exfiltration de données.
Les environnements Managed Airflow peuvent être déployés dans un périmètre de service. En configurant votre environnement avec VPC Service Controls, vous pouvez préserver la confidentialité des données sensibles tout en tirant parti des capacités d'orchestration de workflow entièrement gérées de Managed Airflow.
La compatibilité de VPC Service Controls avec Managed Airflow signifie que :
- Vous pouvez désormais sélectionner Managed Airflow comme service sécurisé dans un périmètre VPC Service Controls.
- Toutes les ressources sous-jacentes utilisées par Managed Airflow sont configurées pour prendre en charge l'architecture VPC Service Controls et respecter ses règles.
Le déploiement d'environnements Managed Airflow avec VPC Service Controls vous offre les avantages suivants :
- Réduction du risque d'exfiltration des données
- Protection contre l'exposition des données en raison d'une mauvaise configuration des contrôles des accès
- Réduction du risque de copie de données par des utilisateurs malveillants vers des ressourcesGoogle Cloud non autorisées ou d'accès à des ressourcesGoogle Cloud par des pirates informatiques externes depuis Internet.
À propos de VPC Service Controls dans Managed Airflow
- Toutes les contraintes réseau de VPC Service Controls s'appliquent également à vos environnements Managed Airflow. Pour en savoir plus, consultez la documentation de VPC Service Controls.
Si un environnement Managed Airflow est protégé par un périmètre, l'accès aux dépôts PyPI publics est limité. Pour en savoir plus, consultez Installer des packages PyPI dans VPC Service Controls.
Si votre environnement utilise la mise en réseau avec des adresses IP privées, tout le trafic interne est acheminé vers votre réseau VPC, à l'exception du trafic vers les API, services et domaines Google disponibles pour les environnements avec des adresses IP privées via l'accès privé à Google.
Selon la façon dont vous configurez votre réseau VPC, un environnement à adresse IP privée peut accéder à Internet via votre réseau VPC.
Managed Airflow n'est pas compatible avec l'utilisation d'identités tierces dans les règles d'entrée et de sortie pour autoriser les opérations de l'UI Apache Airflow. Toutefois, vous pouvez utiliser le type d'identité
ANY_IDENTITYdans les règles d'entrée et de sortie pour autoriser l'accès à toutes les identités, y compris les identités tierces. Pour en savoir plus sur le type d'identitéANY_IDENTITY, consultez Règles d'entrée et de sortie.En mode VPC Service Controls, l'accès au serveur Web est protégé par le périmètre et l'accès depuis l'extérieur du périmètre est bloqué. Pour autoriser l'accès depuis l'extérieur du périmètre de service, configurez des niveaux d'accès ou des règles d'entrée et de sortie selon vos besoins. De plus, vous pouvez limiter l'accès au serveur Web à des plages d'adresses IP spécifiques.
À propos de la connectivité aux API et services Google dans VPC Service Controls
Managed Airflow (génération 3) achemine le trafic vers les services Google via restricted.googleapis.com, ce qui permet d'accéder aux API, services et domaines Google compatibles avec cette plage.
Pour en savoir plus et obtenir la liste des services et des domaines disponibles via restricted.googleapis.com, consultez Configuration du réseau dans la documentation sur le cloud privé virtuel.
Les environnements Managed Airflow (génération 3) bloquent les appels aux API, services et domaines Google qui ne figurent pas dans la liste des API et services requis. Si vous souhaitez appeler une API à partir d'un DAG :
- Assurez-vous que le service est compatible avec VPC Service Controls.
- Ajoutez le service aux services restreints.
- Ajoutez le service aux services accessibles par VPC.
Par exemple, si vous utilisez un opérateur Vertex AI, ajoutez aiplatform.googleapis.com à la fois aux services restreints et aux services accessibles par VPC.
Pour savoir comment ajouter des services à un périmètre, consultez Gérer les périmètres de service dans la documentation de VPC Service Controls.
Dans Managed Airflow (Gen 3), les services qui ne sont pas compatibles avec VPC Service Controls et qui ne sont pas disponibles via restricted.googleapis.com ne sont pas accessibles depuis les environnements protégés par VPC Service Controls. Cette restriction a été ajoutée dans Managed Airflow (3e génération) pour renforcer la sécurité de l'environnement. Bien que Managed Airflow (Gen 2) permette de configurer l'accès à ces services non compatibles, nous vous recommandons vivement de ne pas le faire dans un environnement protégé par VPC Service Controls.
Périmètres pour les environnements avec VPC partagé et CMEK
Si votre environnement est protégé par un périmètre de service et utilise un VPC partagé, des clés de chiffrement gérées par le client (CMEK) ou les deux, assurez-vous que les projets suivants se trouvent dans le même périmètre de service :
- Projet de service : projet contenant l'environnement Managed Airflow.
- Projet hôte : le projet contenant le réseau VPC partagé.
- Projet qui héberge les clés Cloud Key Management Service.
Créer des environnements dans un périmètre
Pour déployer Managed Airflow dans un périmètre, procédez comme suit :
Activez l'API Access Context Manager et l'API Cloud Composer pour votre projet. Consultez la section Activer des API.
Créez un périmètre en suivant les instructions de configuration des périmètres dans la documentation de VPC Service Controls. Assurez-vous que la liste des services protégés par le périmètre inclut tous les services utilisés par Managed Airflow, en plus des autres services que vous souhaitez restreindre :
- API Cloud Composer (composer.googleapis.com)
- API Artifact Registry (artifactregistry.googleapis.com)
- API Compute Engine (compute.googleapis.com)
- API Kubernetes Engine (container.googleapis.com)
- API Container File System (containerfilesystem.googleapis.com)
- API Cloud DNS (dns.googleapis.com)
- API Sauvegarde pour GKE (gkebackup.googleapis.com)
- API Service Account Credentials (iamcredentials.googleapis.com)
- API Cloud Logging (logging.googleapis.com)
- API Cloud Monitoring (monitoring.googleapis.com)
- API Cloud Pub/Sub (pubsub.googleapis.com)
- API Cloud SQL Admin (sqladmin.googleapis.com)
API Cloud Storage (storage.googleapis.com)
Pour tous les autres services utilisés par vos DAG :
- Ajoutez le service aux services restreints.
- Ajoutez le service aux services accessibles par VPC.
Si votre périmètre de service limite l'accès aux API à l'aide des services accessibles par VPC, assurez-vous que la liste des services autorisés inclut tous les services utilisés par Managed Airflow.
Créez un environnement Managed Airflow :
- Utilisez Google Cloud CLI pour créer votre environnement.
- Activez l'adresse IP privée avec l'argument
--enable-private-environment. - Spécifiez les paramètres d'accès au serveur Web avec les arguments
--web-server-allow-all,--web-server-allow-ipou--web-server-deny-all. Pour en savoir plus sur l'utilisation de ces arguments, consultez Créer des environnements. Pour améliorer la protection, n'autorisez l'accès au serveur Web qu'à partir de plages d'adresses IP spécifiques. Interdisez l'installation de packages à partir de dépôts Internet publics avec l'argument
--enable-private-builds-only.Exemple :
gcloud composer environments create example-environment \ --location us-central1 \ --enable-private-environment \ --web-server-allow-all \ --enable-private-builds-only
Par défaut, l'accès à l'UI et à l'API Airflow n'est autorisé qu'à l'intérieur du périmètre de sécurité. Si vous souhaitez le rendre disponible en dehors du périmètre de sécurité, configurez des niveaux d'accès ou des règles d'entrée et de sortie.
Par défaut, votre environnement ne peut pas accéder aux ressources en dehors du périmètre, même si une API correspondante est ajoutée à la liste des services accessibles par VPC. Pour autoriser l'accès aux ressources en dehors du périmètre, configurez une liaison de périmètre, des règles d'entrée et de sortie, ou déplacez les ressources vers le même périmètre.
Par exemple, supposons que vous disposiez d'une clé Cloud KMS dans le périmètre A et d'un environnement Managed Airflow dans le périmètre B. Même si vous autorisez l'API Cloud Key Management Service dans le périmètre B à l'aide de services accessibles au VPC, votre environnement ne peut toujours pas accéder à la clé. Vous devez également configurer la communication au-delà de la limite du périmètre.
Ajouter un environnement existant au périmètre
Vous pouvez ajouter le projet contenant votre environnement à un périmètre si vos environnements utilisent une adresse IP privée et que l'installation de packages PyPI à partir de dépôts publics est désactivée.
Pour mettre à jour un environnement Managed Airflow (3e génération) existant avec cette configuration :
- Assurez-vous d'avoir déjà créé ou configuré le périmètre comme décrit dans la section précédente.
- Utilisez Google Cloud CLI pour mettre à jour votre environnement.
- Activez l'adresse IP privée avec l'argument
--enable-private-environment. - Interdisez l'installation de packages à partir de dépôts Internet publics avec l'argument
--enable-private-builds-only. - Si nécessaire, configurez l'accès au serveur Web Airflow. Pour améliorer la protection, n'autorisez l'accès au serveur Web qu'à partir de plages d'adresses IP spécifiques.
Exemple :
gcloud composer environments update example-environment \
--location us-central1 \
--enable-private-environment \
--enable-private-builds-only
Installer des packages PyPI dans VPC Service Controls
Dans la configuration VPC Service Controls par défaut, Managed Airflow n'accepte que l'installation de packages PyPI à partir de dépôts privés accessibles depuis l'espace d'adresses IP internes du réseau VPC.
Par défaut, tous les environnements Managed Airflow d'un périmètre VPC Service Controls n'ont pas accès aux dépôts PyPI publics.
Installer à partir d'un dépôt privé
La configuration recommandée consiste à configurer un dépôt PyPI privé :
Remplissez-le avec les packages approuvés utilisés par votre organisation, puis configurez Managed Airflow pour installer les dépendances Python à partir d'un dépôt privé.
Installer à partir d'un dépôt public
Pour installer des packages PyPI à partir d'un dépôt externe :
- Créez un dépôt distant Artifact Registry.
- Accordez à ce dépôt l'accès aux sources en amont.
- Configurez Airflow pour installer des packages à partir d'un dépôt Artifact Registry.
Journaux VPC Service Controls
Lorsque vous résolvez des problèmes de création d'environnement, vous pouvez analyser les journaux d'audit générés par VPC Service Controls.
En plus des autres messages de journaux, vous pouvez consulter les journaux pour obtenir des informations sur les comptes de service cloud-airflow-prod@system.gserviceaccount.com et service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com qui configurent les composants de vos environnements.
Le service Managed Airflow utilise le compte de service cloud-airflow-prod@system.gserviceaccount.com pour gérer les composants du projet locataire de vos environnements.
Le compte de service service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com, également appelé compte de service de l'agent de service Composer, gère les composants de l'environnement dans les projets de service et hôtes.