Cette page explique comment utiliser les paramètres d'entrée pour restreindre l'accès réseau à votre service Cloud Run.
Au niveau du réseau, le point de terminaison d'un service Cloud Run est accessible depuis les chemins d'entrée réseau suivants :
- Les URL
run.app
par 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 du service. 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 service 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 à 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 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 via Cloud VPN et Cloud Interconnect sont considérées des requêtes "internes".
Définir l'entrée
Vous pouvez définir l'entrée à l'aide de la console Google Cloud , de Google Cloud CLI, de YAML ou de Terraform.
Console
Dans la console Google Cloud , accédez à la page Cloud Run :
Si vous configurez un nouveau service, sélectionnez Services dans le menu, puis 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 ou sur Enregistrer.
gcloud
Si vous déployez un nouveau service, déployez votre service avec l'option
--ingress
:gcloud run deploy SERVICE --image IMAGE_URL --ingress INGRESS
Remplacer
INGRESS
par l'un des paramètres d'entrée disponibles :all
internal
internal-and-cloud-load-balancing
SERVICE
par le nom de votre service- 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
Si vous modifiez une entrée de service existante, procédez comme suit :
gcloud run services update SERVICE --ingress INGRESS
Remplacer
INGRESS
par l'un des paramètres d'entrée disponibles :all
internal
internal-and-cloud-load-balancing
SERVICE
par le nom de votre service
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: annotations: run.googleapis.com/ingress: INGRESS name: SERVICE spec: template: metadata: name: REVISION
Remplacer
- SERVICE par le nom de votre service Cloud Run
- INGRESS par l'un des paramètres d'entrée disponibles :
all
internal
internal-and-cloud-load-balancing
- REVISION par 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 la page Commandes Terraform de base.
Ajoutez les éléments suivants à une ressourcegoogle_cloud_run_v2_service
dans votre configuration Terraform :Désactiver l'URL par défaut
Désactivez les URL run.app
par défaut d'un service 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 Google Cloud CLI, de YAML ou de Terraform.
Ligne de commande
Pour désactiver l'URL
run.app
d'un service, exécutez la commandegcloud beta run services update
avec l'option--no-default-url
ou transmettez l'option--no-default-url
à la commandegcloud run deploy
:gcloud beta run services update SERVICE_NAME --no-default-url
où SERVICE_NAME correspond au 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 run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: name: REVISION
Remplacer
- SERVICE par le nom de votre service Cloud Run ;
- REVISION par 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
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 la page 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"
launch_stage = "BETA"
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 aperçu.
Pour restaurer l'URL par défaut, supprimez les arguments default_uri_disabled
et launch_stage
.
Les services Google Cloud 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 de fonctionner comme prévu :
- URL
cloudfunctions.net
de 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
É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.