Private Netzwerke und Cloud Run

Auf dieser Seite werden Konfigurationsoptionen für das Einbinden von Cloud Run-Ressourcen in Ihr privates Netzwerk erläutert.

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 Google Cloud mit Perimeter Kontrollen, 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 möglicherweise über eine gemeinsam genutzte VPCmiteinander 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. In diesem Leitfaden 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 App Engine empfangen

Wenn Ihre Ziel -Cloud Run-Ressource Traffic von anderen Cloud Run-Ressourcen oder App Engine empfängt und die Einstellung für eingehenden Traffic „intern“ oder „intern und Load-Balancing“ verwendet, muss der Traffic das VPC-Netzwerk als intern betrachten.

Führen Sie die folgenden Schritte aus, um Anfragen von anderen Cloud Run-Ressourcen oder App Engine zu erhalten:

  1. Konfigurieren Sie die Quell -Ressource so, dass sie entweder ausgehenden Direct VPC-Traffic oder einen Connector verwendet.

  2. Achten Sie darauf, dass der Traffic zu Cloud Run-Routen über das VPC-Netzwerk mit einer der folgenden Optionen geleitet wird:

    • Konfigurieren Sie die Quell-Ressource so, dass der gesamte Traffic über das VPC-Netzwerk geleitet wird. Aktivieren Sie dann den privaten Google-Zugriff in dem Subnetz, das mit ausgehendem Direct VPC-Traffic oder dem Connector verknüpft ist.
    • Richten Sie Private Service Connect oder einen internen Application Load Balancer als Front für Ihre Cloud Run-Ziel ressource 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 Quell Ressource verbundenen Subnetz und konfigurieren Sie DNS so, dass run.app URLs in den Bereichen private.googleapis.com (199.36.153.8/30) oder restricted.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 und Google 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-run.app URL 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 remoteIp Attribut von HttpRequest 0.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. Bei dieser Konfiguration können Ressourcen im VPC Netzwerk über die IP-Adresse des Private Service Connect-Endpunkts auf Cloud Run-Ressourcen unter 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 den Dienst 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-Back-Enddarauf zugreifen.

Antworten werden über den gleichen Pfad zurückgegeben, auf dem die Anfrage hereinkam.

Besondere Überlegungen für freigegebene VPC

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 freigegebene VPC: Die Cloud Run-Ressource ist mit einem freigegebene VPC-Netzwerk verknüpft. Beachten Sie in diesem Szenario die folgenden Hinweise:

    • Nur Dienstüberarbeitungen oder Cloud Run-Instanzen, für die der ausgehende Direct VPC-Traffic oder ein Connector für serverlosen VPC-Zugriff konfiguriert ist, um Traffic an das freigegebene VPC-Netzwerk zu senden, akzeptieren auch Traffic aus demselben freigegebene VPC-Netzwerk.

    • Anfragen verwenden unterschiedliche Pfade je nach Trafficrichtung. Anfragen, die von Cloud Run an das freigegebene VPC-Netzwerk gesendet werden, werden über ausgehenden Direct VPC-Traffic oder den Connector weitergeleitet. Anfragen vom freigegebene 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 freigegebene 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:

Wenn Sie ein Peering für ein 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 Google Cloud Diensten wie 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 Überwachungen (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 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 bitte, dass viele Dienste die Authentifizierung bei Cloud Run unterstützen, z. B. Pub/Sub (unterstützt sowohl internal als auch Authentifizierung), API Gateway und Dialogflow CX (unterstützt sowohl internal als auch Authentifizierung). Je nach Ihren Sicherheitsanforderungen kann es ausreichend sein, dass die Cloud Run-Zielressource eine Authentifizierung anstelle von „internem“ Traffic erfordert.
  • Anfragen von Google Cloud Diensten, die zuvor nicht erwähnt wurden, werden nicht als interner Traffic erkannt und können nicht von Cloud Run Ressourcen empfangen werden, deren Ingress auf internal oder internal-and-cloud-load-balancing gesetzt ist.

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.

Erforderlich machen, dass Anfragen aus Ihrem privaten Netzwerk stammen

Wenn Sie eingehenden Traffic von externen Quellen verhindern möchten, geben Sie eine restriktive Einstellung für eingehenden Traffic an. 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 freigegebene 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 run.allowedIngress Einschränkung der Organisationsrichtlinie. 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 zu Ihrem 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 Direct VPC-Traffic oder einen Connector für Serverloser VPC-Zugriff konfigurieren. Direkter ausgehender VPC-Traffic und VPC-Connectors vergleichen. Informationen zu den Kosten finden Sie unter Preise.

Wenn ausgehender Direct VPC-Traffic oder Connectors 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 ausgehenden Direct VPC-Traffic 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:

  1. Nutzer von gemeinsam genutzten VPCs finden weitere Informationen unter Verbindung zu einem freigegebene VPC Netzwerk herstellen.
  2. Konfigurieren Sie für andere VPC-Netzwerke ausgehenden Direct VPC-Traffic oder einen Connector, um eine Verbindung zu einer VPC in Ihrem Projekt herzustellen.
    • Peering-VPC-Netzwerke:Zum Senden an eine VPC, die per Peering mit einer VPC verbunden ist, die ausgehenden VPC-Netzwerktraffic verwendet, ist keine zusätzliche Konfiguration erforderlich. 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 an andere Google 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. Weitere Informationen finden Sie unter Anfragen von anderen Cloud Run-Ressourcen oder 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:

  1. Prüfen Sie, ob Ihr VPC-Netzwerk so konfiguriert ist, dass Ihr Traffic privat, beispielsweise über einen VPN-Tunnel, an das Ziel weitergeleitet wird.
  2. Konfigurieren Sie den Dienst so, dass Anfragen an Ihr VPC-Netzwerk gesendet werden.
  3. Fordern Sie an, dass alle Anfragen gesendet werden an Ihr VPC Netzwerk.

Fordern Sie an, dass alle Anfragen an Ihr VPC-Netzwerk gesendet werden.

Um anzufordern, dass alle Anfragen von Ihrer Cloud Run-Ressource an Ihr VPC-Netzwerk gesendet werden, geben Sie die all-traffic VPC-Netzwerk-Egress-Einstellung an. Sie können die Einstellung für ausgehenden Traffic für jede Cloud Run-Ressource einstellen, 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 Ihrer Organisation erzwingen.

Das ist in folgenden Szenarien nützlich:

  1. Sie möchten eine statische ausgehende IP-Adresse für Ihre Cloud Run-Ressource einrichten.
  2. Sie möchten Firewallregeln auf den gesamten ausgehenden Traffic einer Cloud Run-Ressource anwenden.
  3. Sie möchten Anfragen an lokale Ressourcen und andere Clouds über Ihr privates Netzwerk senden.

Wenn Ihre Cloud Run-Ressource Anfragen an endgültige Ziele außerhalb Ihres VPC-Netzwerk sendet, bedeutet das Erfordernis, dass alle Anfragen durch Ihre 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 heraufskaliert, 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: Weitere Informationen finden Sie unter 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 run.allowedVPCEgress Einschränkung der Organisationsrichtlinie. 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.
  • Detaillierte Steuerung: 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.

Nächste Schritte

Weitere Informationen zur Bereitstellung von niedriger Latenz und hohem Durchsatz über einen direkten Netzwerkpfad finden Sie unter Ausgehender Direct VPC-Traffic mit einem VPC-Netzwerk.