Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
VPC Service Controls permet aux organisations de définir un périmètre autour des ressourcesGoogle 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 ressourcesGoogle Cloud non autorisées ou des pirates informatiques externes accédant aux ressourcesGoogle Cloud depuis Internet
À propos de VPC Service Controls dans Cloud Composer
- 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.
Si un environnement Cloud Composer est protégé par un périmètre, l'accès aux dépôts PyPI publics est restreint. Pour en savoir plus, consultez Installer des packages PyPI dans VPC Service Controls.
Si votre environnement utilise la mise en réseau avec adresse IP privée, 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 adresse IP privée via l'accès privé à Google.
Selon la façon dont vous configurez votre réseau VPC, un environnement d'adresse IP privée peut accéder à Internet via votre réseau VPC.
Cloud Composer 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'interface utilisateur Apache Airflow. Toutefois, vous pouvez utiliser le type d'identité
ANY_IDENTITY
dans 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 les niveaux d'accès ou les 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.
Créer des environnements dans un périmètre
Voici les étapes à suivre pour déployer Cloud Composer dans un périmètre :
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 dispose des services accessibles par VPC suivants, sinon votre environnement risque de ne pas être créé :
- 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 Security Token Service (sts.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 des clés Cloud KMS ou CMEK.
- API Secret Manager (secretmanager.googleapis.com), si vous utilisez Secret Manager comme backend secret.
Créez un environnement Cloud Composer :
L'adresse IP privée doit être activée. Notez que ce paramètre doit être configuré lors de la création de l'environnement.
N'oubliez pas de configurer l'accès au serveur Web Airflow. Pour améliorer la protection, 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.
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.
Ajouter un environnement existant au périmètre
Vous pouvez ajouter le projet contenant votre environnement à un périmètre si :
- Vous avez déjà créé ou configuré le périmètre comme décrit dans la section précédente.
- Vos environnements utilisent une adresse IP privée.
Installer des packages PyPI dans VPC Service Controls
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.
Par défaut, tous les environnements Cloud Composer 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 Cloud Composer pour installer des dépendances Python à partir d'un dépôt privé.
Accordez des autorisations supplémentaires pour installer des packages à partir de dépôts privés au compte de service de votre environnement, comme décrit dans Contrôle des accès.
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.
- 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.
- Accordez des autorisations supplémentaires pour installer des packages à partir de dépôts Artifact Registry sur le compte de service de votre environnement, comme décrit dans Contrôle des accès.
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 :
Configurez Cloud NAT pour permettre à Cloud Composer de s'exécuter dans l'espace d'adresses IP privées et de se connecter à des dépôts PyPI externes.
Configurez vos règles de pare-feu pour autoriser les connexions sortantes du cluster Composer vers le dépôt.
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.*.composer.cloud.google.com
permet de rendre le serveur Web Airflow de votre environnement accessible. Cette règle doit être appliquée avant de créer un environnement.- Vous pouvez également créer une règle pour une région spécifique. Pour ce faire, utilisez
REGION.composer.cloud.google.com
. RemplacezREGION
par la région dans laquelle se trouve l'environnement, par exempleus-central1
.
- Vous pouvez également créer une règle pour une région spécifique. Pour ce faire, utilisez
(Facultatif)
*.composer.googleusercontent.com
est utilisé pour accéder au serveur Web Airflow de votre environnement. Cette règle n'est requise que si vous accédez au serveur Web Airflow à partir d'une instance exécutée dans le réseau VPC. Dans le cas contraire, elle n'est pas nécessaire. Un scénario courant pour cette règle est lorsque vous souhaitez appeler l'API REST Airflow depuis le réseau VPC.- Vous pouvez également créer une règle pour un environnement spécifique. Pour ce faire, utilisez
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com
. RemplacezENVIRONMENT_WEB_SERVER_NAME
par la partie unique de l'URL de l'interface utilisateur Airflow de votre environnement, par exemplebffe6ce6c4304c55acca0e57be23128c-dot-us-central1
.
- Vous pouvez également créer une règle pour un environnement spécifique. Pour ce faire, utilisez
*.pkg.dev
est utilisé pour obtenir des images d'environnement, par exemple lors de la création ou de la mise à jour d'un environnement.*.gcr.io
GKE nécessite une connectivité au 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 ressource : 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
|
*.composer.cloud.google.com
|
composer.cloud.google.com. |
Nom DNS : *.composer.cloud.google.com. Type d'enregistrement de ressource : CNAME Nom canonique : composer.cloud.google.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
|
*.composer.googleusercontent.com
(facultatif, voir la description) |
composer.googleusercontent.com. |
Nom DNS : *.composer.googleusercontent.com. Type d'enregistrement de ressource : CNAME Nom canonique : composer.googleusercontent.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 ressource : 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 ressource : 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 Enregistrement CNAME.
Exemple :
- Nom DNS :
*.pkg.dev.
- Type d'enregistrement de ressource :
CNAME
- Nom canonique :
pkg.dev.
- Nom DNS :
Ajoutez un jeu d'enregistrements pour 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 non définies par défaut, telles que des règles qui remplacent les règles de pare-feu implicites ou qui modifient les règles préremplies dans le 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 avez une règle de pare-feu qui refuse tout le 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 page Utiliser des règles de pare-feu pour apprendre à vérifier, ajouter et mettre à jour des règles pour 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 davantage l'accès. Vous pouvez définir ces tags lorsque vous créez un environnement.
Description | Direction | Action | Source ou destination | Protocoles | Ports |
---|---|---|---|---|---|
DNS Configurez comme décrit dans 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 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 du 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 |
(Si votre environnement utilise Private Service Connect) Sous-réseau de connexion | Sortie | Autoriser | Plage du sous-réseau de connexion Cloud Composer | TCP | 3306, 3307 |
(Si votre environnement utilise des appairages VPC) Réseau du locataire | Sortie | Autoriser | Plage d'adresses IP du réseau locataire Cloud Composer | TCP | 3306, 3307 |
Pour obtenir les plages d'adresses IP du cluster d'environnement :
Les plages d'adresses des pods, des services et du plan de contrôle sont disponibles sur 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 consulter la plage d'adresses IP du réseau locataire Cloud Composer de l'environnement dans l'onglet Configuration de l'environnement.
Vous pouvez consulter l'ID du sous-réseau de l'environnement et l'ID du sous-réseau de connexion Cloud Composer dans l'onglet Configuration de l'environnement. Pour obtenir les 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
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@
et service-PROJECT_ID@cloudcomposer-accounts.
qui configurent les composants de vos environnements.
Le service Cloud Composer utilise le compte de service cloud-airflow-prod@
pour gérer les composants du projet locataire de vos environnements.
Le compte de service service-PROJECT_ID@cloudcomposer-accounts.
, é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.