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. 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.
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.
|
Tout |
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 publiques 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, App Engine ou depuis les fonctions Cloud Functions 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, d'App Engine et de fonctions Cloud Run.
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 le trafic entrant à l'aide de l'une des méthodes acceptées dans ces onglets :
Console
Dans la console Google Cloud, accédez à la page Cloud Run :
Si vous configurez un nouveau service, cliquez sur Déployer un conteneur et sélectionnez Service 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 le code ci-dessous à votre fichier main.tf
:
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 :
Ligne de commande
Pour désactiver l'URL
run.app
d'un service, exécutez la commandegcloud beta run deploy
ougcloud beta run services update
avec l'option--no-default-url
:gcloud beta run deploy 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
.
Les services Google Cloud suivants utilisent l'URL run.app
par défaut pour appeler Cloud Run. La désactivation de l'URL par défaut run.app
empêche ces services de fonctionner comme prévu :
- URL
cloudfunctions.net
des fonctions Cloud Run (2e génération) basée sur le service Cloud Run - Cloud Scheduler
- Cloud Service Mesh
- Cloud Tasks
- Eventarc
- Firebase App Hosting
- Firebase Hosting
- Pub/Sub
- Surveillance synthétique et tests de disponibilité
- Workflows
Étape suivante
- 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.