Se connecter à un réseau VPC

Cette page explique comment utiliser l'accès au VPC sans serveur pour connecter un service Cloud Run (entièrement géré) directement à votre réseau VPC, ce qui permet d'accéder aux instances de VM Compute Engine, aux instances Memorystore et à toute autre ressource disposant d'une adresse IP interne.

Pour utiliser l'accès au VPC sans serveur, vous devez commencer par créer un connecteur d'accès au VPC sans serveur afin de gérer la communication avec votre réseau VPC. Après avoir créé un connecteur, définissez la configuration du service Cloud Run (entièrement géré) de sorte qu'elle utilise ce connecteur.

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

Pour obtenir des instructions détaillées sur la création de connecteurs d'accès au VPC sans serveur, reportez-vous à la section Créer un connecteur.

Configurer un service pour utiliser un connecteur

Vous pouvez configurer un service pour utiliser un connecteur depuis Cloud Console, la ligne de commande ou le fichier YAML lorsque vous créez un service ou déployez une nouvelle révision :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.

  3. Sous Paramètres avancés, cliquez sur Connexions.

    image

  4. Dans le champ Connecteur VPC, sélectionnez un connecteur à utiliser ou Aucun pour déconnecter votre service d'un réseau VPC.

  5. Cliquez sur Créer ou Déployer.

Ligne de commande

Pour spécifier un connecteur lors du déploiement, utilisez l'option --vpc-connector :

gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
  • Remplacez SERVICE par le nom du service.
  • Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple gcr.io/myproject/my-image:latest.
  • Remplacez CONNECTOR_NAME par le nom de votre connecteur.

Pour associer, mettre à jour ou supprimer un connecteur pour un service existant, utilisez la commande gcloud run services update avec l'une des options suivantes selon vos besoins :

Par exemple, pour associer ou mettre à jour un connecteur :

gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
  • Remplacez SERVICE par le nom du service.
  • Remplacez CONNECTOR_NAME par le nom de votre connecteur.

YAML

Vous pouvez télécharger et afficher la configuration de service existante à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud beta run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Ajoutez ou mettez à jour l'attribut run.googleapis.com/vpc-access-connector sous l'attribut annotations sous l'attribut de niveau supérieur spec :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
    • Remplacez SERVICE par le nom de votre service Cloud Run (entièrement géré).
    • Remplacez CONNECTOR_NAME par le nom de votre connecteur.
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud beta run services replace service.yaml

Se connecter à un réseau VPC partagé

Si vous avez configuré un VPC partagé dans votre organisation, le service Cloud Run (entièrement géré) d'un projet de service du VPC partagé peut se connecter à un réseau VPC partagé après avoir défini certains paramètres de son projet hôte.

  1. Assurez-vous qu'un administrateur du projet hôte effectue la procédure de configuration décrite sur la page Utiliser un réseau VPC partagé. Cette configuration comprend la création d'un connecteur d'accès au VPC sans serveur dans le projet hôte, ainsi que sa connexion au réseau VPC partagé.
  2. Activez l'API Serverless VPC Access dans votre projet de service :

    Activer une API

  3. Une fois la configuration du projet hôte terminée, vous pouvez spécifier le nom complet de son connecteur lorsque vous déployez ou mettez à jour un service Cloud Run (entièrement géré) dans votre projet de service. Exemple :

    gcloud run deploy SERVICE --image IMAGE_URL \
    --vpc-connector projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME

    Cette opération permet de connecter votre service au réseau VPC partagé.

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. Toutefois, dans certains cas, vous pouvez souhaiter que toutes les requêtes sortantes émises par votre service soient acheminées vers votre réseau VPC, par exemple pour utiliser les règles de pare-feu de votre réseau afin d'empêcher le trafic sortant d'être acheminé vers des hôtes dangereux ou indésirables.

Pour contrôler le routage des requêtes sortantes émises par votre service, vous pouvez définir la sortie VPC sur l'une des options suivantes :

  • Acheminer uniquement les requêtes envoyées à des adresses IP privées via le connecteur VPC : 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.
  • Acheminer tout le trafic via le connecteur VPC : toutes les requêtes sortantes provenant du service sont acheminées vers votre réseau VPC. Les requêtes obéiront aux règles de pare-feu, de DNS et de routage du réseau.

Vous pouvez spécifier un paramètre de sortie VPC depuis Cloud Console, la ligne de commande ou un fichier YAML lorsque vous créez un service ou déployez une nouvelle révision :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.

  3. Sous Paramètres avancés, cliquez sur Connexions.

    image

  4. Après avoir sélectionné un connecteur VPC, sélectionnez Acheminer uniquement les requêtes envoyées à des adresses IP privées via le connecteur VPC ou Acheminer tout le trafic via le connecteur VPC.

  5. Cliquez sur Créer ou Déployer.

Ligne de commande

Pour spécifier un paramètre de sortie, utilisez l'option --vpc-egress. Vous pouvez spécifier un paramètre de sortie lors du déploiement :

gcloud beta run deploy SERVICE \
--image IMAGE_URL \
--vpc-connector CONNECTOR_NAME \
--vpc-egress EGRESS_SETTING
  • Remplacez SERVICE par le nom du service.
  • Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple gcr.io/myproject/my-image:latest.
  • Remplacez CONNECTOR_NAME par le nom de votre connecteur.
  • Remplacez EGRESS_SETTING par une valeur de paramètre de sortie :
    • all : achemine tout le trafic sortant via le connecteur.
    • private-ranges-only : achemine uniquement le trafic destiné à des adresses internes via le connecteur VPC.

Vous pouvez également mettre à jour un service existant et modifier le paramètre de sortie :

gcloud beta run services update SERVICE --vpc-egress EGRESS_SETTING

YAML

Vous pouvez télécharger et afficher la configuration de service existante à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud beta run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Ajoutez ou mettez à jour l'attribut run.googleapis.com/vpc-access-egress sous l'attribut annotations sous l'attribut de niveau supérieur spec :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
    • Remplacez SERVICE par le nom de votre service Cloud Run (entièrement géré).
    • Remplacez CONNECTOR_NAME par le nom de votre connecteur. L'attribut run.googleapis.com/vpc-access-connector est obligatoire lorsque vous spécifiez un paramètre de sortie.
    • Remplacez EGRESS_SETTING par l'un des éléments suivants :
      • all : achemine tout le trafic sortant via le connecteur.
      • private-ranges-only : achemine uniquement le trafic destiné à des adresses internes via le connecteur VPC.
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud beta run services replace service.yaml

Étapes suivantes