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, par défaut, toutes les ressources d'Internet peuvent atteindre votre service Cloud Run sur son URL run.app
ou sur un domaine personnalisé configuré dans Cloud Run. Vous pouvez modifier cette valeur par défaut en spécifiant un autre paramètre pour l'entrée. Tous les chemins d'entrée, y compris l'URL run.app
par défaut, sont soumis à votre paramètre d'entrée.
L'entrée est définie au niveau du service.
Les paramètres d'entrée et les méthodes d'authentification IAM permettent de gérer l'accès à un service. Ils sont indépendants les uns des autres. Pour une approche multicouche de la gestion des accès, utilisez les deux.
Paramètres d'entrée 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.Les requêtes adressées à Cloud Run depuis Cloud Run, Cloud Functions ou App Engine doivent être envoyées au réseau VPC pour être considérées comme internes. Pour acheminer les requêtes vers le réseau VPC, utilisez la sortie VPC directe ou un connecteur d'accès au VPC sans serveur, et activez l'accès privé à Google sur le sous-réseau associé à la sortie VPC directe ou au connecteur. Il n'existe aucune compatibilité avec l'architecture mutualisée, c'est-à-dire plusieurs domaines de confiance au sein d'un même projet. |
Équilibrage de charge interne et cloud | Il autorise les requêtes provenant des ressources suivantes :
|
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 publiques, 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.
Pour les requêtes provenant d'autres services Cloud Run ou de Cloud Functions dans le même projet, connectez le service ou la fonction à un réseau VPC et acheminez l'ensemble du trafic sortant via le connecteur, comme décrit sur la page VPC avec connecteurs. Notez que l'autorisation de demandeur IAM reste appliquée.
Les requêtes provenant de ressources situées au sein de réseaux VPC dans le même projet sont classées comme des requêtes "internes", même si la ressource dont elles proviennent a une adresse IP publique.
Les requêtes provenant de ressources se trouvant dans un projet distinct, mais situées dans le même périmètre VPC Service Controls, ne peuvent appeler un service interne que si vous configurez l'API Cloud Run Admin en tant que service restreint au sein du périmètre de service.
Pour savoir dans quelles situations le trafic de VPC partagé est reconnu comme du trafic "interne", consultez la section Informations spécifiques aux VPC partagés.
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".
Pour les requêtes envoyées depuis Cloud Scheduler, Cloud Tasks, Eventarc, Pub/Sub, BigQuery et Workflows à un service interne, les considérations suivantes s'appliquent :
- Vous devez utiliser l'URL
run.app
par défaut de Cloud Run pour ce service, et non un domaine personnalisé. - Le job, la tâche, l'abonnement Pub/Sub, l'événement, le workflow ou la fonction distante BigQuery doivent se trouver dans le même projet ou périmètre VPC Service Controls que le service Cloud Run.
- Vous devez utiliser l'URL
Vous pouvez appeler des services internes à partir de sources de trafic situées en dehors du réseau VPC en utilisant Cloud Scheduler, Cloud Tasks, Pub/Sub, Eventarc, Workflows ou BigQuery à partir du même projet ou du même périmètre VPC Service Controls.
Définir le trafic entrant
Vous pouvez définir le trafic entrant à l'aide de l'une des méthodes acceptées dans ces onglets :
Console
Si vous configurez un nouveau service, cliquez sur Créer un service et remplissez la page initiale des paramètres du service selon vos besoins.
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.
Ligne de commande
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
Vous pouvez télécharger et afficher les configurations de service existantes à 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 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
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
:
Étape suivante
- En savoir plus sur les paramètres de sortie
- Configurer un équilibreur de charge d'application interne pour Cloud Run
- Configurer un équilibreur de charge d'application externe avec Cloud Run
- Configurer les méthodes d'authentification IAM pour accéder aux services