Pour tirer pleinement parti de ce contenu, vous devez maîtriser les concepts suivants :
- Mise en réseau de base
- Réseaux de cloud privé virtuel (VPC)Google Cloud
Pour sécuriser le trafic réseau de leurs services et applications, de nombreuses organisations utilisent un réseau privé sur Google Cloud doté de contrôles de périmètre pour empêcher l'exfiltration de données. Votre réseau privé peut comporter les propriétés suivantes :
- Vous pouvez disposer d'un certain nombre de ressources, telles que des VM, sur un ou plusieurs réseaux VPC.
- Ces VM peuvent appartenir à de nombreux projets différents et être connectées avec un VPC partagé.
- Des charges de travail sur site ou dans d'autres clouds peuvent être connectées à cet environnement à l'aide de Cloud VPN ou de Cloud Interconnect.
- Vous avez peut-être activé un périmètre VPC Service Controls pour réduire le risque d'exfiltration de données.
- Vous pouvez avoir plusieurs réseaux privés de ce type : un pour chacun des différents environnements, un pour les environnements de production, un pour la préproduction et un pour le développement.
Contrairement aux VM, les ressources Cloud Run ne sont associées à aucun réseau VPC particulier par défaut. Cette page explique comment intégrer des ressources Cloud Run à votre réseau privé.
Présentation de la mise en réseau sans serveur
Pour explorer diverses configurations courantes d'entreprise pour la mise en réseau publique et privée, consultez notre présentation de la mise en réseau sans serveur.
Ce point de départ présente les scénarios de base et avancés Cloud Run suivants :
- Déployer en toute sécurité une application "Hello, World!" qui utilise un domaine personnalisé
- Développer des applications et des microservices d'entreprise
- Accéder à des bases de données et à des systèmes de fichiers de manière publique ou privée
- Contacter des fournisseurs SaaS
- Appliquer des contrôles de sécurité
Consultez la liste des modules Terraform correspondants.
Recevoir des requêtes de votre réseau privé
La réception de requêtes en provenance de votre réseau privé nécessite une configuration basée sur les conditions suivantes :
- L'origine de la requête.
- Indique si la ressource Cloud Run n'autorise que les requêtes provenant de votre réseau privé.
Par exemple, la réception de requêtes à partir de réseaux VPC peut nécessiter une configuration différente de la réception de requêtes à partir de ressources sur site ou d'autres clouds.
Recevoir des requêtes d'autres ressources Cloud Run ou d'App Engine
Lorsque votre ressource Cloud Run de destination reçoit du trafic en provenance d'autres ressources Cloud Run ou d'App Engine, et qu'elle utilise le paramètre d'entrée "interne" ou "équilibrage de charge interne", le trafic doit alors utiliser le réseau VPC pour être considéré comme interne.
Pour recevoir des requêtes d'autres ressources Cloud Run ou d'App Engine, procédez comme suit :
Configurez la ressource source pour utiliser soit la sortie VPC directe, soit un connecteur.
Assurez-vous que le trafic vers Cloud Run transite par le réseau VPC en utilisant l'une des options suivantes :
- Configurez la ressource source pour envoyer tout le trafic via le réseau VPC et activez l'accès privé à Google sur le sous-réseau associé à la sortie VPC directe ou au connecteur.
- Configurez Private Service Connect ou un équilibreur de charge d'application interne pour faire face à votre ressource Cloud Run de destination. Avec cette configuration, vous accédez à Cloud Run à l'aide d'adresses IP internes, de sorte que les requêtes sont acheminées via le réseau VPC.
- Activez l'accès privé à Google sur le sous-réseau associé à la ressource source et configurez le DNS pour résoudre les URL
run.app
dans les plagesprivate.googleapis.com
(199.36.153.8/30
) ourestricted.googleapis.com
(199.36.153.4/30
). Les requêtes adressées sur ces plages sont acheminées via le réseau VPC.
Recevoir des requêtes à partir de réseaux VPC
Par défaut, seules les ressources disposant d'adresses IP externes ou qui utilisent Cloud NAT peuvent accéder directement à Internet et aux servicesGoogle Cloud tels que Pub/Sub et Cloud Run. Pour les autres ressources, il existe plusieurs options pour activer le chemin du trafic vers Cloud Run :
- Le chemin le plus direct consiste à activer l'accès privé à Google sur les sous-réseaux hébergeant vos ressources. Lorsque l'accès privé à Google est activé, les ressources des sous-réseaux peuvent accéder à vos ressources Cloud Run via l'URL
run.app
par défaut. Le trafic depuis votre réseau VPC vers Cloud Run reste sur le réseau de Google. Dans ce cas, la plage d'adresses IP des requêtes envoyées à la ressource Cloud Run est0.0.0.0/32
. Cela signifie que dans les entrées de journal de requêtes, l'attributremoteIp
de la requête HttpRequest est0.0.0.0
. - Si vous souhaitez que votre ressource Cloud Run (avec d'autres API Google) soit accessible via une adresse IP interne dans votre réseau VPC, envisagez de créer un point de terminaison Private Service Connect et de configurer une zone DNS privée pour
run.app
. Avec cette configuration, les ressources du réseau VPC peuvent accéder aux ressources Cloud Run à l'URLrun.app
par défaut via l'adresse IP du point de terminaison Private Service Connect. - Si vous avez besoin de fonctionnalités et de contrôles d'équilibrage de charge, envisagez d'utiliser un équilibreur de charge d'application interne. Avec cette approche, les ressources du réseau VPC accèdent à vos ressources Cloud Run à l'aide de l'URL associée à l'équilibreur de charge d'application interne.
- Si vous souhaitez exposer votre service à des clients internes en tant que service géré et pouvoir contrôler les projets pouvant y accéder, vous pouvez l'héberger avec un équilibreur de charge d'application interne et le publier à l'aide de Private Service Connect. Les projets qui doivent utiliser le service peuvent y accéder à l'aide d'un point de terminaison Private Service Connect ou d'un backend Private Service Connect.
Les réponses sont renvoyées à l'aide du même chemin que celui utilisé pour la requête.
Informations spécifiques aux VPC partagés
Lorsque vous utilisez le paramètre internal
avec les contrôles d'entrée Cloud Run pour exiger que tout le trafic doit provenir de votre réseau privé, le trafic des VPC partagés n'est reconnu comme "interne" que dans les cas suivants :
La ressource Cloud Run s'exécute dans le projet hôte de VPC partagé.
Entrée VPC partagé : la ressource Cloud Run est associée à un réseau VPC partagé. Dans ce scénario, tenez compte des points suivants :
Seules les révisions de service qui ont configuré la sortie VPC directe ou qui ont configuré un connecteur d'accès au VPC sans serveur pour envoyer le trafic vers le réseau VPC partagé acceptent également le trafic provenant de ce même réseau VPC partagé.
Les requêtes utilisent différents chemins en fonction du sens du trafic. Les requêtes envoyées depuis Cloud Run vers le réseau VPC partagé sont acheminées par la sortie VPC directe ou le connecteur. Cependant, les requêtes envoyées depuis le réseau VPC partagé vers Cloud Run utilisent le chemin d'entrée standard.
Pour dissocier une ressource Cloud Run du réseau VPC partagé, redéployez-la sans accès au réseau VPC, ou en la configurant pour envoyer le trafic vers un autre réseau VPC.
Vous utilisez un équilibreur de charge d'application interne pour acheminer le trafic par proxy.
Vous avez placé l'hôte de VPC partagé et tous les projets de service dans le même périmètre VPC Service Controls. Pour configurer VPC Service Controls, consultez la page Utiliser VPC Service Controls (VPC SC).
Informations spécifiques aux autres réseaux VPC en dehors de votre projet
Lorsque vous utilisez le paramètre internal
avec les contrôles d'entrée Cloud Run pour vous assurer que tout le trafic doit provenir de votre réseau privé, le trafic provenant d'autres réseaux VPC en dehors de votre projet n'est pas reconnu comme "interne", sauf dans les cas suivants :
- VPC Service Controls est configuré pour autoriser le trafic avec
run.googleapis.com
en tant que service restreint, et l'Accès privé à Google est activé pour le sous-réseau source. - Votre ressource Cloud Run est publiée en tant que service géré à l'aide de Private Service Connect (nécessite un équilibreur de charge d'application interne) et est accessible depuis l'autre réseau VPC.
L'appairage avec un réseau VPC en dehors de votre projet ne permet pas de reconnaître le trafic comme étant "interne".
Recevoir des requêtes provenant d'autres services Google Cloud
Les requêtes adressées à Cloud Run depuis des services Google Cloud tels que Pub/Sub restent dans le réseau de Google.
Vous avez configuré quelques considérations spéciales si vous avez configuré les contrôles d'entrée Cloud Run pour autoriser uniquement le trafic "interne" :
- Les requêtes provenant de BigQuery, Cloud Scheduler, Cloud Tasks, Dialogflow CX, Eventarc, Pub/Sub, des surveillances synthétiques (y compris les tests de disponibilité) et des workflows situés dans le même projet ou dans le même périmètre VPC Service Controls sont reconnues comme "internes".
- Les requêtes provenant de Cloud Run ou App Engine envoyées depuis le même projet ou le même périmètre VPC Service Controls nécessitent une configuration supplémentaire avant d'être reconnues comme "internes". Pour en savoir plus, consultez la section Recevoir des requêtes d'autres services Cloud Run ou d'App Engine.
- Si le service Google Cloud de votre choix ne parvient pas à accéder aux ressources Cloud Run dont l'entrée est définie sur
internal
, notez que de nombreux services acceptent l'authentification auprès de Cloud Run, tels que Pub/Sub (compatible avec une entrée définie surinternal
et l'authentification), API Gateway et Dialogflow CX (compatible avec une entrée définie surinternal
et l'authentification). En fonction de vos besoins en termes de sécurité, il peut s'avérer suffisant pour que la ressource Cloud Run de destination exige une authentification au lieu d'une entrée "interne". - Les requêtes des services Google Cloud non mentionnés précédemment ne sont pas reconnues comme internes et ne peuvent pas être reçues par les ressources Cloud Run dont l'entrée est définie sur
internal
ouinternal-and-cloud-load-balancing
.
Recevoir des requêtes provenant de ressources sur site ou d'autres clouds
Il existe plusieurs façons de recevoir en privé des requêtes provenant de ressources sur site et d'autres clouds.
- Configuration de base : pour que les requêtes provenant de ressources sur site ou d'autres clouds traversent votre réseau privé, configurez l'accès privé à Google pour les hôtes sur site.
- Rendez la ressource Cloud Run accessible via une adresse IP interne : pour appeler des ressources Cloud Run à l'aide d'une adresse IP interne, créez un point de terminaison Private Service Connect pour accéder aux API Google, configurez une zone DNS privée pour
run.app
et configurez votre réseau sur site pour accéder au point de terminaison. Avec cette configuration, les hôtes sur site peuvent accéder aux ressources Cloud Run à l'URLrun.app
par défaut via l'adresse IP du point de terminaison Private Service Connect. - Fonctionnalités d'équilibrage de charge : si vous avez besoin de fonctionnalités et de contrôles d'équilibrage de charge, utilisez un équilibreur de charge d'application interne. Pour savoir comment accéder à un équilibreur de charge d'application interne à partir de réseaux sur site, consultez Utiliser Cloud VPN et Cloud Interconnect.
- Au-delà des limites administratives : si vous souhaitez exposer votre service à des clients internes en tant que service géré et pouvoir contrôler les projets pouvant y accéder, vous pouvez publier le service à l'aide de Private Service Connect (nécessite un équilibreur de charge d'application interne). Pour accéder au service à partir d'hôtes sur site, créez un point de terminaison Private Service Connect et configurez le réseau sur site pour accéder au point de terminaison. Pour en savoir plus, consultez Accéder aux points de terminaison à partir de réseaux hybrides. Vous pouvez également utiliser un backend Private Service Connect avec un équilibreur de charge. Pour savoir comment accéder aux équilibreurs de charge à partir de réseaux sur site, consultez la documentation de l'équilibreur de charge que vous utilisez. Par exemple, pour les équilibreurs de charge d'application internes, consultez Utiliser Cloud VPN et Cloud Interconnect.
Exiger que les requêtes proviennent de votre réseau privé
Pour empêcher le trafic entrant (entrée) provenant de sources externes, vous spécifiez un paramètre d'entrée restrictif.
Le paramètre d'entrée le plus restrictif est internal
. Lorsque l'entrée est définie sur internal
, votre service n'autorise que les requêtes provenant de votre projet, des réseaux VPC partagés auxquels votre projet est associé et de votre périmètre VPC Service Controls. Ce paramètre présente certaines limites en fonction de l'origine des requêtes. Pour en savoir plus sur ces limites et sur la façon de les appréhender, consultez la section Recevoir des requêtes provenant de votre réseau privé.
Vous pouvez spécifier le paramètre d'entrée pour chaque ressource Cloud Run ou appliquer le paramètre d'entrée de votre choix pour toutes les ressources Cloud Run de votre organisation.
- Pour spécifier le paramètre d'entrée pour chaque ressource Cloud Run : consultez la section Définir l'entrée.
- Pour appliquer un paramètre d'entrée spécifique à toutes les ressources Cloud Run de votre projet, dossier ou organisation, configurez la contrainte de règle d'administration
run.allowedIngress
. Pour en savoir plus, consultez la page Personnaliser les règles pour les contraintes de liste.
Envoyer des requêtes à votre réseau privé
Si votre ressource Cloud Run doit accéder à une ressource de votre réseau privé, vous pouvez configurer un chemin d'accès pour les requêtes privées adressées à votre réseau. La configuration dépend de la destination finale de la requête.
Envoyer des requêtes à votre réseau VPC
Pour envoyer des requêtes à un réseau VPC, vous devez configurer la sortie VPC directe ou un connecteur d'accès au VPC sans serveur. Comparer la sortie VPC directe et les connecteurs VPC Consultez les tarifs pour comprendre les coûts.
Lorsque la sortie VPC directe ou les connecteurs sont configurés, les considérations suivantes s'appliquent par défaut :
Toutes les requêtes DNS sont envoyées au serveur DNS configuré pour le réseau VPC associé à votre configuration de sortie réseau VPC.
Les requêtes adressées à des adresses IP internes sont acheminées vers le réseau VPC à l'aide de la sortie VPC directe ou d'un connecteur. Les requêtes vers des destinations publiques continuent d'être acheminées directement vers Internet, sauf si votre paramètre de sortie est configuré d'une autre façon.
Avec les requêtes acheminées à l'aide de la sortie VPC directe ou des connecteurs, les réponses sont renvoyées à l'aide du chemin emprunté par la requête. Les requêtes depuis votre réseau VPC vers Cloud Run sont activées à l'aide d'autres technologies et ne sont pas acheminées via la sortie VPC directe ni les connecteurs. Les réponses à ces requêtes sont renvoyées via le même chemin. Pour en savoir plus sur l'envoi de requêtes depuis votre réseau VPC vers Cloud Run, consultez Recevoir des requêtes provenant de réseaux VPC.
Envoyer des requêtes à un réseau VPC en dehors de votre projet
Pour envoyer des requêtes à un réseau VPC en dehors de votre projet, procédez comme suit :
- Pour les utilisateurs de VPC partagé, consultez Se connecter à un réseau VPC partagé.
- Pour les autres réseaux VPC, configurez la sortie VPC directe ou un connecteur pour vous connecter à un VPC dans votre projet.
- Réseaux VPC appairés : pour envoyer des requêtes à un VPC qui est appairé à un VPC utilisant la sortie réseau VPC, aucune configuration supplémentaire n'est requise. Toutefois, les VM du sous-réseau hébergeant la sortie du réseau VPC doivent pouvoir atteindre le réseau VPC cible.
- Autres réseaux VPC : pour les réseaux VPC en dehors de votre projet et qui ne font pas partie du même environnement VPC partagé ou ne sont pas appairés à votre réseau VPC de projet, configurez Private Service Connect après avoir configuré la sortie réseau VPC.
Envoyer des requêtes à d'autres ressources Cloud Run et services Google Cloud
Les requêtes provenant d'une ressource Cloud Run à destination d'une autre ressource Cloud Run ou d'autres servicesGoogle Cloud restent dans le réseau interne de Google et sont soumises à VPC Service Controls.
Pour les requêtes adressées aux ressources Cloud Run avec des paramètres d'entrée restrictifs, une configuration supplémentaire est requise. Consultez la section Recevoir des requêtes d'autres ressources Cloud Run ou d'App Engine.
Envoyer des requêtes à des ressources sur site ou situées dans d'autres clouds
Pour envoyer des requêtes à des ressources sur site ou situées dans d'autres clouds via votre réseau privé, procédez comme suit :
- Assurez-vous que votre réseau VPC est configuré pour acheminer de manière privée votre trafic vers la destination, par exemple via un tunnel VPN.
- Configurez votre service pour envoyer des requêtes à votre réseau VPC.
- Exigez que toutes les requêtes soient transmises à votre réseau VPC.
Exiger que toutes les requêtes soient dirigées vers votre réseau VPC
Pour exiger que toutes les requêtes de votre ressource Cloud Run soient dirigées vers votre réseau VPC, spécifiez le paramètre de sortie de réseau VPC all-traffic
.
Vous pouvez spécifier le paramètre de sortie pour chaque ressource Cloud Run utilisant la sortie réseau VPC, ou appliquer le paramètre de sortie préféré à toutes les ressources Cloud Run de votre projet, dossier ou organisation.
Cela s'avère utile dans les situations suivantes :
- Vous souhaitez configurer une adresse IP sortante statique pour votre ressource Cloud Run.
- Vous souhaitez appliquer des règles de pare-feu pour toute sortie d'une ressource Cloud Run.
- Vous souhaitez envoyer des requêtes à des ressources sur site ou dans d'autres clouds via votre réseau privé.
Si votre ressource Cloud Run envoie des requêtes à des destinations finales en dehors de votre réseau VPC, le fait d'exiger l'envoi de toutes les requêtes à votre réseau VPC augmente l'utilisation de la bande passante sur les connecteurs d'accès au VPC sans serveur configurés et peut augmenter les coûts en conséquence. Les connecteurs évoluent automatiquement lorsque le trafic augmente, mais n'effectuent pas de scaling vertical en cas de diminution du trafic. Consultez les tarifs pour comprendre les coûts.
- Pour spécifier le paramètre de sortie pour des ressources Cloud Run individuelles, consultez Contrôler le trafic sortant d'un service.
- Pour appliquer un paramètre de sortie spécifique à toutes les ressources Cloud Run de votre projet, dossier ou organisation, configurez la contrainte de règle d'administration
run.allowedVPCEgress
. Pour en savoir plus, consultez la page Personnaliser les règles pour les contraintes de liste.
Paramètres supplémentaires
- Contrôles de périmètre : pour réduire le risque d'exfiltration de données d'un groupe de ressources, placez-les dans un périmètre contextuel à l'aide de VPC Service Controls.
- Pour comprendre VPC Service Controls, consultez la page Présentation de VPC Service Controls.
- Pour commencer, consultez le guide Cloud Run Utiliser VPC Service Controls (VPC SC).
- Pour comprendre les coûts, consultez la section Tarifs.
- Contrôles précis : pour contrôler l'accès au trafic depuis une ressource spécifique de votre réseau privé, telle qu'une ressource Cloud Run ou une machine virtuelle Compute Engine, utilisez des comptes de service pour contrôler les autorisations et l'authentification.
- Pour comprendre les comptes de service, consultez la page Qu'est-ce que les comptes de service ?
- Pour commencer, consultez les guides d'authentification de Cloud Run.
Étapes suivantes
Si vous utilisez Terraform, consultez cet exemple de code Terraform permettant de configurer des ressources Cloud Run dans un réseau privé.