Par défaut, un service Cloud Run se connecte à des points de terminaison externes sur Internet à l'aide d'un pool d'adresses IP dynamique. Si le service Cloud Run se connecte à un point de terminaison externe nécessitant une adresse IP statique, telle qu'une base de données ou une API utilisant un pare-feu basé sur l'adresse IP, vous devez configurer votre service Cloud Run pour acheminer les requêtes à l'aide d'une adresse IP statique.
Cette page explique comment activer un service Cloud Run pour envoyer des requêtes à l'aide d'une adresse IP statique.
Nous vous recommandons de configurer Cloud Run pour envoyer du trafic vers un réseau VPC à l'aide de la sortie VPC directe. Vous pouvez toutefois créer un connecteur.
Présentation de la tâche
Pour permettre à un service Cloud Run d'acheminer les requêtes à l'aide d'une adresse IP statique, configurez la sortie VPC du service Cloud Run afin d'acheminer tout le trafic sortant via un Réseau VPC comportant une passerelle Cloud NAT configurée avec l'adresse IP statique.
Le routage de votre trafic via Cloud NAT ne provoque pas de saut supplémentaire dans votre pile réseau, car la passerelle Cloud NAT et le routeur Cloud Router ne fournissent qu'un plan de contrôle, et les paquets ne passent pas par la passerelle NAT ou le routeur cloud.
Configurer la traduction d'adresse réseau (NAT)
Si vous utilisez la sortie VPC directe ou un connecteur d'accès au VPC sans serveur, les requêtes du service Cloud Run arrivent sur votre réseau VPC. Si vous souhaitez acheminer les requêtes sortantes vers des points de terminaison externes à l'aide d'une adresse IP statique, configurez une passerelle Cloud NAT.
gcloud
Créez un Cloud Router pour programmer une passerelle Cloud NAT :
gcloud compute routers create ROUTER_NAME \ --network=NETWORK_NAME \ --region=REGION
Remplacez les valeurs suivantes dans cette commande :
ROUTER_NAME
par le nom de la ressource Cloud Router que vous souhaitez créer.NETWORK_NAME
par le nom du réseau VPC que vous avez trouvé précédemment.REGION
par la région dans laquelle vous souhaitez créer une passerelle Cloud NAT.
Réserver une adresse IP statique Une ressource d'adresse IP réservée conserve l'adresse IP sous-jacente lorsque la ressource à laquelle elle est associée est supprimée et recréée :
gcloud compute addresses create ORIGIN_IP_NAME --region=REGION
Remplacez les valeurs suivantes dans cette commande :
ORIGIN_IP_NAME
par le nom que vous souhaitez attribuer à la ressource d'adresse IP.REGION
par la région qui exécute le routeur Cloud NAT. Idéalement, la même région que votre service Cloud Run, afin de minimiser la latence et les coûts du réseau.
Créez une configuration de passerelle Cloud NAT sur ce routeur pour acheminer le trafic provenant du réseau VPC à l'aide de l'adresse IP statique que vous avez créée :
gcloud compute routers nats create NAT_NAME \ --router=ROUTER_NAME \ --region=REGION \ --nat-custom-subnet-ip-ranges=SUBNET_NAME \ --nat-external-ip-pool=ORIGIN_IP_NAME
Remplacez les valeurs suivantes dans cette commande :
NAT_NAME
par le nom de la ressource de passerelle Cloud NAT que vous souhaitez créer.ROUTER_NAME
par le nom de votre Cloud Router.REGION
par la région dans laquelle vous souhaitez créer une passerelle Cloud NAT.SUBNET_NAME
par le nom de votre sous-réseau.ORIGIN_IP_NAME
avec le nom de la ressource d'adresse IP réservée que vous avez créée à l'étape précédente.
Terraform
Créez un Cloud Router pour programmer une passerelle Cloud NAT :
Remplacez
cr-static-ip-router
par le nom de votre sous-réseau.Réserver une adresse IP statique Une ressource d'adresse IP réservée conserve l'adresse IP sous-jacente lorsque la ressource à laquelle elle est associée est supprimée et recréée :
Remplacez
cr-static-ip-addr
par le nom de votre sous-réseau.Créez une configuration de passerelle Cloud NAT sur ce routeur pour acheminer le trafic provenant du réseau VPC à l'aide de l'adresse IP statique que vous avez créée :
Remplacez
cr-static-nat
par le nom de votre passerelle Cloud NAT.
Acheminer le trafic Cloud Run via le réseau VPC
Une fois la Cloud NAT configurée, déployez ou mettez à jour votre service Cloud Run avec la sortie VPC directe ou le connecteur d'accès au VPC sans serveur, puis définissez la sortie VPC pour acheminer tout le trafic via le réseau VPC :
gcloud
Sortie VPC directe
Pour déployer ou mettre à jour votre service Cloud Run afin d'utiliser la sortie VPC directe et d'acheminer tout le trafic de sortie via celui-ci, exécutez la commande suivante :
gcloud run deploy SERVICE_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --region=REGION \ --vpc-egress=all-traffic
Remplacez les valeurs suivantes dans cette commande :
- SERVICE_NAME par le nom du service Cloud Run que vous souhaitez déployer.
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante :LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - NETWORK par le nom de votre réseau VPC ;
- SUBNET par le nom de votre sous-réseau.
- REGION par une région pour votre service.
Connecteur d'accès au VPC sans serveur
Pour déployer ou mettre à jour votre service Cloud Run afin d'utiliser un connecteur d'accès au VPC sans serveur et d'acheminer tout le trafic sortant via celui-ci, exécutez la commande suivante :
gcloud run deploy SERVICE_NAME \ --image=IMAGE_URL \ --vpc-connector=CONNECTOR_NAME \ --region=REGION \ --vpc-egress=all-traffic
Remplacez les valeurs suivantes dans cette commande :
- SERVICE_NAME par le nom du service Cloud Run que vous souhaitez déployer.
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante :LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - CONNECTOR_NAME par le nom de votre connecteur d'accès au VPC sans serveur.
- REGION par une région pour votre service.
Terraform
Ce service Cloud Run utilise un connecteur VPC et achemine tout le trafic de sortie via celui-ci :
Remplacez us-docker.pkg.dev/cloudrun/container/hello
par une référence à votre image de conteneur.
Vérifier l'adresse IP externe statique
Une fois la procédure ci-dessus terminée, vous avez configuré Cloud NAT sur votre réseau VPC avec une adresse IP statique prédéfinie, et vous avez acheminé tout le trafic sortant de votre service Cloud Run vers votre réseau VPC. Les requêtes en provenance de votre service Cloud Run sont acheminées via votre réseau VPC et atteignent les points de terminaison externes à l'aide de l'adresse IP statique.
Pour vérifier ce comportement et confirmer l'adresse IP d'origine utilisée par votre service, vous pouvez envoyer une requête à une API ou à un site Web tel que curlmyip.org qui affiche l'adresse IP d'origine.
Supprimer l'adresse IP externe statique
Si vous n'avez plus besoin d'adresse IP externe statique, consultez la page Libérer une adresse IP externe statique.