Damit Sie diese Inhalte optimal nutzen können, sollten Sie mit den folgenden Konzepten vertraut sein:
- Einfaches Netzwerk
- Google Cloud VPC-Netzwerke (Virtual Private Cloud)
Zum Schutz des Netzwerkverkehrs für ihre Dienste und Anwendungen verwenden viele Unternehmen ein privates Netzwerk in Google Cloud mit Perimeterkontrollen, um Daten-Exfiltrationen zu verhindern. Ihr privates Netzwerk hat möglicherweise folgende Attribute:
- Sie können eine Reihe an Ressourcen haben, z. B. VMs, die in einem oder mehreren VPC-Netzwerken gespeichert sind.
- Diese VMs gehören möglicherweise zu vielen verschiedenen Projekten und sind über eine freigegebene VPC miteinander verbunden.
- Möglicherweise haben Sie lokale Arbeitslasten oder Arbeitslasten in anderen Clouds, die über Cloud VPN oder Cloud Interconnect mit dieser Umgebung verbunden sind.
- Vielleicht haben Sie einen VPC Service Controls-Perimeter aktiviert, um das Risiko einer Daten-Exfiltration zu verringern.
- Möglicherweise haben Sie mehrere solche private Netzwerke, z. B. eines für jede der verschiedenen Umgebungen, eins für die Produktion, eines für das Staging und eines für die Entwicklung.
Im Gegensatz zu VMs sind Cloud Run-Ressourcen nicht mit einem bestimmten VPC-Netzwerk verknüpft. Auf dieser Seite wird erläutert, wie Sie Cloud Run-Ressourcen in Ihr privates Netzwerk einbinden.
Berichte zu serverlosen Netzwerken
Informationen zu einer Reihe gängiger Unternehmenskonfigurationen für öffentliche und private Netzwerke finden Sie in unserer Beschreibung zu serverlosen Netzwerken.
Hier werden die folgenden Cloud Run-Szenarien von einfach bis fortgeschritten vorgestellt:
- "Hello, World!"-Anwendung, die eine benutzerdefinierte Domain verwendet, sicher bereitstellen
- Unternehmensanwendungen und Mikrodienste entwickeln
- Auf Datenbanken und Dateisysteme öffentlich oder privat zugreifen
- Verbindung zu SaaS-Anbietern herstellen
- Sicherheitskontrollen anwenden
Liste der entsprechenden Terraform-Module
Anfragen aus Ihrem privaten Netzwerk empfangen
Zum Empfangen von Anfragen von Ihrem privaten Netzwerk ist eine Konfiguration erforderlich, die auf den folgenden Bedingungen basiert:
- Woher die Anfrage kommt.
- Ob die Cloud Run-Ressource nur Anfragen von Ihrem privaten Netzwerk zulässt.
Beispielsweise kann das Empfangen von Anfragen aus VPC-Netzwerken eine andere Konfiguration erfordern als das Empfangen von Anfragen von lokalen Ressourcen und anderen Clouds.
Anfragen von anderen Cloud Run-Ressourcen oder der App Engine erhalten
Wenn Ihre Ziel-Cloud Run-Ressource Traffic von anderen Cloud Run-Ressourcen oder der App Engine empfängt und die Eingangseinstellung „intern“ oder „intern und Load Balancing“ verwendet, dann muss der Traffic das VPC-Netzwerk als intern betrachten.
Führen Sie die folgenden Schritte aus, um Anfragen von anderen Cloud Run-Ressourcen oder der App Engine zu erhalten:
Konfigurieren Sie die Quellressource so, dass sie entweder ausgehenden VPC-Traffic oder einen Connector verwendet.
Achten Sie darauf, dass der Traffic zu Cloud Run-Routen über das VPC-Netzwerk mit einer der folgenden Optionen geleitet wird:
- Konfigurieren Sie die Quellressource so, dass der gesamte Traffic über das VPC-Netzwerk gesendet wird. Aktivieren Sie dann den privaten Google-Zugriff in dem Subnetz, das mit Direct verknüpft ist Ausgehender VPC-Traffic oder der Connector.
- Richten Sie Private Service Connect oder einen internen Anwendungs-Load Balancer als Front für Ihre Cloud Run-Zielressource ein. Bei dieser Konfiguration greifen Sie über interne IP-Adressen auf Cloud Run zu. Daher werden Anfragen über das VPC-Netzwerk weitergeleitet.
- Aktivieren Sie den privaten Google-Zugriff in dem mit der Quellressource verbundenen Subnetz und konfigurieren Sie DNS so, dass
run.app
-URLs in den Bereichenprivate.googleapis.com
(199.36.153.8/30
) oderrestricted.googleapis.com
(199.36.153.4/30
) aufgelöst werden. Anfragen an diese Bereiche werden über das VPC-Netzwerk weitergeleitet.
Anfragen aus VPC-Netzwerken empfangen
Standardmäßig können nur Ressourcen, die externe IP-Adressen haben oder Cloud NAT verwenden, direkt auf das Internet undGoogle Cloud Dienste wie Pub/Sub und Cloud Run zugreifen. Für andere Ressourcen gibt es verschiedene Möglichkeiten, den Trafficpfad zu Cloud Run zu aktivieren:
- Die direkteste Methode ist die Aktivierung des privaten Google-Zugriffs in den Subnetzen, in denen Ihre Ressourcen gehostet werden. Wenn der private Google-Zugriff aktiviert ist, können Ressourcen in den Subnetzen über die Standard-URL
run.app
auf Ihre Cloud Run-Ressourcen zugreifen. Traffic von Ihrem VPC-Netzwerk zu Cloud Run bleibt im Google-Netzwerk. In diesem Fall ist der IP-Bereich für Anfragen, die an die Cloud Run-Ressource gesendet werden,0.0.0.0/32
. Das bedeutet, dass in Anfragelogeinträgen das AttributremoteIp
von HttpRequest0.0.0.0
ist. - Wenn Sie möchten, dass Ihre Cloud Run-Ressource (zusammen mit anderen Google APIs) über eine interne IP-Adresse in Ihrem VPC-Netzwerk zugänglich ist, sollten Sie einen Private Service Connect-Endpunkt erstellen und eine private DNS-Zone für
run.app
konfigurieren. Mit dieser Konfiguration können Ressourcen im VPC-Netzwerk über die IP-Adresse des Private Service Connect-Endpunkts auf Cloud Run-Ressourcen an der Standard-run.app
-URL zugreifen. - Wenn Sie Load-Balancing-Funktionen und -Steuerelemente benötigen, können Sie einen internen Application Load Balancer verwenden. Bei diesem Ansatz greifen Ressourcen im VPC-Netzwerk über die URL, die dem internen Application Load Balancer zugeordnet ist, auf Ihre Cloud Run-Ressourcen zu.
- Wenn Sie Ihren Dienst als verwalteten Dienst für interne Clients offenlegen und steuern möchten, welche Projekte darauf zugreifen können, können Sie ihn mit einem internen Application Load Balancer hosten und mit Private Service Connect veröffentlichen. Projekte, die den Dienst nutzen müssen, können über einen Private Service Connect-Endpunkt oder ein Private Service Connect-Backend darauf zugreifen.
Antworten werden über den gleichen Pfad zurückgegeben, auf dem die Anfrage hereinkam.
Besondere Überlegungen für freigegebene VPCs
Wenn Sie die Einstellung internal
mit den Steuerelementen für eingehenden Traffic von Cloud Run verwenden, um zu erzwingen, dass der gesamte Traffic aus Ihrem privaten Netzwerk kommen muss, wird der Traffic der freigegebene VPC nur in folgenden Situationen als „intern“ erkannt:
Die Cloud Run-Ressource wird im freigegebene VPC-Hostprojekt ausgeführt.
Eingehender Traffic von freigegebener VPC: Die Cloud Run-Ressource ist mit einem freigegebene VPC-Netzwerk verknüpft. Beachten Sie in diesem Szenario die folgenden Hinweise:
Nur Dienstüberarbeitungen, für die der direkte VPC-Ausgang oder ein Connector für serverlosen VPC-Zugriff konfiguriert ist, um Traffic an das freigegebene VPC-Netzwerk zu senden, akzeptieren auch Traffic aus demselben freigegebenen VPC-Netzwerk.
Anfragen verwenden unterschiedliche Pfade je nach Trafficrichtung. Anfragen, die von Cloud Run an das freigegebene VPC-Netzwerk gesendet werden, werden über ausgehenden direkten VPC-Traffic oder den Connector weitergeleitet. Anfragen vom freigegebenen VPC-Netzwerk an Cloud Run verwenden jedoch den Standardpfad für eingehenden Traffic.
Wenn Sie eine Cloud Run-Ressource vom freigegebene VPC-Netzwerk trennen möchten, stellen Sie sie noch einmal ohne VPC-Netzwerkzugriff bereit oder mit der Ressource, die zum Senden von Traffic an ein anderes VPC-Netzwerk konfiguriert ist.
Sie verwenden einen internen Application Load Balancer, um Traffic weiterzuleiten.
Sie haben den freigegebenen VPC-Host und alle Dienstprojekte im selben VPC Service Controls-Perimeter platziert. Informationen zum Einrichten von VPC Service Controls finden Sie unter VPC Service Controls (VPC SC) verwenden.
Besondere Überlegungen zu anderen VPC-Netzwerken außerhalb Ihres Projekts
Wenn Sie die Einstellung internal
mit den Steuerelementen für eingehenden Traffic von Cloud Run verwenden, um zu erzwingen, dass der gesamte Traffic aus Ihrem privaten Netzwerk kommen muss, wird Traffic von anderen VPC-Netzwerken außerhalb Ihres Projekts nur in folgenden Situationen als „intern“ erkannt:
- VPC Service Controls ist so konfiguriert, dass der Traffic mit
run.googleapis.com
als eingeschränkter Dienst zugelassen wird, und für das Quellsubnetz ist der private Google-Zugriff aktiviert. - Ihre Cloud Run-Ressource wird über Private Service Connect (erfordert einen internen Application Load Balancer) als verwalteter Dienst veröffentlicht, auf den vom anderen VPC-Netzwerk aus zugegriffen wird.
Wenn Sie ein Peering mit einem VPC-Netzwerk außerhalb Ihres Projekts ausführen, wird Traffic nicht als „intern“ erkannt.
Anfragen von anderen Google Cloud diensten empfangen
Anfragen an Cloud Run von Diensten wie Google Cloud Pub/Sub verbleiben im Google-Netzwerk.
Wenn Sie die Cloud Run-Steuerelemente für eingehenden Traffic so konfiguriert haben, dass nur "interner" Traffic zugelassen wird, sind einige besondere Überlegungen erforderlich:
- Anfragen von BigQuery, Cloud Scheduler, Cloud Tasks, Dialogflow CX, Eventarc, Pub/Sub, synthetischen Monitoren (einschließlich Verfügbarkeitsdiagnosen) und Workflows im selben Projekt oder VPC Service Controls-Perimeter werden als „intern“ erkannt.
- Anfragen von Cloud Run oder App Engine, die aus demselben Projekt oder VPC Service Controls-Perimeter gesendet werden, erfordern alle eine zusätzliche Konfiguration, bevor sie als „intern“ erkannt werden. Weitere Informationen finden Sie im Abschnitt Anfragen von anderen Cloud Run-Diensten oder der App Engine empfangen.
- Wenn der ausgewählte Google Cloud Dienst nicht auf Cloud Run-Ressourcen zugreifen kann, für die eingehender Traffic auf
internal
festgelegt ist, beachten Sie, dass viele Dienste die Authentifizierung bei Cloud Run unterstützen, z. B. Pub/Sub (unterstützt sowohlinternal
als auch Authentifizierung), API Gateway und Dialogflow CX (unterstützt sowohlinternal
als auch Authentifizierung). Je nach Ihren Sicherheitsanforderungen kann es ausreichend sein, dass die Ziel-Cloud Run-Ressource eine Authentifizierung anstelle von „internem“ Traffic erfordert. - Anfragen von Diensten, die oben nicht erwähnt wurden, werden nicht als intern erkannt und können nicht von Cloud Run-Ressourcen empfangen werden, deren Ingress auf
internal
oderinternal-and-cloud-load-balancing
gesetzt ist. Google Cloud
Anfragen von lokalen Ressourcen oder aus anderen Clouds empfangen
Es gibt mehrere Möglichkeiten, Anfragen von lokalen Ressourcen und aus anderen Clouds privat zu empfangen.
- Grundlegende Konfiguration: Damit Anfragen von lokalen Ressourcen und anderen Clouds Ihr privates Netzwerk durchlaufen, müssen Sie den privaten Google-Zugriff für lokale Hosts konfigurieren.
- Cloud Run-Ressource über eine interne IP-Adresse zugänglich machen: Wenn Sie Cloud Run-Ressourcen mit einer internen IP-Adresse aufrufen möchten, erstellen Sie einen Private Service Connect-Endpunkt für den Zugriff auf Google APIs, konfigurieren Sie eine private DNS-Zone für
run.app
und konfigurieren Sie Ihr lokales Netzwerk für den Zugriff auf den Endpunkt. Bei dieser Konfiguration können lokale Hosts über die IP-Adresse des Private Service Connect-Endpunkts auf Cloud Run-Ressourcen unter der Standard-URLrun.app
zugreifen. - Mit Load Balancing-Funktionen: Wenn Sie Load Balancing-Funktionen und -Steuerelemente benötigen, verwenden Sie einen internen Application Load Balancer. Informationen zum Zugriff auf interne Application Load Balancer von lokalen Netzwerken aus finden Sie unter Cloud VPN und Cloud Interconnect verwenden.
- Über administrative Grenzen hinweg: Wenn Sie Ihren Dienst internen Clients als verwalteten Dienst anbieten und in der Lage sein möchten, zu steuern, welche Projekte darauf zugreifen können, können Sie ihn mit Private Service Connect veröffentlichen (erfordert einen internen Application Load Balancer). Wenn Sie von lokalen Hosts auf den Dienst zugreifen möchten, erstellen Sie einen Private Service Connect-Endpunkt und konfigurieren Sie das lokale Netzwerk für den Zugriff auf den Endpunkt. Weitere Informationen finden Sie unter Zugriff auf Endpunkte über Hybridnetzwerke. Alternativ können Sie ein Private Service Connect-Backend mit einem Load Balancer verwenden. Informationen zum Zugriff auf Load Balancer aus lokalen Netzwerken finden Sie in der Dokumentation des verwendeten Load Balancers. Informationen zu internen Application Load Balancern finden Sie beispielsweise unter Cloud VPN und Cloud Interconnect verwenden.
Erforderlich machen, dass Anfragen aus Ihrem privaten Netzwerk stammen
Wenn Sie eingehenden Traffic von externen Quellen verhindern möchten, können Sie eine restriktive Einstellung für eingehenden Traffic angeben.
Die restriktivste Einstellung für eingehenden Traffic ist internal
. Wenn eingehender Traffic auf internal
gesetzt ist, lässt Ihr Dienst nur Anfragen von Ihrem Projekt, von freigegebenen VPC-Netzwerken, mit denen Ihr Projekt verbunden ist, und von Ihrem VPC Service Controls-Perimeter zu. Je nachdem, woher die Anfragen stammen, gibt es einige Einschränkungen mit dieser Einstellung. Informationen zu diesen Einschränkungen und wie Sie diese umgehen können, finden Sie im Abschnitt Anfragen aus Ihrem privaten Netzwerk empfangen.
Sie können die Einstellung für eingehenden Traffic für jede Cloud Run-Ressource angeben oder die Verwendung Ihrer bevorzugten Einstellung für eingehenden Traffic für alle Cloud Run-Ressourcen in Ihrer Organisation erzwingen.
- So legen Sie die Einstellung für eingehenden Traffic für die einzelnen Cloud Run-Ressourcen fest: Weitere Informationen finden Sie unter Ingress festlegen.
- So erzwingen Sie eine bestimmte Einstellung für eingehenden Traffic für alle Cloud Run-Ressourcen in Ihrem Projekt, Ordner oder Ihrer Organisation: Konfigurieren Sie die Organisationsrichtlinien-Einschränkung
run.allowedIngress
. Weitere Informationen finden Sie unter Richtlinien für Listeneinschränkungen anpassen.
Anfragen an Ihr privates Netzwerk senden
Wenn Ihre Cloud Run-Ressource auf eine Ressource in Ihrem privaten Netzwerk zugreifen muss, konfigurieren Sie einen Pfad für private Anfragen an Ihr Netzwerk. Die Konfiguration hängt vom endgültigen Ziel der Anfrage ab.
Anfragen an Ihr VPC-Netzwerk senden
Zum Senden von Anfragen an ein VPC-Netzwerk müssen Sie ausgehenden VPC-Traffic oder einen Connector für serverlosen VPC-Zugriff konfigurieren. Direkter ausgehender VPC-Traffic und VPC-Connectors vergleichen Informationen zu den Kosten finden Sie unter Preise.
Wenn Connectors für ausgehenden Direct VPC-Traffic konfiguriert sind, gelten standardmäßig die folgenden Überlegungen:
Alle DNS-Abfragen werden an den DNS-Server gesendet, der für das VPC-Netzwerk konfiguriert ist, das mit der Einrichtung des ausgehenden VPC-Netzwerktraffics verknüpft ist.
Anfragen an interne IP-Adressen werden mithilfe von Direct VPC-Ausgang oder einem Connector an das VPC-Netzwerk weitergeleitet. Anfragen an öffentliche Ziele werden weiterhin direkt an das Internet weitergeleitet, sofern Ihre Einstellung für ausgehenden Traffic nicht anders konfiguriert ist.
Bei Anfragen, die über direkten VPC-Ausgang oder Connectors weitergeleitet werden, werden Antworten über den Pfad zurückgegeben, den die Anfrage durchlaufen hat. Anfragen von Ihrem VPC-Netzwerk an Cloud Run werden mithilfe anderer Technologien aktiviert und nicht über ausgehenden Direct VPC-Traffic oder Connectors weitergeleitet. Antworten auf diese Anfragen werden über denselben Pfad zurückgegeben. Weitere Informationen zum Senden von Anfragen von Ihrem VPC-Netzwerk an Cloud Run finden Sie unter Anfragen aus VPC-Netzwerken empfangen.
Anfragen an ein VPC-Netzwerk außerhalb Ihres Projekts senden
So senden Sie Anfragen an ein VPC-Netzwerk außerhalb Ihres Projekts:
- Nutzer von freigegebenen VPCs finden weitere Informationen unter Verbindung zu einem freigegebene VPC herstellen.
- Konfigurieren Sie für andere VPC-Netzwerke den Direct VPC-Ausgang oder einen Connector, um eine Verbindung zu einer VPC in Ihrem Projekt herzustellen.
- VPC-Peering-Netzwerke: Zum Senden an eine VPC, die per Peering mit einem ausgehenden VPC-Netzwerktraffics verbunden ist, wird keine zusätzliche Konfiguration benötigt. Die VMs im Subnetz, das den ausgehenden VPC-Netzwerktraffic hostet, müssen jedoch das Ziel-VPC-Netzwerk erreichen können.
- Andere VPC-Netzwerke: Für VPC-Netzwerke außerhalb Ihres Projekts, die nicht Teil derselben freigegebene VPC-Umgebung oder mit Ihrem Projekt-VPC-Netzwerk verbunden sind, konfigurieren Sie Private Service Connect nach dem Einrichten des ausgehenden VPC-Netzwerktraffics.
Anfragen an andere Cloud Run-Ressourcen und Google Cloud Dienste senden
Anfragen von einer Cloud Run-Ressource an eine andere oder andereGoogle Cloud -Dienste verbleiben im internen Google-Netzwerk und unterliegen den VPC Service Controls.
Bei Anfragen an Cloud Run-Ressourcen mit restriktiven Einstellungen für eingehenden Traffic ist eine zusätzliche Konfiguration erforderlich. Siehe Anfragen von anderen Cloud Run-Ressourcen oder der App Engine empfangen.
Anfragen an lokale Ressourcen und andere Clouds senden
So senden Sie Anfragen an lokale Ressourcen und andere Clouds über Ihr privates Netzwerk:
- Prüfen Sie, ob Ihr VPC-Netzwerk so konfiguriert ist, dass Ihr Traffic privat, beispielsweise über einen VPN-Tunnel, an das Ziel weitergeleitet wird.
- Konfigurieren Sie den Dienst so, dass Anfragen an Ihr VPC-Netzwerk gesendet werden.
- Fordern Sie an, dass alle Anfragen an Ihr VPC-Netzwerk gesendet werden.
Fordern Sie an, dass alle Anfragen an Ihr VPC-Netzwerk gesendet werden.
Wenn alle Anfragen von Ihrer Cloud Run-Ressource an Ihr VPC-Netzwerk gesendet werden sollen, geben Sie die Egress-Einstellung für das all-traffic
VPC-Netzwerk an.
Sie können die Einstellung für ausgehenden Traffic für jede Cloud Run-Ressource festlegen, die den ausgehenden VPC-Netzwerktraffic verwendet, oder Sie können die Verwendung Ihrer bevorzugten Egress-Einstellung für alle Cloud Run-Ressourcen in Ihrem Projekt, Ordner oder Unternehmen erzwingen.
Das ist in folgenden Szenarien nützlich:
- Sie möchten eine statische ausgehende IP-Adresse für Ihre Cloud Run-Ressource einrichten.
- Sie möchten Firewallregeln auf den gesamten ausgehenden Traffic einer Cloud Run-Ressource anwenden.
- Wenn Sie Anfragen an lokale Ressourcen und andere Clouds über Ihr privates Netzwerk senden wollen.
Wenn Ihre Cloud Run-Ressource Anfragen an endgültige Ziele außerhalb Ihres VPC-Netzwerk sendet, bedeutet das Erfordernis, dass alle Anfragen durch Ihr VPC-Netzwerk gesendet werden müssen, dass die Bandbreitennutzung für konfigurierte Connectors für Serverloser VPC-Zugriff steigt und die Kosten entsprechend ansteigen können. Connectors werden automatisch skaliert, wenn der Traffic zunimmt, aber nicht herunterskaliert, wenn der Traffic abnimmt. Informationen zu den Kosten finden Sie unter Preise.
- So legen Sie die Einstellung für ausgehenden Traffic für einzelne Cloud Run-Ressourcen fest: Siehe Ausgehenden Diensttraffic steuern.
- So erzwingen Sie eine bestimmte Einstellung für ausgehenden Traffic für alle Cloud Run-Ressourcen in Ihrem Projekt, Ordner oder Ihrer Organisation: Konfigurieren Sie die Organisationsrichtlinien-Einschränkung
run.allowedVPCEgress
. Weitere Informationen finden Sie unter Richtlinien für Listeneinschränkungen anpassen.
Weitere Steuerelemente
- Perimeterkontrollen: Um das Risiko der Daten-Exfiltration in einer Ressourcengruppe zu reduzieren, platzieren Sie diese mit VPC Service Controls in einem kontextsensitiven Perimeter.
- Informationen zu VPC Service Controls finden Sie unter VPC Service Controls.
- Weitere Informationen finden Sie in der Cloud Run-Anleitung VPC Service Controls (VPC SC) verwenden.
- Informationen zu den Kosten finden Sie unter Preise.
- Detaillierte Einstellungen: Verwenden Sie Dienstkonten zur Steuerung von Berechtigungen und Authentifizierungen, um den Zugriff auf Traffic von einer bestimmten Ressource in Ihrem privaten Netzwerk zu steuern, z. B. von einer bestimmten Cloud Run-Ressource oder einer virtuellen Compute Engine-Maschine aus.
- Informationen zu Dienstkonten finden Sie unter Was sind Dienstkonten?
- Sehen Sie sich als Erstes die Authentifizierungsanleitungen für Cloud Run an.
Nächste Schritte
Wenn Sie Terraform verwenden, steht Terraform-Beispielcode zum Einrichten von Cloud Run-Ressourcen in einem privaten Netzwerk zur Verfügung.