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 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 (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
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.
Sous Paramètres avancés, cliquez sur Connexions.
Dans le champ Connecteur VPC, sélectionnez un connecteur à utiliser ou Aucun pour déconnecter votre service d'un réseau VPC.
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 exemplegcr.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.
Pour afficher et télécharger la configuration, exécutez la commande suivante :
gcloud run services describe SERVICE --format export > service.yaml
Ajoutez ou mettez à jour l'attribut
run.googleapis.com/vpc-access-connector
sous l'attributannotations
sous l'attribut de niveau supérieurspec
: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.
- Remplacez
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.
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é.
Créez le connecteur pour le VPC partagé en suivant les instructions de la section Créer un connecteur.
Lorsque vous déployez ou mettez à jour un service Cloud Run (entièrement géré) 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
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.
Sous Paramètres avancés, cliquez sur Connexions.
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.
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 exemplegcr.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 run services update SERVICE --vpc-egress EGRESS_SETTING
- Remplacez
SERVICE
par le nom du service. - Remplacez
EGRESS_SETTING
par une valeur de paramètre de sortie, comme indiqué ci-dessus.
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.
Pour afficher et télécharger la configuration, exécutez la commande suivante :
gcloud run services describe SERVICE --format export > service.yaml
Ajoutez ou mettez à jour l'attribut
run.googleapis.com/vpc-access-egress
sous l'attributannotations
sous l'attribut de niveau supérieurspec
: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'attributrun.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.
- Remplacez
Remplacez la configuration du service en utilisant la commande suivante :
gcloud beta run services replace service.yaml
Étapes suivantes
- En savoir plus sur l'accès au VPC sans serveur.
- Découvrez comment vous connecter à Memorystore à partir d'un service Cloud Run (entièrement géré).
Afficher les paramètres des connexions VPC
Pour afficher les paramètres de connexion VPC actuels de votre service, procédez comme suit:
Console
Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.
Cliquez sur l'onglet Révisions.
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
Exécutez la commande suivante :
gcloud run services describe SERVICE
Recherchez le paramètre des connexions VPC dans la configuration renvoyée.