Configurez VPC Service Controls

Cloud Composer 1 | Cloud Composer 2

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

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 :

  1. Activez l'API Access Context Manager et l'API Cloud Composer pour votre projet. Consultez la section Activer des API.

  2. Ajoutez les services suivants au périmètre de protection maximale de votre environnement : Cloud SQL, Pub/Sub, Monitoring, Cloud Storage, Kubernetes Engine, Container Registry, Artifact Registry et Compute Engine.

  3. Utilisez la version composer-1.10.4 ou ultérieure.

  4. 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.

Configurer des environnements existants avec VPC Service Controls

Vous pouvez ajouter le projet contenant votre environnement au périmètre si :

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 privées du réseau VPC. La configuration recommandée pour ce processus consiste à configurer un dépôt PyPI privé, à le remplir avec les packages approuvés utilisés par votre organisation, puis à configurer Cloud Composer pour installer des dépendances Python à partir d'un dépôt privé.

Il est également possible d'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 :

  1. Configurez Cloud NAT pour permettre à Composer de s'exécuter dans l'espace d'adresses IP privées et de se connecter à des dépôts PyPI externes.
  2. Configurez vos règles de pare-feu pour autoriser les connexions sortantes du cluster Composer vers le dépôt.

Lorsque vous utilisez cette configuration, assurez-vous que vous comprenez bien les risques liés à l'utilisation de dépôts externes. Assurez-vous que le contenu et l'intégrité des dépôts externes sont fiables, car ces connexions peuvent être utilisées comme vecteur d'exfiltration.

Checklist de configuration du réseau

Pour que vous puissiez créer des environnements Cloud Composer dans un périmètre, votre réseau VPC doit être configuré correctement. Veillez à respecter les exigences de configuration répertoriées ci-dessous.

Règles de pare-feu

Accédez à la section Réseau VPC -> Pare-feu dans Google Cloud Console, puis vérifiez que les règles de pare-feu suivantes sont configurées.

  • Configurez le service DNS dans votre VPC comme décrit dans la section Compatibilité de VPC Service Controls avec Cloud DNS. Vous pouvez également autoriser la sortie de la plage d'adresses IP du nœud GKE vers n'importe quel emplacement sur le port 53.

  • Autorisez le trafic entrant et sortant depuis la plage d'adresses IP du nœud GKE vers la plage d'adresses IP du nœud GKE, tous les ports.

  • Autorisez le trafic entrant et sortant entre la plage d'adresses IP du nœud GKE et la plage d'adresses IP des pods, tous ports.

  • Autorisez le trafic entrant et sortant entre la plage d'adresses IP du nœud GKE et la plage d'adresses IP des services, tous ports.

  • Autorise le trafic entrant et sortant entre les pods GKE et les plages d'adresses IP des services, tous ports.

  • Autorisez la sortie de la plage d'adresses IP du nœud GKE vers la plage d'adresses IP maître GKE, tous les ports.

  • Autorisez la sortie de la plage d'adresses IP du nœud GKE vers 199.36.153.4/30, port 443 (restricted.googleapis.com).

  • Autorisez l'entrée provenant des vérifications de l'état GCP 130.211.0.0/22,35.191.0.0/16 vers la plage d'adresses IP du nœud. Ports TCP 80 et 443.

  • Autorisez la sortie de la plage d'adresses IP du nœud vers les vérifications de l'état de GCP. Ports TCP 80 et 443.

  • Autorisez la sortie de la plage d'adresses IP du nœud GKE vers la plage d'adresses IP du réseau Cloud Composer, ports TCP 3306 et 3307.

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 mentionnées ci-dessus.

Connectivité au point de terminaison restricted.googleapis.com

Configurez la connectivité au point de terminaison restricted.googleapis.com :

  • Vérifiez l'existence d'une mise en correspondance DNS entre *.googleapis.com et restricted.googleapis.com.

  • Le DNS *.gcr.io doit correspondre à 199.36.153.4/30 de la même manière que le point de terminaison final googleapis.com. Pour ce faire, créez une zone comme suit : CNAME *.gcr.io -> gcr.io. A gcr.io. -> 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7.

  • Le DNS *.pkg.dev doit correspondre à 199.36.153.4/30 de la même manière que le point de terminaison final googleapis.com. Pour ce faire, créez une zone comme suit : CNAME *.pkg.dev -> pkg.dev. A pkg.dev. -> 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7.

  • Le DNS *.composer.cloud.google.com doit correspondre à 199.36.153.4/30 de la même manière que le point de terminaison final googleapis.com. Pour ce faire, créez une zone comme suit : CNAME *.composer.cloud.google.com -> composer.cloud.google.com. A composer.cloud.google.com. -> 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7.

Pour en savoir plus, consultez la page Configurer une connectivité privée aux API et services Google.

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.
  • 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.