Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
VPC Service Controls permet aux organisations de définir un périmètre autour des ressources Google Cloud afin de limiter les risques d'exfiltration de données.
Les environnements Cloud Composer peuvent être déployés dans un périmètre de service. En configurant votre environnement avec VPC Service Controls, vous pouvez garder vos données sensibles privées tout en profitant des fonctionnalités d'orchestration des workflows entièrement gérées de Cloud Composer.
La compatibilité de VPC Service Controls pour Cloud Composer implique les éléments suivants :
- Cloud Composer peut désormais être sélectionné en tant que service sécurisé dans un périmètre VPC Service Controls.
- Toutes les ressources sous-jacentes utilisées par Cloud Composer sont configurées pour assurer l'architecture de VPC Service Controls et respecter ses règles.
Le déploiement d'environnements Cloud Composer avec VPC Service Controls 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 des données par des utilisateurs malveillants vers des ressources Google Cloud non autorisées ou des pirates informatiques externes accédant aux ressources Google Cloud depuis Internet
Serveur Web Airflow en mode VPC Service Controls
En mode VPC Service Controls, Cloud Composer exécute deux instances du serveur Web Airflow. Identity-Aware Proxy équilibre la charge du trafic utilisateur entre ces instances. Les serveurs Web Airflow s'exécutent en mode lecture seule dont les conséquences sont les suivantes :
La sérialisation des DAG est activée. Le serveur Web Airflow n'analyse donc pas les fichiers de définition DAG.
Les plug-ins ne sont pas synchronisés avec le serveur Web. Vous ne pouvez donc pas modifier ni étendre les fonctionnalités du serveur Web avec des plug-ins.
Le serveur Web Airflow utilise une image de conteneur préconfigurée par le service Cloud Composer. Si vous installez des images PyPI dans votre environnement, elles ne sont pas installées sur l'image de conteneur du serveur Web.
Créer un périmètre de service
Pour savoir comment créer et configurer des périmètres de service, consultez la page Créer un périmètre de service. Veillez à sélectionner Cloud Composer comme l'un des services sécurisés au sein du périmètre.
Créer des environnements dans un périmètre
Certaines étapes supplémentaires sont requises pour déployer Cloud Composer dans un périmètre. Lors de la création d'un environnement Cloud Composer :
Activez l'API Access Context Manager et l'API Cloud Composer pour votre projet. Consultez la section Activer des API.
Assurez-vous que votre périmètre de service contient les services accessibles par VPC suivants, sinon la création de votre environnement risque d'échouer :
- API Cloud Composer (composer.googleapis.com)
- API Compute Engine (compute.googleapis.com)
- API Kubernetes Engine (container.googleapis.com)
- API Container Registry (containerregistry.googleapis.com)
- API Artifact Registry (artifactregistry.googleapis.com)
- API Cloud Storage (storage.googleapis.com)
- API Cloud SQL Admin (sqladmin.googleapis.com)
- API Cloud Logging (logging.googleapis.com)
- API Cloud Monitoring (monitoring.googleapis.com)
- API Cloud Pub/Sub (pubsub.googleapis.com)
- API Cloud Resource Manager (cloudresourcemanager.googleapis.com)
- API Service Directory (servicedirectory.googleapis.com)
- API Cloud Key Management Service (cloudkms.googleapis.com), si vous utilisez Cloud KMS ou des clés CMEK
- API Secret Manager (secretmanager.googleapis.com), si vous utilisez Secret Manager comme backend de secrets
Utilisez la version composer-1.10.4 ou ultérieure.
Assurez-vous que la sérialisation des DAG est activée. Si votre environnement utilise Cloud Composer version 1.15.0 et ultérieure, la sérialisation est activée par défaut.
Créez un environnement Cloud Composer où l'option Adresse IP privée est activée. Notez que ce paramètre doit être configuré lors de la création de l'environnement.
Lors de la création de votre environnement, n'oubliez pas de configurer l'accès au serveur Web Airflow. Pour bénéficier d'une protection maximale, autorisez uniquement l'accès au serveur Web à partir de plages d'adresses IP spécifiques. Pour en savoir plus, consultez Configurer l'accès réseau au serveur Web
Configurer des environnements existants avec VPC Service Controls
Vous pouvez ajouter le projet contenant votre environnement au périmètre si :
Vous avez créé le périmètre comme décrit dans la section précédente.
vos environnements sont des environnements d'adresse IP privée.
- la sérialisation des DAG est activée dans vos environnements.
Installer des packages PyPI
Dans la configuration par défaut de VPC Service Controls, Cloud Composer 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.
Installer à partir d'un dépôt privé
La configuration recommandée consiste à définir un dépôt PyPI privé, à insérer avec les packages approuvés utilisés par votre organisation, puis configurer Cloud Composer Installer des dépendances Python à partir d'un dépôt privé
Installer à partir d'un dépôt public
Dépôt distant
Il s'agit de l'approche recommandée pour installer des packages à partir d'un dépôt public.
Pour installer des packages PyPI à partir de dépôts situés en dehors de l'espace d'adresses IP privées, procédez comme suit :
- Créez un dépôt distant Artifact Registry.
- Accorder 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.
Connexions externes
Pour installer des packages PyPI à partir de dépôts situés en dehors de l'espace d'adresses IP privées, procédez comme suit :
Configurer Cloud NAT pour autoriser Cloud Composer s'exécutant dans l'espace d'adresses IP privées pour se connecter à des PyPI externes des dépôts.
Configurez vos règles de pare-feu pour autoriser les connexions sortantes du cluster Composer vers le dépôt.
Compte de service utilisé pour le plan de données Cloud Composer
doit disposer des rôles d'autorisation suivants: Composer.Worker
et
iam.serviceAccountUser
Configurer la connectivité aux API et services Google
Dans une configuration VPC Service Controls, pour contrôler le trafic réseau, configurez l'accès aux API et services Google via restricted.googleapis.com
. Ce domaine bloque l'accès aux API et services Google qui ne sont pas compatibles avec VPC Service Controls.
Les environnements Cloud Composer utilisent les domaines suivants :
*.googleapis.com
permet d'accéder à d'autres services Google.*.pkg.dev
permet d'obtenir des images de l'environnement, par exemple lors de la création ou et à mettre à jour un environnement.*.gcr.io
GKE nécessite une connectivité à Domaine Container Registry, quelle que soit la version de Cloud Composer.
Configurez la connectivité au point de terminaison restricted.googleapis.com
:
Domaine | Nom DNS | Enregistrement CNAME | Enregistrement A |
---|---|---|---|
*.googleapis.com
|
googleapis.com. |
Nom DNS : *.googleapis.com. Type d'enregistrement de ressources : CNAME Nom canonique : googleapis.com. |
Type d'enregistrement de ressource: A Adresses IPv4: 199.36.153.4 , 199.36.153.5 , 199.36.153.6 , 199.36.153.7
|
*.pkg.dev
|
pkg.dev. |
Nom DNS : *.pkg.dev. Type d'enregistrement de ressources : CNAME Nom canonique : pkg.dev. |
Type d'enregistrement de ressource: A Adresses IPv4: 199.36.153.4 , 199.36.153.5 , 199.36.153.6 , 199.36.153.7
|
*.gcr.io
|
gcr.io. |
Nom DNS: *.gcr.io. Type d'enregistrement de ressource: CNAME Nom canonique: gcr.io. |
Type d'enregistrement de ressources : A Adresses IPv4 : 199.36.153.4 , 199.36.153.5 , 199.36.153.6 , 199.36.153.7
|
Pour créer une règle DNS :
Créez une zone DNS et utilisez Nom DNS comme nom DNS. de cette zone.
Exemple :
pkg.dev.
Ajoutez un ensemble d'enregistrements pour l'enregistrement CNAME.
Exemple :
- Nom DNS:
*.pkg.dev.
- Type d'enregistrement de ressource :
CNAME
- Nom canonique:
pkg.dev.
- Nom DNS:
Ajoutez un jeu d'enregistrements avec un enregistrement A :
Exemple :
- Type d'enregistrement de ressource :
A
- Adresses IPv4:
199.36.153.4
,199.36.153.5
,199.36.153.6
,199.36.153.7
- Type d'enregistrement de ressource :
Pour en savoir plus, consultez Configurer une connectivité privée aux API et services Google
Configurer des règles de pare-feu
Si votre projet comporte des règles de pare-feu autres que celles par défaut, telles que des règles qui remplacent les règles de pare-feu implicites ou modifient les règles préremplies du réseau par défaut, vérifiez que les règles de pare-feu suivantes sont configurées.
Par exemple, Cloud Composer peut ne pas réussir à créer un environnement si vous disposez d'une règle de pare-feu qui refuse tout trafic sortant. Pour éviter les problèmes, définissez des règles allow
sélectives qui suivent la liste et ont une priorité plus élevée que la règle deny
globale.
Configurez votre réseau VPC pour autoriser le trafic provenant de votre environnement:
- Consultez la section Utiliser des règles de pare-feu pour apprendre à : les règles de vérification, d'ajout et de mise à jour de votre réseau VPC.
- Utilisez l'outil de connectivité pour valider la connectivité entre les plages d'adresses IP.
- Vous pouvez utiliser des tags réseau pour limiter l'accès. Vous pouvez définir ces balises lorsque vous créez un environnement.
Description | Direction | Action | Source ou destination | Protocoles | Ports |
---|---|---|---|---|---|
DNS Configurez comme décrit dans la section Compatibilité de VPC Service Controls avec Cloud DNS. |
- | - | - | - | - |
API et services Google | Sortie | Autoriser | Adresses IPv4 de restricted.googleapis.com que vous utilisez pour les API et les services Google. |
TCP | 443 |
Nœuds du cluster de l'environnement | Sortie | Autoriser | Plage d'adresses IP principale du sous-réseau de l'environnement | TCP, UDP | tous |
Pods de cluster de l'environnement | Sortie | Autoriser | Plage d'adresses IP secondaire pour les pods du sous-réseau de l'environnement | TCP, UDP | tous |
Plan de contrôle du cluster de l'environnement | Sortie | Autoriser | Plage d'adresses IP du plan de contrôle GKE | TCP, UDP | tous |
Serveur Web | Sortie | Autoriser | Plage d'adresses IP du réseau du serveur Web | TCP | 3306, 3307 |
Pour obtenir les plages d'adresses IP :
Les plages d'adresses des pods, des services et du plan de contrôle sont disponibles la page Clusters du cluster de votre environnement:
Dans la console Google Cloud, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement.
Suivez le lien Afficher les détails du cluster.
Vous pouvez voir plage d'adresses IP du serveur Web dans l'onglet Configuration de l'environnement.
Vous pouvez consulter l'ID réseau de l'environnement dans l'onglet Configuration de l'environnement. Pour obtenir l'adresse IP plages d'adresses IP d'un sous-réseau, accédez à la page Réseaux VPC et cliquez sur le nom du réseau pour afficher les détails:
Journaux VPC Service Controls
Pour résoudre les 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 journal, vous pouvez consulter les journaux pour obtenir des informations
cloud-airflow-prod@system.gserviceaccount.com
et
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
qui configurent les composants de vos environnements.
Le service Cloud Composer utilise le compte de service cloud-airflow-prod@system.gserviceaccount.com
pour gérer les composants de projet de locataire de vos environnements.
La
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
(ou Composer Service Agent Service Account
) gère le compte de service
des composants d'environnement
projets de service et hôtes.
Limites
- Toutes les contraintes réseau de VPC Service Controls s'appliqueront également à vos environnements Cloud Composer. Pour en savoir plus, consultez la documentation de VPC Service Controls.
L'affichage d'un modèle rendu avec des fonctions dans l'interface utilisateur Web avec la sérialisation des DAG activée est compatible avec les environnements exécutant Composer version 1.12.0 ou ultérieure et Airflow version 1.10.9 ou ultérieure.
Il n'est pas possible de définir l'option
async_dagbag_loader
surTrue
lorsque la sérialisation des DAG est activée.L'activation de la sérialisation des DAG désactive tous les plug-ins du serveur Web Airflow, car ils peuvent compromettre la sécurité du réseau VPC sur lequel Cloud Composer est déployé. Cela n'a pas d'incidence sur le comportement des plug-ins du programmeur ou du nœud de calcul, y compris les opérateurs Airflow, les capteurs, etc.
- Lorsque Cloud Composer s'exécute à l'intérieur d'un périmètre, l'accès aux dépôts PyPI publics est restreint. Consultez la section Installer des dépendances Python pour apprendre à installer des modules PyPI en mode adresse IP privée.