Se connecter à un réseau VPC

Cette page explique comment utiliser l'accès au VPC sans serveur pour connecter un service Cloud Run 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 dans le projet de votre service 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 afin qu'il 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. Si vous configurez un nouveau service, renseignez la page de paramètres initiale du service, puis cliquez sur Suivant > Paramètres avancés pour accéder à la page de configuration du service.

  4. Cliquez sur l'onglet Connexions.

    image

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

  6. 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.
    • 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 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. Configurez le projet hôte pour le VPC partagé en suivant les instructions de la section Configurer le projet hôte si vous utilisez un VPC partagé.

  2. Créez le connecteur pour le VPC partagé en suivant les instructions de la section Créer un connecteur.

  3. Lorsque vous déployez ou mettez à jour un service Cloud Run dans votre projet de service, spécifiez le connecteur dans l'interface utilisateur de la console à l'aide du menu déroulant VPC Connector (Connecteur VPC) dans l'onglet Connexions ou, si vous utilisez la ligne de commande gcloud, spécifiez le connecteur à l'aide de l'option --vpc-connector.

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. Si vous configurez un nouveau service, renseignez la page de paramètres initiale du service, puis cliquez sur Suivant > Paramètres avancés pour accéder à la page de configuration du service.

  4. Cliquez sur l'onglet Connexions.

    image

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

  6. 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 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-traffic : 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 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.
    • 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-traffic : 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

Afficher les paramètres des connexions VPC

Pour afficher les paramètres de connexion VPC actuels de votre service, procédez comme suit:

Console

  1. Accédez à Cloud Run

  2. Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.

  3. Cliquez sur l'onglet Révisions.

  4. Dans le panneau de détails sur la droite, le paramètre des connexions VPC est répertorié sous l'onglet Conteneur.

Ligne de commande

  1. Exécutez la commande suivante :

    gcloud run services describe SERVICE
  2. Recherchez le paramètre des connexions VPC dans la configuration renvoyée.