Cette page explique comment utiliser les paramètres d'entrée pour restreindre l'accès réseau à vos services et instancesCloud Run.
Au niveau du réseau, le point de terminaisonou d'une instance de service Cloud Run est accessible depuis les chemins d'entrée réseau suivants :
- Les URL
run.apppar défaut, que vous pouvez désactiver - Tous les mappages de domaine configurés
- Tout équilibreur de charge d'application externe ou interne configuré
Tous les chemins d'entrée réseau sont soumis au paramètre d'entrée de la ressource. Les chemins d'entrée et le paramètre d'entrée par défaut permettent à n'importe quelle ressource sur Internet d'atteindre votre ressource Cloud Run. Vous pouvez utiliser une contrainte personnalisée pour restreindre les paramètres d'entrée pour votre organisation ou pour un ensemble de projets. L'authentification IAM s'applique toujours aux requêtes qui atteignent les points de terminaison de service ou d'instance à partir de l'un des chemins d'entrée réseau précédents. Pour une approche multicouche de la gestion des accès, utilisez à la fois les paramètres d'entrée réseau et l'authentification IAM.
Utilisez des tags réseau pour limiter l'accès des VM du connecteur aux ressources VPC.
Paramètres d'entrée réseau disponibles
Voici les paramètres disponibles :
| Paramètre | Description |
|---|---|
| Interne |
La plus restrictive. Elle autorise les requêtes provenant des sources suivantes :
run.app.
Les requêtes provenant d'autres sources, y compris Internet, ne peuvent pas atteindre votre service ou votre instance via l'URL run.app ou les domaines personnalisés. |
| Équilibrage de charge interne et cloud | Ce paramètre autorise les requêtes provenant des ressources suivantes:
Remarque : Pour activer ce paramètre dans gcloud CLI, utilisez internal-and-cloud-load-balancing.
Pour activer ce paramètre dans la console Google Cloud , sélectionnez
Interne > Autoriser le trafic provenant d'équilibreurs de charge d'application externes.
|
| Tous |
La moins restrictive. Autorise toutes les requêtes, y compris les requêtes provenant directement d'Internet vers l'URL run.app.
|
Accéder aux services internes
Les considérations supplémentaires suivantes s'appliquent :
Lorsque vous accédez à des services internes, appelez-les comme vous le feriez habituellement avec leurs URL, soit l'URL par défaut
run.app, soit un domaine personnalisé configuré dans Cloud Run.Pour les requêtes provenant d'instances de VM Compute Engine, aucune configuration supplémentaire n'est requise pour les machines disposant d'adresses IP externes ou qui utilisent Cloud NAT. Sinon, consultez la section Recevoir des requêtes à partir de réseaux VPC.
Lors d'un appel depuis Cloud Run ou App Engine vers un service Cloud Run défini sur "Interne" ou "Interne et Cloud Load Balancing", le trafic doit être acheminé via un réseau VPC considéré comme interne. Consultez la section Recevoir des requêtes d'autres services Cloud Run ou d'App Engine.
Les requêtes provenant de ressources situées au sein de réseaux VPC dans le même projet sont "internes", même si la ressource dont elles proviennent a une adresse IP externe.
Les requêtes provenant de ressources sur site connectées au réseau VPC à l'aide de Cloud VPN et Cloud Interconnect sont considérées comme "internes".
Définir l'entrée
Les sections suivantes expliquent comment définir l'entrée pour les services et les instancesCloud Run.
Définir l'entrée pour les services Cloud Run
Vous pouvez définir l'entrée pour un service Cloud Run à l'aide de la consoleGoogle Cloud , de Google Cloud CLI, de YAML ou de Terraform.
Console
Dans la console Google Cloud , accédez à la page Services de Cloud Run :
Si vous configurez un nouveau service, cliquez sur Déployer un conteneur pour afficher le formulaire Créer un service. Remplissez la page initiale des paramètres du service.
Si vous configurez un service existant, cliquez sur celui-ci, puis sur l'onglet Réseau.
Sélectionnez le trafic entrant que vous souhaitez autoriser.
Cliquez sur Créer pour un nouveau service. Cliquez sur Afficher les différences et redéployer, puis sur Déployer les modifications pour un service existant.
gcloud
Si vous déployez un nouveau service, déployez-le avec l'option
--ingress:gcloud run deploy SERVICE \ --image IMAGE_URL \ --ingress INGRESS
Remplacez les éléments suivants :
SERVICE: nom de votre service.IMAGE_URL: référence à l'image de conteneur, par exempleus-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 est au formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.INGRESS: l'un des paramètres d'entrée disponibles :allinternalinternal-and-cloud-load-balancing
Si vous modifiez une entrée de service existante, procédez comme suit :
gcloud run services update SERVICE \ --ingress INGRESS
Remplacez les éléments suivants :
SERVICE: nom de votre serviceINGRESS: l'un des paramètres d'entrée disponibles :allinternalinternal-and-cloud-load-balancing
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour l'annotation
run.googleapis.com/ingress::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/ingress: INGRESS spec: template: metadata: name: REVISION
Remplacez les éléments suivants :
SERVICE: nom de votre service Cloud Run.INGRESS: l'un des paramètres d'entrée disponibles :allinternalinternal-and-cloud-load-balancing
REVISIONpar un nouveau nom de révision ou supprimez-le (le cas échéant). Si vous indiquez un nouveau nom de révision, il doit répondre aux critères suivants :- Commencer par
SERVICE- - Ne contenir que des lettres minuscules, des chiffres et
- - Ne pas se terminer par
- - Ne pas dépasser 63 caractères
- Commencer par
Remplacez la configuration du service en utilisant la commande suivante :
gcloud run services replace service.yaml
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Ajoutez les éléments suivants à une ressourcegoogle_cloud_run_v2_service dans votre configuration Terraform :Définir l'entrée pour les instances Cloud Run
Vous pouvez définir l'entrée pour une instance Cloud Run à l'aide de la Google Cloud CLI ou de YAML :
gcloud
Si vous créez une instance, déployez-la avec l'option
--ingress:gcloud beta run instances deploy INSTANCE \ --image IMAGE_URL \ --ingress INGRESS
Remplacez les éléments suivants :
INSTANCE: nom de votre instance.IMAGE_URL: référence à l'image de conteneur, par exempleus-docker.pkg.dev/cloudrun/container/hello:latest.INGRESS: l'un des paramètres d'entrée disponibles :allinternalinternal-and-cloud-load-balancing
Si vous modifiez une entrée d'instance existante, procédez comme suit :
gcloud beta run instances update INSTANCE \ --ingress INGRESS
Remplacez les éléments suivants :
INSTANCE: nom de votre instance.INGRESS: l'un des paramètres d'entrée disponibles :allinternalinternal-and-cloud-load-balancing
YAML
Si vous créez une instance, ignorez cette étape. Si vous mettez à jour une instance existante, téléchargez sa configuration YAML :
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Mettez à jour l'annotation
run.googleapis.com/ingress::apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/ingress: INGRESS run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL
Remplacez les éléments suivants :
INSTANCE: nom de votre instance Cloud Run.INGRESS: l'un des paramètres d'entrée disponibles :allinternalinternal-and-cloud-load-balancing
CONTAINER_NAME: nom du conteneur.IMAGE_URL: référence à l'image de conteneur, par exempleus-docker.pkg.dev/cloudrun/container/hello:latest.
Créez ou mettez à jour l'instance à l'aide de la commande suivante :
gcloud beta run instances replace instance.yaml
Désactiver l'URL par défaut
Avant de désactiver l'URL par défaut, sachez que lesGoogle Cloud services ou instances suivants utilisent l'URL run.app par défaut pour appeler Cloud Run. La désactivation de l'URL run.app par défaut empêche ces services ou instances de fonctionner comme prévu :
- URL
cloudfunctions.netde l'API Cloud Functions v2 basée sur le service Cloud Run. - Cloud Scheduler
- Cloud Service Mesh
- Cloud Tasks
- Dialogflow CX
- Eventarc
- Firebase App Hosting
- Firebase Hosting
- Pub/Sub
- Surveillance synthétique et tests de disponibilité
- Workflows
Consultez les sections suivantes pour savoir comment désactiver l'URL par défaut pour les services et les instancesCloud Run.
Désactiver l'URL par défaut pour les services Cloud Run
Désactivez l'URL run.app par défaut d'un service ou d'une instance Cloud Run pour n'autoriser que le trafic provenant des autres chemins d'entrée du service : Cloud Load Balancing et tout mappage de domaine configuré.
Pour désactiver l'URL par défaut, procédez comme suit à l'aide de la console Google Cloud , de la Google Cloud CLI, de YAML ou de Terraform.
Console
Dans la console Google Cloud , accédez à la page Services de Cloud Run :
Cliquez sur un service existant.
Sélectionnez l'onglet Mise en réseau.
Dans la fiche Points de terminaison, décochez Activer sous URL du point de terminaison HTTPS par défaut.
Cliquez sur Afficher les différences et redéployer, puis sur Déployer les modifications.
Pour restaurer l'URL par défaut, sélectionnez Activer.
gcloud
Pour un service existant, exécutez la commande
gcloud run services updateavec l'option--no-default-url, par exemple :gcloud run services update SERVICE_NAME --no-default-url
Pour un nouveau service, exécutez la commande
gcloud run deployavec l'option--no-default-url, par exemple :gcloud run deploy SERVICE_NAME --no-default-url
Remplacez
SERVICE_NAMEpar le nom de votre service Cloud Run.Dans le résultat, l'URL s'affiche en tant que
None.
Pour restaurer l'URL par défaut, utilisez l'option --default-url.
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Pour désactiver l'URL
run.app, utilisez l'annotationrun.googleapis.com/default-url-disabled:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/default-url-disabled: true name: SERVICE spec: template: metadata: name: REVISION
Remplacez les éléments suivants :
SERVICE: nom de votre service Cloud Run.REVISIONpar un nouveau nom de révision ou supprimez-le (le cas échéant). Si vous indiquez un nouveau nom de révision, il doit répondre aux critères suivants :- Commencer par
SERVICE- - Ne contenir que des lettres minuscules, des chiffres et
- - Ne pas se terminer par
- - Ne pas dépasser 63 caractères
- Commencer par
Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.yaml
La commande
gcloud run services replaceutilise par défaut le fichierservice.yamls'il est présent.
Pour restaurer l'URL par défaut, supprimez l'annotation run.googleapis.com/default-url-disabled.
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Ajoutez les éléments suivants à une ressourcegoogle_cloud_run_v2_service dans votre configuration Terraform : resource "google_cloud_run_v2_service" "disable_default_url_service" {
name = "cloudrun-service"
location = "europe-west1"
default_uri_disabled = true
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
annotations = {
"run.googleapis.com/ingress" = "all" # "all" or "internal-only"
}
}
}
Vérifiez que les lignes launch_stage et default_uri_disabled figurent dans votre fichier main.tf. La ressource google_cloud_run_v2_service précédente spécifie un service Cloud Run avec l'URL par défaut désactivée en version Preview.
Pour restaurer l'URL par défaut, supprimez les arguments default_uri_disabled et launch_stage.
Désactiver l'URL par défaut pour les instances Cloud Run
Désactivez l'URL run.app par défaut d'une instance Cloud Run pour n'autoriser que le trafic provenant des autres chemins d'entrée de l'instance : Cloud Load Balancing et tout mappage de domaine configuré.
gcloud
Pour une instance existante, exécutez la commande
gcloud beta run instances updateavec l'indicateur--no-default-url, par exemple :gcloud beta run instances update INSTANCE --no-default-url
Pour une nouvelle instance, exécutez la commande
gcloud beta run instances deployavec l'option--no-default-url, par exemple :gcloud beta run instances deploy INSTANCE \ --image IMAGE_URL \ --no-default-url
Remplacez
INSTANCEpar le nom de votre instance Cloud Run.Dans le résultat, l'URL s'affiche en tant que
None.
Pour restaurer l'URL par défaut, utilisez l'option --default-url.
YAML
Si vous créez une instance, ignorez cette étape. Si vous mettez à jour une instance existante, téléchargez sa configuration YAML :
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Pour désactiver l'URL par défaut, définissez l'annotation
run.googleapis.com/default-url-disabledsur'true':apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/default-url-disabled: 'true' run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL
Remplacez les éléments suivants :
INSTANCE: nom de votre instance Cloud Run.CONTAINER_NAME: nom du conteneur.IMAGE_URL: référence à l'image de conteneur, telle queus-docker.pkg.dev/cloudrun/container/hello:latest.
Créez ou mettez à jour l'instance à l'aide de la commande suivante :
gcloud beta run instances replace instance.yaml
Pour restaurer l'URL par défaut, définissez l'annotation run.googleapis.com/default-url-disabled sur false ou supprimez-la.
Étapes suivantes
- Apprenez-en plus sur les paramètres de sortie.
- Configurez un équilibreur de charge d'application interne pour Cloud Run.
- Configurez un équilibreur de charge d'application externe avec Cloud Run.
- Configurez les méthodes d'authentification IAM pour accéder aux services ou aux instances.