Se connecter à un réseau VPC

Cette page explique comment utiliser l'accès au VPC sans serveur pour connecter directement votre application s'exécutant dans l'environnement standard App Engine à votre réseau VPC, afin d'accéder à des instances de VM Compute Engine, à des instances Memorystore et à toute autre ressource disposant d'une adresse IP interne.

Avant de commencer

Si vous utilisez un VPC partagé, consultez la section Se connecter à un réseau VPC partagé.

Créez un connecteur d'accès au VPC sans serveur.

Pour envoyer des requêtes à votre réseau VPC et recevoir les réponses correspondantes sans utiliser l'Internet public, vous devez utiliser un connecteur d'accès au VPC sans serveur.

Vous pouvez créer un connecteur à l'aide de Google Cloud Console, de Google Cloud CLI ou de Terraform :

Console

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

    Activer une API

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

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

  3. Cliquez sur Créer un connecteur.

  4. Dans le champ Nom, saisissez le nom du connecteur. Cette valeur doit être conforme à la convention d'attribution de noms de Compute Engine, avec une restriction supplémentaire : moins de 21 caractères, les tirets (-) étant comptés comme deux caractères.

  5. Dans le champ Région, sélectionnez une région pour votre connecteur. Elle doit correspondre à la région de votre service sans serveur.

    Si votre service se trouve dans la région us-central ou europe-west, utilisez us-central1 ou europe-west1.

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

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

    • Si vous utilisez votre propre sous-réseau (obligatoire pour le VPC partagé), sélectionnez un sous-réseau /28 inutilisé.

      • Les sous-réseaux doivent être utilisés exclusivement par le connecteur. Ils ne peuvent pas être utilisés par d'autres ressources telles que les VM, Private Service Connect ou l'équilibrage de charge HTTP(S) interne.
      • Pour vérifier que votre sous-réseau n'est pas utilisé par Private Service Connect ou l'équilibrage de charge HTTP(S) interne, vérifiez que le sous-réseau purpose est bien PRIVATE en exécutant la commande suivante dans gcloud CLI  :
        gcloud compute networks subnets describe SUBNET_NAME
        
        Remplacez :
        • SUBNET_NAME : nom de votre sous-réseau
    • 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.

  8. (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.

    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 droite lorsque vous choisissez le type d'instance, qui affiche des estimations de bande passante et de coûts.
  9. Cliquez sur Create (Créer).

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

gcloud

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

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

    gcloud services enable vpcaccess.googleapis.com
    
  3. 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 les éléments suivants :

    • CONNECTOR_NAME : nom du connecteur. Cette valeur doit être conforme à la convention d'attribution de noms de Compute Engine, avec une restriction supplémentaire : moins de 21 caractères, les tirets (-) étant comptés comme deux caractères.
    • REGION : région de votre connecteur. Elle doit correspondre à la région de votre service sans serveur. Si votre service se trouve dans la région us-central ou europe-west, utilisez us-central1 ou europe-west1.
    • SUBNET : nom d'un sous-réseau /28 inutilisé
      • Les sous-réseaux doivent être utilisés exclusivement par le connecteur. Ils ne peuvent pas être utilisés par d'autres ressources telles que les VM, Private Service Connect ou l'équilibrage de charge HTTP(S) interne.
      • Pour vérifier que votre sous-réseau n'est pas utilisé par Private Service Connect ou l'équilibrage de charge HTTP(S) interne, vérifiez que le sous-réseau purpose est bien PRIVATE en exécutant la commande suivante dans gcloud CLI  :
        gcloud compute networks subnets describe SUBNET_NAME
        
        Remplacez :
        • SUBNET_NAME : nom de votre 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 9. La valeur par défaut est 2. Pour en savoir plus sur le scaling des connecteurs, consultez la page Débit et scaling.
    • MAX : nombre maximal d'instances à utiliser pour le connecteur. Saisissez un nombre entier compris entre 3 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. Pour en savoir plus sur le scaling des connecteurs, consultez la page Débit et scaling.
    • MACHINE_TYPE : f1-micro, e2-micro ou e2-standard-4. Pour en savoir plus sur le débit du connecteur, y compris le type de machine et le scaling, consultez la section Débit et scaling.

    Pour plus d'informations et d'arguments facultatifs, consultez la documentation de référence sur gcloud.

  4. 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 les éléments suivants :

    • CONNECTOR_NAME : nom du connecteur. Ceci doit être conforme à la convention d'attribution de noms de Compute Engine, avec une restriction supplémentaire : moins de 21 caractères, les tirets (-) étant comptés comme deux caractères.
    • VPC_NETWORK : réseau VPC auquel associer le connecteur.
    • REGION : région de votre connecteur. Elle doit correspondre à la région de votre service sans serveur. Si votre service se trouve dans la région us-central ou europe-west, utilisez us-central1 ou europe-west1.
    • 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.

  5. 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 les éléments suivants :

    • 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" "vpcaccess-api" {
  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 }
  ]
  depends_on = [
    google_project_service.vpcaccess-api
  ]
}

Configurer votre service pour utiliser un connecteur

Une fois que vous avez créé un connecteur d'accès au VPC sans serveur, vous devez configurer chaque service de votre application App Engine que vous souhaitez connecter à votre réseau VPC.

Pour associer un connecteur à un service de votre application, procédez comme suit :

  1. Pour utiliser l'accès au VPC sans serveur, arrêtez d'utiliser le service de récupération d'URL App Engine. L'accès au VPC sans serveur n'est pas compatible avec le service de récupération d'URL. Les requêtes effectuées à l'aide de ce service ignorent les paramètres d'accès au VPC sans serveur. Établissez plutôt des connexions sortantes avec des sockets.

  2. Ajoutez le champ vpc_access_connector au fichier app.yaml de votre service :

    vpc_access_connector:
      name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    PROJECT_ID correspond à votre ID de projet Cloud, REGION à la région dans laquelle se trouve le connecteur et CONNECTOR_NAME au nom du connecteur.

  3. Déployez le service :

    gcloud app deploy
    

Une fois votre service déployé, il peut envoyer des requêtes aux adresses IP internes afin d'accéder aux ressources de votre réseau VPC.

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é avec des connecteurs situés dans les projets de service, 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.

Lors de la connexion à un réseau VPC autonome ou à un réseau VPC partagé doté d'un connecteur dans le projet hôte, une règle de pare-feu implicite de priorité 1000 est automatiquement créée sur votre réseau VPC afin d'autoriser les entrées provenant du sous-réseau du connecteur ou d'une plage d'adresses IP personnalisée 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 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.

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 les éléments suivants :

    • RULE_NAME : nom de votre nouvelle règle de pare-feu. Exemple : deny-vpc-connector.
    • VPC_CONNECTOR_NETWORK_TAG : tag réseau de connecteur universel si vous souhaitez limiter l'accès de tous les connecteurs (y compris ceux créés ultérieurement), ou tag réseau unique si vous souhaitez limiter l'accès d'un connecteur spécifique.

      • Tag réseau universel : vpc-connector
      • Tag réseau unique : vpc-connector-REGION-CONNECTOR_NAME

        Remplacez :

        • REGION : région du connecteur que vous souhaitez restreindre
        • CONNECTOR_NAME : nom du connecteur que vous souhaitez restreindre

      Pour en savoir plus sur les tags réseau de connecteur, consultez la page Tags réseau.

    • 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 les éléments suivants :

    • 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 de connecteur universel si vous souhaitez limiter l'accès de tous les connecteurs (y compris ceux créés ultérieurement), ou tag réseau unique si vous souhaitez limiter l'accès d'un connecteur spécifique. Il doit correspondre au tag réseau que vous avez spécifié à l'étape précédente.

      • Tag réseau universel : vpc-connector
      • Tag réseau unique : vpc-connector-REGION-CONNECTOR_NAME

        Remplacez :

        • REGION : région du connecteur que vous souhaitez restreindre
        • CONNECTOR_NAME : nom du connecteur que vous souhaitez restreindre

      Pour en savoir plus sur les tags réseau de connecteur, consultez la page Tags réseau.

    • 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 les éléments suivants :

    • 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 les éléments suivants :

    • 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 les éléments suivants :

    • 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 les éléments suivants :

    • 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.

Gérer votre connecteur

Contrôler le trafic sortant d'un service

Par défaut, seules les requêtes adressées aux adresses IP internes et aux noms DNS internes sont acheminées via un connecteur d'accès au VPC sans serveur. Vous pouvez spécifier le paramètre de sortie de votre service dans votre fichier app.yaml.

Les paramètres de sortie ne sont pas compatibles avec le service de récupération d'URL. Si vous ne l'avez pas déjà fait, désactivez la récupération d'URL par défaut puis arrêtez toute utilisation explicite de la bibliothèque urlfetch.

Pour configurer le comportement de sortie de votre service App Engine, procédez comme suit :

  1. Ajoutez l'attribut egress_setting au champ vpc_access_connector du fichier app.yaml de votre service :

    vpc_access_connector:
      name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
      egress_setting: EGRESS_SETTING
    

    Remplacez :

    • PROJECT_ID par votre ID de projet Cloud.
    • REGION par la région dans laquelle se trouve le connecteur.
    • CONNECTOR_NAME par le nom de votre connecteur.
    • EGRESS_SETTING par l'un des éléments suivants :
      • private-ranges-only (valeur par défaut). Seules les requêtes adressées aux plages d'adresses IP RFC 1918 et RFC 6598 ou aux noms DNS internes sont acheminées vers votre réseau VPC. Toutes les autres requêtes sont acheminées directement vers Internet.
      • all-traffic Toutes les requêtes sortantes provenant de votre service sont acheminées vers votre réseau VPC. Les requêtes sont ensuite soumises aux règles de pare-feu, de DNS et de routage de votre réseau VPC. Notez que le routage de toutes les requêtes sortantes vers votre réseau VPC augmente la quantité de trafic de sortie gérée par le connecteur d'accès au VPC sans serveur et peut entraîner des frais.
  2. Déployez le service :

    gcloud app deploy
    

Déconnecter un service d'un réseau VPC

Pour déconnecter un service d'un réseau VPC, supprimez la section vpc_access_connector du fichier app.yaml, puis redéployez le service.

Les connecteurs continuent à entraîner des frais, même s'ils n'ont pas de trafic et sont déconnectés. Pour en savoir plus, reportez-vous à Tarification. Si vous n'avez plus besoin de votre connecteur, veillez à le supprimer pour éviter de continuer à payer des frais.

Supprimer un connecteur

Avant de supprimer un connecteur, assurez-vous qu'aucun service n'y est connecté.

Pour les utilisateurs de VPC partagé qui configurent des connecteurs dans le projet hôte de VPC partagé (non recommandé), vous pouvez exécuter la commande gcloud compute networks vpc-access connectors describe pour répertorier les projets dans lesquels certains services utilisent un connecteur donné.

Pour supprimer un connecteur, utilisez la console ou Google Cloud CLI :

Console

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

    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 les éléments suivants :

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

Dépannage

Autorisations de 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.

Erreurs

Si la création d'un connecteur entraîne une erreur, procédez comme suit :

  • 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, 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 de votre connecteur.

Étapes suivantes