Configurer un VPC partagé

Cloud Composer 1 | Cloud Composer 2

Cette page décrit les exigences du réseau VPC partagé et du projet hôte pour Cloud Composer.

Le VPC partagé permet aux organisations d'établir des limites en termes de budgétisation et de contrôle des accès au niveau du projet, tout en permettant une communication sécurisée et efficace à l'aide d'adresses IP privées au-delà de ces limites. Dans la configuration du VPC partagé, Cloud Composer peut appeler des services hébergés dans d'autres projets Google Cloud de la même organisation, sans exposer les services à l'Internet public.

Consignes relatives au VPC partagé

Projets de service et projet hôte pour Cloud Composer
Figure 1. Projet de service et projet hôte pour Cloud Composer
  • Le VPC partagé nécessite que vous spécifiiez un projet hôte auquel appartiennent les réseaux et sous-réseaux et un projet de service, qui est associé au projet hôte. Lorsque Cloud Composer participe à un VPC partagé, l'environnement Cloud Composer se trouve dans le projet de service.

  • Pour configurer un VPC partagé, sélectionnez les plages d'adresses IP suivantes dans le projet hôte :

    • Plage d'adresses IP principale du sous-réseau utilisé par les nœuds GKE comme couche Compute Engine pour Cloud Composer
    • Plage d'adresses IP secondaire pour les services GKE.
    • Plage d'adresses IP secondaire pour les pods GKE.
  • Les plages d'adresses IP secondaires ne doivent pas chevaucher d'autres plages secondaires de ce VPC.

  • Assurez-vous que les plages secondaires sont suffisamment grandes pour s'adapter à la taille du cluster et au scaling de votre environnement.

    Consultez la section Créer un cluster de VPC natif pour obtenir des instructions sur la configuration des plages secondaires pour les pods et les services.

  • La plage d'adresses principale du sous-réseau doit s'adapter à la croissance prévue et tenir compte des adresses IP inutilisables.

  • Si vous utilisez l'agent de masquage d'adresses IP et la configuration d'adresse IP privée pour vos environnements, ajoutez les plages d'adresses IP des nœuds et des pods à la section nonMasqueradeCIDRs du fichier ConfigMap de ip-masq-agent. Pour en savoir plus, consultez la section Configurer un agent de masquage d'adresses IP.

Préparation

  1. Trouvez les identifiants et les numéros des projets suivants :

    • Projet hôte : le projet contenant le réseau VPC partagé.
    • Projet de service : le projet contenant l'environnement Cloud Composer.
  2. Préparez votre organisation.

  3. Activez l'API GKE pour vos projets hôte et de service.

  4. Si vous créez un environnement dans le projet de service à l'aide de la console Google Cloud, votre compte doit disposer de l'autorisation compute.subnetworks.use dans le projet hôte. Sinon, la liste des sous-réseaux disponibles ne contient pas les sous-réseaux du projet hôte. Si vous créez un environnement à l'aide de gcloud, de l'API ou de Terraform, votre compte n'a pas besoin de cette autorisation supplémentaire.

Configurer le projet hôte

Configurez le projet hôte comme décrit ci-après.

(Adresse IP privée) Activer l'accès privé à Google

Si vous prévoyez d'utiliser des environnements IP privés, activez l'accès privé à Google pour le sous-réseau du projet hôte. Vous pouvez le faire à l'étape suivante, au moment de configurer les ressources réseau pour un sous-réseau nouveau ou existant.

Si vous prévoyez d'utiliser des environnements IP publics, nous vous recommandons tout de même d'activer l'accès privé à Google pour le sous-réseau du projet hôte. Si vous choisissez de ne pas utiliser l'accès privé à Google, assurez-vous de ne pas bloquer le trafic que la règle de pare-feu implicite de sortie IPv4 autorisée pourrait autoriser. C'est nécessaire pour atteindre *.googleapis.com points de terminaison.

Configurer les ressources réseau

Choisissez l'une des options suivantes pour allouer et configurer les ressources réseau. Pour chaque option, vous devez nommer les plages d'adresses IP secondaires pour les pods et les services.

Configurer un VPC partagé et associer le projet de service

  1. Si ce n'est pas déjà fait, configurez le VPC partagé. Si vous avez déjà configuré un VPC partagé, passez à l'étape suivante.

  2. Associez le projet de service que vous utiliserez pour héberger les environnements Cloud Composer.

    Lorsque vous associez un projet, conservez les autorisations du réseau VPC par défaut.

Modifier les autorisations pour le compte de service des API Google

Dans le projet hôte, modifiez les autorisations du compte de service des API Google, SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com.

Pour ce compte, ajoutez un autre rôle compute.networkUser au niveau du projet. Il s'agit d'une exigence pour les groupes d'instances gérés utilisés avec un VPC partagé, car c'est ce type de compte de service qui effectue des tâches telles que la création d'instance.

Modifier les autorisations pour les comptes de service GKE

Dans le projet hôte, modifiez les autorisations pour les comptes de service GKE service-SERVICE_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com.

Pour chaque compte de service, ajoutez un autre rôle compute.networkUser.

Accordez ce rôle au niveau du sous-réseau pour permettre à un compte de service de configurer les appairages de VPC requis par Cloud Composer. Notez que dans ce cas, vous devez spécifier explicitement le sous-réseau à utiliser par l'environnement, car le cluster GKE peut ne pas disposer des autorisations nécessaires pour le trouver dans le réseau.

Vous pouvez également attribuer ce rôle pour l'ensemble du projet hôte. Dans ce cas, le compte de service GKE du projet de service est autorisé à utiliser n'importe quel sous-réseau du projet hôte.

Modifier les autorisations pour le compte de service GKE du projet de service

Dans le projet hôte, modifiez les autorisations pour le compte de service GKE du projet de service.

Pour ce compte, ajoutez un autre rôle au niveau du projet : Utilisateur de l'agent de service hôte Kubernetes Engine (roles/container.hostServiceAgentUser).

Cela permet au compte de service GKE du projet de service d'utiliser le compte de service GKE du projet hôte pour configurer des ressources réseau partagées.

(Adresse IP privée, facultative) Configurer les règles de pare-feu et la connectivité aux domaines Google

Dans une configuration de VPC partagé avec des environnements IP privés, vous pouvez acheminer tout le trafic vers les API et les services Google via plusieurs adresses IP appartenant au domaine private.googleapis.com et configurer les règles de pare-feu correspondantes. Dans cette configuration, votre environnement accède aux API et services Google via des adresses IP routables uniquement depuis Google Cloud. Si votre configuration de VPC partagé utilise VPC Service Controls, acheminer le trafic via restricted.googleapis.com à la place.

Si votre configuration de VPC partagé utilise des environnements IP privés:

  1. (Facultatif) Configurez la connectivité aux API et services Google.
  2. (Facultatif) Configurez des règles de pare-feu.

Si votre configuration de VPC partagé utilise VPC Service Controls, utilisez plutôt les instructions pour les environnements dotés de VPC Service Controls:

  1. Configurez la connectivité aux API et services Google.
  2. Configurer des règles de pare-feu

Modifier les autorisations pour le compte de service de l'agent Composer

  1. Dans le projet de service, s'il s'agit du premier environnement Cloud Composer, provisionnez le compte de service de l'agent Composer : gcloud beta services identity create --service=composer.googleapis.com.

  2. Dans le projet hôte :

    1. Modifiez les autorisations pour le compte de service de l'agent Composer, service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com.

    2. Pour ce compte, ajoutez un autre rôle au niveau du projet:

      • Pour les environnements d'adresses IP privées, ajoutez le rôle Composer Shared VPC Agent.

      • Pour les environnements d'adresses IP publiques, ajoutez le rôle Compute Network User.

Vous avez terminé la configuration du réseau VPC partagé pour le projet hôte.

Étapes suivantes