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, 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 100 Mbit/s provisionnés et peut évoluer jusqu'à 16 Gbit/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 n'est pas possible d'ajouter des tags réseau.

Créer un connecteur

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 définir les options de scaling afin de renforcer le contrôle du connecteur, cliquez sur Afficher les paramètres de scaling pour afficher le formulaire de scaling :

    image

    1. Définissez le nombre minimal et maximal d'instances de votre connecteur ou utilisez les valeurs par défaut, qui sont 2 (min.) et 10 (max.). Le connecteur effectue un scaling horizontal jusqu'à la valeur maximale spécifiée si l'utilisation du trafic l'exige, mais il ne réduit pas le nombre d'instances lorsque le trafic diminue. Les valeurs doivent être comprises entre 2 et 10.
    2. Dans le menu déroulant Type d'instance, choisissez le type de machine à utiliser pour le connecteur ou utilisez la valeur par défaut e2-micro. Notez la barre latérale des coûts sur la gauche lorsque vous choisissez le type d'instance, qui affiche des estimations de bande passante et de coûts.
  10. Cliquez sur Create (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 \
    # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max.
    --min-instances MIN \
    --max-instances MAX \
    # Optional: specify machine type, default is e2-micro
    --machine-type MACHINE_TYPE
    

    Remplacez l'élément suivant :

    • CONNECTOR_NAME : nom du connecteur.
    • REGION : région du connecteur. Elle doit correspondre à la région de votre service sans serveur. Consultez la section Régions où le service est disponible.
    • SUBNET : 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 : ID du projet hôte. Indiquez-le uniquement si vous utilisez un VPC partagé.
    • MIN : nombre minimal d'instances à utiliser pour le connecteur. Saisissez un nombre entier compris entre 2 et 10. La valeur par défaut est 2.
    • MAX : nombre maximal d'instances à utiliser pour le connecteur. Saisissez un nombre entier compris entre 2 et 10. La valeur par défaut est 10. Si le trafic l'exige, le connecteur effectue un scaling horizontal jusqu'aux instances [MAX], mais il ne réduit pas le nombre d'instances.
    • MACHINE_TYPE : f1-micro, e2-micro ou e2-standard-4.

      Machine type (Type de machine) Plage de débit estimé en Mbit/s Prix
      (instance de connecteur plus coûts de sortie réseau)
      f1-micro 100-500 Tarifs f1-micro
      e2-micro 200-1000 Tarifs e2-micro
      e2-standard-4 3200-16000 Tarifs standard e2

    Par exemple, si vous définissez MACHINE_TYPE sur f1-micro, le débit estimé pour votre connecteur est de 100 Mbit/s au niveau MIN par défaut et de 500 Mbit/s au niveau MAX par défaut.

    Pour plus d'informations et d'arguments facultatifs, 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
    

    Remplacez l'élément suivant :

    • CONNECTOR_NAME : nom du connecteur.
    • VPC_NETWORK : réseau VPC auquel associer le connecteur.
    • REGION : région du connecteur. Elle doit correspondre à la région de votre service sans serveur. Consultez la section Régions où le service est disponible.
    • IP_RANGE : 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
    

    Remplacez l'élément suivant :

    • CONNECTOR_NAME : nom du connecteur. Il s'agit du nom que vous avez spécifié à l'étape précédente.
    • REGION : région du connecteur. Il s'agit de la région que vous avez spécifiée à l'étape précédente.

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

Terraform

Vous pouvez utiliser une ressource Terraform pour activer l'API vpcaccess.googleapis.com.

resource "google_project_service" "project" {
  project = var.project_id # Replace this with your project ID in quotes
  service = "vpcaccess.googleapis.com"
}

Vous pouvez utiliser les modules Terraform pour créer un réseau et un sous-réseau VPC, puis créer le connecteur.

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 3.3.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-serverless-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "serverless-subnet"
      subnet_ip     = "10.10.10.0/28"
      subnet_region = "us-central1"
    }
  ]
}

module "serverless-connector" {
  source     = "terraform-google-modules/network/google//modules/vpc-serverless-connector-beta"
  project_id = var.project_id
  vpc_connectors = [{
    name        = "central-serverless"
    region      = "us-central1"
    subnet_name = module.test-vpc-module.subnets["us-central1/serverless-subnet"].name
    # host_project_id = var.host_project_id # Specify a host_project_id for shared VPC
    machine_type  = "e2-standard-4"
    min_instances = 2
    max_instances = 7
    }
    # Uncomment to specify an ip_cidr_range
    #   , {
    #     name          = "central-serverless2"
    #     region        = "us-central1"
    #     network       = module.test-vpc-module.network_name
    #     ip_cidr_range = "10.10.11.0/28"
    #     subnet_name   = null
    #     machine_type  = "e2-standard-4"
    #     min_instances = 2
    #   max_instances = 7 }
  ]
}

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

    Cette règle permet au connecteur VPC d'accéder à chaque ressource du réseau. Pour autoriser les connecteurs VPC à accéder à un ensemble plus limité de ressources, spécifiez une cible pour ces règles de pare-feu. 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 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

Remplacez l'élément suivant :

  • 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 du 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 section Créer des règles de pare-feu avec un champ d'application plus restreint pour en savoir plus sur la restriction de l'accès.

Lors de la connexion à un réseau VPC autonome, une règle de pare-feu implicite de priorité 1 000 est automatiquement créée sur votre réseau VPC afin d'autoriser l'entrée depuis le sous-réseau du connecteur ou la plage d'adresses IP personnalisée du connecteur vers toutes les destinations du réseau VPC. Remarque : 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 restreindre 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. Vérifiez que vous disposez des autorisations requises 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. Refuser le trafic du connecteur sur votre réseau VPC

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

    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 vous souhaitez que le connecteur VPC accède. Définissez la priorité de cette règle sur une valeur inférieure à celle de la règle que vous avez définie à 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.
    • PROTOCOLS : protocoles que vous souhaitez autoriser depuis le 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 de n'importe quel numéro de protocole IP. Pour les protocoles basés sur les ports (tcp, udp et sctp), vous pouvez éventuellement spécifier une liste de ports de destination ou de plages de ports à laquelle la règle s'applique. Pour en savoir plus, consultez la documentation de l'option allow.
    • 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.
    • 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 en savoir plus sur les options obligatoires et facultatives de création de règles de pare-feu, consultez la documentation sur la commande 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. Vérifiez que vous disposez des autorisations requises 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. Refuser le trafic du 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. Cette option remplace la règle de pare-feu implicite créée par défaut par l'accès au VPC sans serveur sur votre réseau VPC.

    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 vous souhaitez que le connecteur VPC accède. Définissez la priorité de cette règle sur une valeur inférieure à celle de la règle que vous avez définie à 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 depuis le 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 de n'importe quel numéro de protocole IP. Pour les protocoles basés sur les ports (tcp, udp et sctp), vous pouvez éventuellement spécifier une liste de ports de destination ou de plages de ports à laquelle la règle s'applique. 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 en savoir plus sur les options requises et facultatives pour la création de règles de pare-feu, consultez la documentation sur la commande 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 afin de restreindre l'accès au connecteur.

  1. Vérifiez que vous disposez des autorisations requises 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 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 vous souhaitez que votre connecteur accède.

    Utilisez les options allow et destination-ranges pour créer une règle de pare-feu autorisant le trafic sortant de 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 vous souhaitez que le connecteur accède. 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 depuis le 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 de n'importe quel numéro de protocole IP. Pour les protocoles basés sur les ports (tcp, udp et sctp), vous pouvez éventuellement spécifier une liste de ports de destination ou de plages de ports à laquelle la règle s'applique. 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.
    • 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 options obligatoires et facultatives 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.