Se connecter à un réseau VPC partagé

Si votre organisation utilise un VPC partagé, vous pouvez configurer des connecteurs d'accès au VPC sans serveur dans le projet de service ou le projet hôte. Ce guide explique comment configurer un connecteur dans le projet de service.

En règle générale, vous devez effectuer les tâches suivantes :

  1. Ajouter des règles de pare-feu pour autoriser les plages d'adresses IP requises
  2. Octroyer des autorisations
  3. Créer un sous-réseau
  4. Sur la page Configurer l'accès au VPC sans serveur, suivez les instructions des sections suivantes :

Avantages

Voici les avantages de la création de connecteurs dans les projets de service :

  • Isolation : chaque connecteur dispose d'une bande passante dédiée et n'est pas affecté par l'utilisation de la bande passante des connecteurs dans d'autres projets de service. Cela est utile si l'un de vos services rencontre des pics de trafic ou si vous devez vous assurer que chaque projet de service n'est pas affecté par l'utilisation de connecteurs dans d'autres projets de service.
  • Rejets de débit : tous les coûts liés aux connecteurs sont associés au projet de service contenant le connecteur. Cela facilite les rejets de débit.
  • Sécurité : permet de respecter le "principe du moindre privilège". Les connecteurs doivent être autorisés à accéder aux ressources du réseau VPC partagé qu'ils doivent atteindre. En créant un connecteur dans le projet de service, vous pouvez limiter les accès aux services du projet à l'aide de règles de pare-feu.
  • Indépendance des équipes : limite la dépendance vis-à-vis de l'administrateur du projet hôte. Les équipes peuvent créer et gérer les connecteurs associés à leur projet de service. Un utilisateur disposant du rôle Administrateur de sécurité Compute Engine ou d'un rôle Identity and Access Management (IAM) personnalisé avec l'autorisation compute.firewalls.create pour le projet hôte doit toujours gérer les règles de pare-feu du connecteur.

Si ces considérations ne répondent pas à votre cas d'utilisation, découvrez les avantages de la configuration du VPC partagé avec des connecteurs dans le projet hôte.

Ajouter des règles de pare-feu pour autoriser les plages d'adresses IP

Pour effectuer ces étapes, vous devez disposer de l'un des rôles suivants sur le projet hôte :

Vous devez créer des règles de pare-feu pour permettre aux requêtes provenant des plages d'adresses IP suivantes d'atteindre le connecteur et d'être accessibles par le connecteur :

  • Plages NAT
    • 107.178.230.64/26
    • 35.199.224.0/19
  • Plages de vérification d'état
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 108.170.220.0/23

Ces plages sont utilisées par l'infrastructure Google sous-jacente de Cloud Run, Cloud Functions et l'environnement standard App Engine. Toutes les requêtes provenant de ces adresses IP sont garanties à partir de l'infrastructure Google, ce qui garantit que chaque service, fonction et application Cloud Run, Cloud Functions, et App Engine ne communiquent qu'avec le connecteur VPC auquel il est connecté.

Pour une configuration simple, appliquez les règles pour autoriser les services sans serveur dans tout projet de service connecté au réseau VPC partagé à envoyer des requêtes à n'importe quelle ressource du réseau.

Pour appliquer ces règles :

  1. Exécutez les trois commandes suivantes pour définir les règles permettant aux requêtes de l'environnement sans serveur d'atteindre tous les connecteurs VPC du réseau :

    gcloud compute firewall-rules create serverless-to-vpc-connector \
    --allow tcp:667,udp:665-666,icmp \
    --source-ranges 107.178.230.64/26,35.199.224.0/19 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-to-serverless \
    --allow tcp:667,udp:665-666,icmp \
    --destination-ranges 107.178.230.64/26,35.199.224.0/19 \
    --direction=EGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-health-checks \
    --allow tcp:667 \
    --source-ranges 130.211.0.0/22,35.191.0.0/16,108.170.220.0/23 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK

    VPC_NETWORK est le réseau VPC auquel associer le connecteur.

  2. Créez une règle d'entrée sur votre réseau VPC pour autoriser les requêtes provenant de connecteurs :

    gcloud compute firewall-rules create vpc-connector-requests \
    --allow tcp,udp,icmp \
    --direction=INGRESS \
    --source-tags vpc-connector \
    --network=VPC_NETWORK

    Cette règle permet au connecteur VPC d'accéder à chaque ressource du réseau. Pour limiter les ressources auxquelles votre environnement sans serveur peut accéder à l'aide de l'accès au VPC sans serveur, spécifiez une cible pour ces règles de pare-feu ou consultez l'article Créer des règles de pare-feu avec champ d'application plus restreint. Notez que si vous spécifiez une cible, vous devez créer un ensemble de règles de pare-feu chaque fois que vous créez un connecteur VPC.

Créer des règles de pare-feu avec un champ d'application plus étroit

La procédure décrite à la section Ajouter des règles de pare-feu pour autoriser les plages d'adresses IP permet de créer dans les règles de pare-feu qui s'appliquent à tous les connecteurs, actuels et créés ultérieurement. Si vous ne souhaitez pas utiliser cette fonctionnalité, mais que vous préférez créer des règles pour des connecteurs spécifiques, vous pouvez définir des règles de sorte qu'elles ne s'appliquent qu'à ces connecteurs.

Pour limiter le champ d'application des règles à des connecteurs spécifiques, vous pouvez utiliser l'un des mécanismes suivants.

  • Tags réseau Chaque connecteur dispose de deux tags réseau : vpc-connector et vpc-connector-REGION-CONNECTOR_NAME. Utilisez ce dernier format pour limiter le champ d'application de vos règles de pare-feu à un connecteur spécifique.
  • Plages d'adresses IP Utilisez cette option uniquement pour les règles de sortie, car elle ne fonctionne pas pour l'entrée. Vous pouvez utiliser la plage d'adresses IP du sous-réseau du connecteur pour limiter le champ d'application de vos règles de pare-feu à un seul connecteur VPC.

Accorder des autorisations aux comptes de service de vos projets de service

Pour chaque projet de service qui utilisera des connecteurs VPC, un administrateur VPC partagé doit accorder le rôle d'utilisateur de réseau Compute (compute.networkUser) du projet hôte au projet de service cloudservices et aux comptes de service vpcaccess.

Pour accorder le rôle , procédez comme suit :

  1. Utilisez ces commandes .

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com"
  2. Si le compte de service @gcp-sa-vpcaccess n'existe pas, activez l'API Serverless VPC Access dans le projet de service, puis réessayez :

    gcloud services enable vpcaccess.googleapis.com

Si vous préférez ne pas accorder à ces comptes de service l'accès à l'ensemble du réseau VPC partagé et ne souhaitez accorder l'accès qu'à des sous-réseaux spécifiques, vous pouvez attribuer ces rôles à ces comptes de service sur des sous-réseaux spécifiques uniquement.

Créer un sous-réseau

Lorsque vous utilisez un VPC partagé, l'administrateur de VPC partagé doit créer un sous-réseau pour chaque connecteur. Reportez-vous à la documentation sur l'ajout d'un sous-réseau pour ajouter un sous-réseau /28 au réseau VPC partagé. Ce sous-réseau doit se trouver dans la même région que les services sans serveur qui utiliseront le connecteur.

Étapes suivantes