Configurer des connecteurs dans des projets de service de 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.

Si vous devez configurer un connecteur dans le projet hôte, consultez la section Configurer des connecteurs dans le projet hôte. Pour en savoir plus sur les avantages offerts par chacune de ces deux méthodes, consultez la section Se connecter à un réseau VPC partagé.

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 :

Avant de commencer

L'accès au VPC sans serveur n'est pas compatible avec le service de récupération d'URL. Avant de commencer, désactivez la récupération d'URL par défaut et arrêtez toute utilisation explicite de la bibliothèque urlfetch.

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 à Cloud Run, aux fonctions Cloud Run et l'environnement standard App Engine. Toutes les requêtes provenant de ces adresses IP sont garanties à partir de l'infrastructure Google, ce qui permet de s'assurer que chaque service/fonction/application Cloud Run, de fonctions Cloud Run et App Engine ne communique 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 que votre environnement sans serveur peut atteindre à l'aide de l'accès au VPC sans serveur, spécifiez une cible pour ces règles de pare-feu.

Créer des règles de pare-feu pour des connecteurs spécifiques

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