Configurer l'accès au VPC sans serveur

L'accès au VPC sans serveur vous permet de vous connecter directement à votre réseau VPC depuis un environnement sans serveur sur Google Cloud (Cloud Run entièrement géré, Cloud Functions ou l'environnement standard App Engine). Cette connexion fournit à votre environnement sans serveur l'accès aux instances de VM Compute Engine, aux instances Memorystore et à toute autre ressource disposant d'une adresse IP interne. Cela peut être utile dans les cas suivants :

  • Vous exploitez Memorystore pour stocker les données associées à un service sans serveur.
  • Vos charges de travail sans serveur utilisent un logiciel tiers que vous exécutez sur une VM Compute Engine.
  • Vous exécutez un service de backend sur un groupe d'instances géré dans Compute Engine et avez besoin que votre environnement sans serveur communique avec ce backend sans exposition au réseau Internet public.
  • Votre environnement sans serveur doit accéder aux données de votre base de données sur site via Cloud VPN.

La connexion à un réseau VPC permet à votre environnement sans serveur d'envoyer des requêtes aux noms DNS internes et aux adresses IP internes comme défini par les normes RFC 1918 et RFC 6598. Ces adresses internes ne sont accessibles que depuis les services Google Cloud. L'utilisation d'adresses internes évite d'exposer les ressources au réseau Internet public et améliore la latence des communications entre vos services.

Avec l'accès au VPC sans serveur, seul l'environnement sans serveur peut lancer des requêtes. Les requêtes lancées par une VM doivent utiliser l'adresse externe de votre service sans serveur. Pour en savoir plus, consultez la section Accès privé à Google.

L'accès au VPC sans serveur est compatible avec le VPC partagé et la communication avec des réseaux connectés via Cloud Interconnect, Cloud VPN et Appairage de réseaux VPC. L'accès au VPC sans serveur n'est pas compatible avec les anciens réseaux.

À propos des connecteurs d'accès au VPC sans serveur

L'accès au VPC sans serveur repose sur une ressource appelée connecteur. Un connecteur gère le trafic entre votre environnement sans serveur et votre réseau VPC. Lorsque vous créez un connecteur dans votre projet Google Cloud, vous l'associez à un réseau VPC et à une région spécifiques. Vous pouvez ensuite configurer vos services sans serveur de sorte qu'ils utilisent le connecteur pour le trafic réseau sortant.

Lorsque vous créez un connecteur, vous pouvez utiliser votre propre sous-réseau CIDR /28 ou utiliser une plage d'adresses IP personnalisée. Le trafic envoyé via le connecteur sur votre réseau VPC provient du sous-réseau /28 ou d'une adresse de la plage d'adresses IP personnalisée. Si vous utilisez une plage d'adresses IP personnalisée, elle doit être une plage CIDR /28 qui n'est pas déjà réservée sur votre réseau VPC.

Si le sous-réseau n'est pas un sous-réseau partagé, une règle de pare-feu implicite de priorité 1000 est créée sur votre réseau VPC afin d'autoriser l'entrée depuis le sous-réseau ou la plage d'adresses IP personnalisée du connecteur vers toutes les destinations du réseau.

L'accès au VPC sans serveur provisionne automatiquement le débit pour un connecteur par incréments de 100 Mbit/s selon la quantité de trafic envoyée via le connecteur. Le débit provisionné automatiquement ne peut qu'être augmenté et ne peut pas être réduit. Un connecteur doit toujours disposer d'au moins 200 Mbit/s provisionnés et peut évoluer jusqu'à 1 000 Mbit/s. Lorsque vous créez un connecteur, vous pouvez configurer les limites de scaling du débit. Notez que le débit réel via un connecteur peut dépasser le débit provisionné, en particulier pour les pics de trafic courts.

Les connecteurs d'accès au VPC sans serveur entraînent des frais mensuels en fonction de l'utilisation. Pour en savoir plus, consultez la section Tarifs.

Exemple d'accès au VPC sans serveur (cliquez pour agrandir)
Exemple d'accès au VPC sans serveur (cliquez pour agrandir)

Remarques :

  • Un connecteur doit se trouver dans le même projet que le service sans serveur (tel que les services Cloud Run, les applications App Engine ou Cloud Functions) qui s'y connecte.
  • Un connecteur doit être situé dans la même région que le service sans serveur qui s'y connecte. Pour connaître la liste des régions dans lesquelles vous pouvez créer un connecteur, consultez la section Régions où le service est disponible.
  • Le trafic vers les adresses IP internes et les noms DNS internes est acheminé via le connecteur. Par défaut, le trafic vers les adresses IP externes est acheminé via Internet.
  • Si vous utilisez un VPC partagé :

  • Vous pouvez utiliser le même connecteur avec plusieurs services sans serveur.

  • Dans le cas de ressources autorisant l'accès entre les régions (c'est le cas par exemple des instances de VM Google Cloud ou des clusters GKE), un connecteur peut être situé dans une région différente de celle de la ressource vers laquelle il envoie le trafic. Le trafic sortant du connecteur vous est facturé. Consultez la section Tarifs.

Tags réseau d'accès au VPC sans serveur

Les tags réseau d'accès au VPC sans serveur vous permettent de spécifier des connecteurs VPC dans les règles de pare-feu et les routes.

Chaque connecteur d'accès au VPC sans serveur reçoit automatiquement deux tags réseau (parfois appelés tags d'instance) :

  • Tag réseau universel :vpc-connector s'applique à tous les connecteurs existants et à tous les connecteurs ultérieurs.
  • Tag réseau unique : vpc-connector-REGION-CONNECTOR_NAME s'applique au connecteur CONNECTOR_NAME dans REGION.

Ces tags réseau ne peuvent pas être supprimés. Il est impossible d'ajouter de nouveaux tags réseau.

Créer un connecteur

Pour créer un connecteur, utilisez Cloud Console ou l'outil de ligne de commande gcloud :

Console

  1. Si vous utilisez un VPC partagé, assurez-vous d'avoir configuré le projet hôte.

  2. Assurez-vous que l'API Serverless VPC Access est activée pour votre projet :

    Activer l'API

  3. Accédez à la page de présentation de l'accès au VPC sans serveur.

    Accéder à l'accès au VPC sans serveur

  4. Cliquez sur Créer un connecteur.

  5. Dans le champ Nom, saisissez le nom du connecteur.

  6. Dans le champ Région, sélectionnez une région pour votre connecteur. Celle-ci doit correspondre à la région de votre service sans serveur. Consultez la section Régions où le service est disponible.

  7. Dans le champ Réseau, sélectionnez le réseau VPC auquel associer le connecteur.

  8. Cliquez sur le menu déroulant Sous-réseau :

    • Si vous utilisez votre propre sous-réseau (obligatoire pour le VPC partagé), sélectionnez le sous-réseau /28 que vous souhaitez utiliser pour le connecteur.
    • Si vous n'utilisez pas de VPC partagé et que vous préférez que le connecteur crée un sous-réseau au lieu d'en créer un explicitement, sélectionnez Plage d'adresses IP personnalisée dans le menu déroulant puis dans le champ Plage d'adresses IP, saisissez la première adresse d'une plage d'adresses IP internes CIDR /28 non réservée. Cette plage d'adresses IP ne doit pas chevaucher les réservations d'adresses IP existantes sur votre réseau VPC. Par exemple, la plage 10.8.0.0 (/28) fonctionnera dans la plupart des nouveaux projets.

  9. (Facultatif) Pour contrôler davantage le débit du connecteur, modifiez les champs Débit minimal et Débit maximal.

  10. Cliquez sur Créer.

  11. Une coche verte apparaît à côté du nom du connecteur lorsque celui-ci est prêt à être utilisé.

gcloud

  1. Si vous utilisez un VPC partagé, assurez-vous d'avoir configuré le projet hôte.

  2. Mettez à jour les composants gcloud vers la dernière version :

    gcloud components update
    
  3. Assurez-vous que l'API Serverless VPC Access est activée pour votre projet :

    gcloud services enable vpcaccess.googleapis.com
    
  4. Si vous utilisez votre propre sous-réseau (obligatoire pour le VPC partagé), créez un connecteur à l'aide de la commande suivante :

    gcloud compute networks vpc-access connectors create [CONNECTOR_NAME] \
    --region [REGION] \
    --subnet [SUBNET] \
    # If you are not using Shared VPC, omit the following line.
    --subnet-project [HOST_PROJECT_ID]
    

    Où :

    • [CONNECTOR_NAME] est le nom du connecteur.
    • [REGION] est une région pour votre connecteur. Celle-ci doit correspondre à la région de votre service sans serveur. Consultez la section Régions où le service est disponible.
    • [SUBNET] est votre propre sous-réseau dédié "/28" qui n'est utilisé par aucune autre ressource. La valeur à fournir est le nom du sous-réseau.
    • [HOST_PROJECT_ID] correspond à l'ID du projet hôte. Indiquez uniquement si vous utilisez un VPC partagé.

    Pour plus d'informations et pour connaître les arguments facultatifs tels que les contrôles de débit, consultez la documentation de référence sur gcloud.

  5. Si vous n'utilisez pas de VPC partagé et que vous souhaitez fournir une plage d'adresses IP personnalisée au lieu d'utiliser un sous-réseau, créez un connecteur à l'aide de la commande suivante :

    gcloud compute networks vpc-access connectors create [CONNECTOR_NAME] \
    --network [VPC_NETWORK] \
    --region [REGION] \
    --range [IP_RANGE]
    

    Où :

    • [CONNECTOR_NAME] est le nom du connecteur.
    • [VPC_NETWORK] est le réseau VPC auquel associer le connecteur.
    • [REGION] est une région pour votre connecteur. Celle-ci doit correspondre à la région de votre service sans serveur. Consultez la section Régions où le service est disponible.
    • [IP_RANGE] est un réseau d'adresse IP interne non réservé. Un espace non attribué de "/28" est requis. La valeur fournie correspond au réseau au format CIDR (10.8.0.0/28). Cette plage d'adresses IP ne doit pas chevaucher les réservations d'adresses IP existantes sur votre réseau VPC. Par exemple, 10.8.0.0/28 fonctionne dans la plupart des nouveaux projets.

    Pour plus d'informations et pour connaître les arguments facultatifs tels que les contrôles de débit, consultez la documentation de référence sur gcloud.

  6. Avant d'utiliser le connecteur, vérifiez qu'il est dans l'état READY :

    gcloud compute networks vpc-access connectors describe [CONNECTOR_NAME] --region [REGION]
    

    Le résultat doit contenir la ligne state: READY.

Configurer le projet hôte si vous utilisez un VPC partagé

Si vous créez un connecteur pour le VPC partagé, vous devez configurer le projet hôte comme suit :

  • Ajoutez des règles de pare-feu pour permettre aux plages IP requises d'accéder au connecteur.
  • Attribuez à chaque projet de service le rôle d'utilisateur de réseau Compute dans le projet hôte.
  • Créez un sous-réseau dans le projet hôte à utiliser lors de la création d'un connecteur VPC partagé.

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

Ces étapes doivent être effectuées par un utilisateur ayant 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. Exécutez la commande suivante pour autoriser les requêtes de n'importe quel connecteur VPC vers toutes les ressources du réseau :

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

Pour n'autoriser les connecteurs VPC qu'à accéder à un ensemble plus restreint de ressources, créez des règles de pare-feu afin de réduire le champ d'application de cette règle.

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

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.

Supprimer un connecteur

Avant de supprimer un connecteur, assurez-vous qu'aucun service ne l'utilise encore. Pour découvrir comment dissocier un connecteur d'un service, consultez la documentation produit correspondante.

Pour supprimer un connecteur, utilisez Cloud Console ou l'outil de ligne de commande gcloud :

Console

  1. Accédez à la page de présentation de l'accès au VPC sans serveur.

    Accéder à l'accès au VPC sans serveur

  2. Sélectionnez le connecteur que vous souhaitez supprimer.

  3. Cliquez sur Supprimer.

gcloud

Utilisez la commande gcloud suivante pour supprimer un connecteur :

gcloud compute networks vpc-access connectors delete [CONNECTOR_NAME] --region [REGION]

Où :

  • [CONNECTOR_NAME] est le nom du connecteur que vous souhaitez supprimer.
  • [REGION] est la région où se trouve le connecteur.

Configurer votre service pour utiliser un connecteur

Après avoir créé un connecteur, vous pouvez configurer vos services sans serveur pour l'utiliser. La manière dont vous configurez un service pour utiliser un connecteur varie selon le produit. Pour obtenir des instructions spécifiques, consultez le guide correspondant :

Une fois que votre service est connecté à un réseau VPC, vous pouvez atteindre des instances de VM et d'autres ressources internes en envoyant des requêtes à leurs adresses IP internes ou à leurs noms DNS.

Restreindre l'accès aux ressources VPC

Vous pouvez limiter l'accès de votre connecteur à votre réseau VPC à l'aide de règles de pare-feu.

Lors de la connexion à un réseau VPC partagé, les règles de pare-feu ne sont pas créées automatiquement. Un utilisateur disposant du rôle d'administrateur réseau sur le projet hôte définit des règles de pare-feu lors de la configuration du projet hôte. Si vous utilisez un VPC partagé, consultez la page Créer des règles de pare-feu avec un champ d'application plus restreint pour en savoir plus sur la restriction d'accès.

Lors de la connexion à un réseau VPC autonome, une règle de pare-feu implicite de priorité 1000 est créée sur votre réseau VPC afin d'autoriser l'entrée depuis le sous-réseau ou la plage d'adresses IP personnalisée du connecteur vers toutes les destinations du réseau VPC. La règle de pare-feu implicite n'est pas visible dans Google Cloud Console et n'existe que tant que le connecteur associé existe. Si vous ne souhaitez pas que le connecteur puisse accéder à toutes les destinations de votre réseau VPC, vous pouvez restreindre son accès.

Vous pouvez limiter l'accès au connecteur en créant des règles d'entrée sur la ressource de destination ou en créant des règles de sortie sur le connecteur VPC.

Restreindre l'accès à l'aide de règles d'entrée

Choisissez des tags réseau ou des plages CIDR pour contrôler le trafic entrant vers votre réseau VPC :

Network tags (Tags réseau)

Les étapes suivantes expliquent comment créer des règles d'entrée limitant l'accès d'un connecteur à votre réseau VPC en fonction des tags réseau du connecteur.

  1. Assurez-vous de disposer des autorisations nécessaires pour insérer des règles de pare-feu. Vous devez disposer de l'un des rôles Identity and Access Management (IAM) suivants :

  2. Refusez le trafic de connecteur sur votre réseau VPC.

    Créez une règle de pare-feu d'entrée ayant une priorité inférieure à 1000 sur votre réseau VPC pour refuser l'entrée du tag réseau du connecteur. Cela remplace la règle de pare-feu implicite créée par l'accès au VPC sans serveur sur votre réseau VPC par défaut.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY
    

    Remplacez l'élément suivant :

    • RULE_NAME : nom de votre nouvelle règle de pare-feu. Exemple : deny-vpc-connector.
    • VPC_CONNECTOR_NETWORK_TAG : tag réseau du connecteur VPC universel si vous souhaitez que la règle s'applique à tous les connecteurs VPC existants et à tous les connecteurs VPC créés ultérieurement. Ou tag réseau unique du connecteur VPC si vous souhaitez contrôler un connecteur spécifique.
    • VPC_NETWORK : nom de votre réseau VPC
    • PRIORITY : un entier compris entre 1 et 999 (inclus). Exemple : 990
  3. Autorisez le trafic de connecteur vers la ressource qui doit recevoir le trafic du connecteur.

    Utilisez les options allow et target-tags pour créer une règle de pare-feu d'entrée ciblant la ressource de votre réseau VPC à laquelle le connecteur VPC doit accéder. Définissez la priorité de cette règle sur une valeur inférieure à celle de la règle que vous avez configurée à l'étape précédente.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOLS \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY
    

    Remplacez l'élément suivant :

    • RULE_NAME : nom de votre nouvelle règle de pare-feu. Exemple : allow-vpc-connector-for-select-resources.
    • VPC_CONNECTOR_NETWORK_TAG : tag réseau du connecteur VPC universel si vous souhaitez que la règle s'applique à tous les connecteurs VPC existants et à tous les connecteurs VPC créés ultérieurement. Ou tag réseau unique du connecteur VPC si vous souhaitez contrôler un connecteur spécifique. Si vous avez utilisé le tag réseau unique à l'étape précédente, utilisez le tag réseau unique.
    • VPC_NETWORK : nom de votre réseau VPC
    • RESOURCE_TAG : tag réseau de la ressource VPC à laquelle votre connecteur VPC doit accéder.
    • PRIORITY : entier inférieur à la priorité définie à l'étape précédente. Par exemple, si vous définissez la priorité de la règle que vous avez créée à l'étape précédente sur 990, essayez 980.

Pour plus d'informations sur les indicateurs obligatoires et facultatifs de création de règles de pare-feu, reportez-vous à la documentation de gcloud compute firewall-rules create.

Plage CIDR

Les étapes suivantes montrent comment créer des règles d'entrée qui limitent l'accès d'un connecteur à votre réseau VPC en fonction de la plage CIDR du connecteur.

  1. Assurez-vous de disposer des autorisations nécessaires pour insérer des règles de pare-feu. Vous devez disposer de l'un des rôles Identity and Access Management (IAM) suivants :

  2. Refusez le trafic de connecteur sur votre réseau VPC.

    Créez une règle de pare-feu d'entrée ayant une priorité inférieure à 1000 sur votre réseau VPC pour refuser l'entrée de la plage CIDR du connecteur. Cela remplace la règle de pare-feu implicite créée par l'accès au VPC sans serveur sur votre réseau VPC par défaut.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY
    

    Remplacez l'élément suivant :

    • RULE_NAME : nom de votre nouvelle règle de pare-feu. Exemple : deny-vpc-connector.
    • VPC_CONNECTOR_CIDR_RANGE : plage CIDR du connecteur dont vous limitez l'accès
    • VPC_NETWORK : nom de votre réseau VPC
    • PRIORITY : un entier compris entre 1 et 999 Exemple : 990
  3. Autorisez le trafic de connecteur vers la ressource qui doit recevoir le trafic du connecteur.

    Utilisez les options allow et target-tags pour créer une règle de pare-feu d'entrée ciblant la ressource de votre réseau VPC à laquelle le connecteur VPC doit accéder. Définissez la priorité de cette règle sur une valeur inférieure à celle de la règle que vous avez configurée à l'étape précédente.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOLS \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY
    

    Remplacez l'élément suivant :

    • RULE_NAME : nom de votre nouvelle règle de pare-feu. Exemple : allow-vpc-connector-for-select-resources.
    • PROTOCOLS : protocoles que vous souhaitez autoriser à partir de votre connecteur VPC. Il peut s'agir d'une ou de plusieurs des valeurs de chaîne sensibles à la casse tcp, udp, icmp, esp, ah, sctp ou n'importe quel numéro de protocole IP. Pour les protocoles basés sur les ports (tcp, udp et sctp), une liste des ports de destination ou des plages de ports auxquels la règle s'applique peut éventuellement être spécifiée. Pour en savoir plus, consultez la documentation de l'option allow.
    • VPC_CONNECTOR_CIDR_RANGE : plage CIDR du connecteur dont vous limitez l'accès
    • VPC_NETWORK : nom de votre réseau VPC
    • RESOURCE_TAG : tag réseau de la ressource VPC à laquelle votre connecteur VPC doit accéder.
    • PRIORITY : entier inférieur à la priorité définie à l'étape précédente. Par exemple, si vous définissez la priorité de la règle que vous avez créée à l'étape précédente sur 990, essayez 980.

Pour plus d'informations sur les indicateurs obligatoires et facultatifs de création de règles de pare-feu, consultez la documentation de gcloud compute firewall-rules create.

Restreindre l'accès à l'aide de règles de sortie

La procédure suivante explique comment créer des règles de sortie pour restreindre l'accès au connecteur.

  1. Assurez-vous de disposer des autorisations nécessaires pour insérer des règles de pare-feu. Vous devez disposer de l'un des rôles Identity and Access Management suivants :

  2. Refusez le trafic sortant de votre connecteur.

    Créez une règle de pare-feu de sortie sur votre connecteur d'accès au VPC sans serveur pour l'empêcher d'envoyer du trafic sortant.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --direction=EGRESS \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --network=VPC_NETWORK \
    --priority=PRIORITY
    

    Remplacez l'élément suivant :

    • RULE_NAME : nom de votre nouvelle règle de pare-feu. Exemple : deny-vpc-connector.
    • VPC_CONNECTOR_NETWORK_TAG : tag réseau du connecteur VPC universel si vous souhaitez que la règle s'applique à tous les connecteurs VPC existants et à tous les connecteurs VPC créés ultérieurement. Ou tag réseau unique du connecteur VPC si vous souhaitez contrôler un connecteur spécifique.
    • VPC_NETWORK : nom de votre réseau VPC
    • PRIORITY : un entier compris entre 1 et 999 Exemple : 990
  3. Autorisez le trafic sortant lorsque la destination se trouve dans la plage CIDR à laquelle votre connecteur doit accéder.

    Utilisez les options allow et destination-ranges pour créer une règle de pare-feu autorisant le trafic sortant depuis votre connecteur pour une plage de destination spécifique. Définissez la plage de destination sur la plage CIDR de la ressource de votre réseau VPC à laquelle votre connecteur peut accéder. Définissez la priorité de cette règle sur une valeur inférieure à celle de la règle que vous avez configurée à l'étape précédente.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOLS \
    --destination-ranges=RESOURCE_CIDR_RANGE \
    --direction=EGRESS \
    --network=VPC_NETWORK \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --priority=PRIORITY
    

    Remplacez l'élément suivant :

    • RULE_NAME : nom de votre nouvelle règle de pare-feu. Exemple : allow-vpc-connector-for-select-resources.
    • PROTOCOLS : protocoles que vous souhaitez autoriser à partir de votre connecteur VPC. Il peut s'agir d'une ou de plusieurs des valeurs de chaîne sensibles à la casse tcp, udp, icmp, esp, ah, sctp ou n'importe quel numéro de protocole IP. Pour les protocoles basés sur les ports (tcp, udp et sctp), une liste des ports de destination ou des plages de ports auxquels la règle s'applique peut éventuellement être spécifiée. Pour en savoir plus, consultez la documentation de l'option allow.
    • RESOURCE_CIDR_RANGE : plage CIDR du connecteur dont vous limitez l'accès
    • VPC_NETWORK : nom de votre réseau VPC
    • VPC_CONNECTOR_NETWORK_TAG : tag réseau du connecteur VPC universel si vous souhaitez que la règle s'applique à tous les connecteurs VPC existants et à tous les connecteurs VPC créés ultérieurement. Ou tag réseau unique du connecteur VPC si vous souhaitez contrôler un connecteur spécifique. Si vous avez utilisé le tag réseau unique à l'étape précédente, utilisez le tag réseau unique.
    • PRIORITY : entier inférieur à la priorité définie à l'étape précédente. Par exemple, si vous définissez la priorité de la règle que vous avez créée à l'étape précédente sur 990, essayez 980.

Pour plus d'informations sur les indicateurs obligatoires et facultatifs de création de règles de pare-feu, reportez-vous à la documentation de gcloud compute firewall-rules create.

Ajouter VPC Service Controls

Une fois que vous avez créé un connecteur et configuré votre service, vous pouvez limiter le risque d'exfiltration de données, et protéger les ressources et les données en utilisant VPC Service Controls pour l'API Serverless VPC Access.

Pour obtenir des informations générales sur l'activation de VPC Service Controls, consultez la section Créer un périmètre de service.

Services compatibles

Vous pouvez utiliser l'accès au VPC sans serveur pour atteindre un réseau VPC à partir des services suivants :

Régions où le service est disponible

Vous pouvez créer un connecteur d'accès au VPC sans serveur dans les régions suivantes :

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • australia-southeast1
  • europe-central2
  • europe-north1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • northamerica-northeast1
  • southamerica-east1
  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • us-west2
  • us-west3
  • us-west4

Protocoles réseau compatibles

Le tableau suivant décrit les protocoles compatibles avec chaque paramètre de sortie du connecteur d'accès au VPC sans serveur. Pour en savoir plus sur les paramètres de sortie disponibles, consultez la section Configurer les paramètres réseau.

Protocole Acheminer uniquement les requêtes envoyées à des adresses IP privées via le connecteur VPC Acheminer tout le trafic via le connecteur VPC
TCP
UDP
ICMP Compatible seulement avec les adresses IP externes

Rôles IAM organisés

Le tableau suivant décrit les rôles IAM (gestion de l'authentification et des accès) associés à l'accès au VPC sans serveur. Reportez-vous à la page Rôles associés à l'accès au VPC sans serveur dans la documentation IAM pour obtenir la liste des autorisations associées à chaque rôle.

Rôle Description
Administrateur pour l'accès au VPC sans serveur
roles/vpcaccess.admin
Donne l'accès complet à toutes les ressources d'accès au VPC sans serveur
Utilisateur pour l'accès au VPC sans serveur
roles/vpcaccess.user
Permet d'utiliser les connecteurs d'accès au VPC sans serveur
Lecteur pour l'accès au VPC sans serveur
roles/vpcaccess.viewer
Donne accès en lecture à toutes les ressources d'accès au VPC sans serveur

Compte de service

Pour effectuer des opérations dans votre projet Cloud, le service d'accès au VPC sans serveur utilise le compte de service Agent de service de l'accès au VPC sans serveur. L'adresse e-mail de ce compte de service est au format suivant :

service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com

Par défaut, ce compte de service dispose du rôle Agent de service d'accès au VPC sans serveur (roles/vpcaccess.serviceAgent). Les opérations d'accès au VPC sans serveur peuvent échouer si vous modifiez les autorisations de ce compte.

Journaux d'audit

Consultez les informations sur les journaux d'audit de l'accès au VPC sans serveur.

Tarifs

Pour en savoir plus sur la tarification de l'accès au VPC sans serveur, consultez la section Accès au VPC sans serveur de la page "Tarifs de VPC".

Dépannage

Si la création d'un connecteur entraîne une erreur, suivez la procédure suivante et recréez votre connecteur :

  • Spécifiez une plage d'adresses IP interne RFC 1918 qui ne chevauche aucune réservation d'adresses IP existantes sur le réseau VPC.
  • Accordez à votre projet l'autorisation d'utiliser les images de VM Compute Engine du projet avec l'ID serverless-vpc-access-images. Consultez la page Définir des contraintes d'accès aux images pour savoir comment mettre à jour votre règle d'administration en conséquence.
  • Définissez la règle d'administration constraints/compute.vmCanIpForward pour autoriser les VM à activer le transfert IP.

Si vous avez spécifié un connecteur pour un service sans serveur, mais que vous ne pouvez toujours pas accéder aux ressources de votre réseau VPC, procédez comme suit :

  • Assurez-vous qu'aucune règle de pare-feu de votre réseau VPC ayant une priorité inférieure à 1 000 ne refuse l'entrée en provenance de la plage d'adresses IP ou des tags réseau.