Eingehenden Traffic für Cloud Run einschränken

Auf dieser Seite wird beschrieben, wie Sie den eingehenden Zugriff auf den Cloud Run-Dienst mithilfe von Einstellungen für eingehenden Traffic steuern. Auf Netzwerkebene kann standardmäßig jede Ressource im Internet Ihren Cloud Run-Dienst über die URL run.app oder eine in Cloud Run eingerichtete benutzerdefinierte Domain erreichen. Sie können diese Standardeinstellung ändern, indem Sie eine andere Einstellung für eingehenden Traffic festlegen.

Sie können dieses Feature mit IAM-Authentifizierungsmethoden verwenden, um den Zugriff auf einen Dienst zu verwalten.

Verfügbare Einstellungen für eingehenden Traffic

Diese Einstellungen sind verfügbar:

Einstellung Beschreibung
Alle Macht Ihren Dienst über das Internet erreichbar. Die IAM-Aufrufer-Berechtigung wird weiterhin erzwungen.
Intern Nur Anfragen, die aus einem VPC-Netzwerk, Pub/Sub oder Eventarc im selben Projekt oder denselben VPC Service Controls-Perimetern stammen, dürfen Ihren Dienst erreichen. Die IAM-Aufrufer-Berechtigung wird weiterhin erzwungen.

Eine Beschreibung dazu, was als intern betrachtet wird oder auf interne Dienste zugreifen kann, finden Sie unter Auf interne Dienste zugreifen.

Mehrinstanzenfähigkeit wird nicht unterstützt, also mehrere Vertrauensdomains in einem Projekt.
internes und Cloud-Load-Balancing Akzeptiert nur interne Anfragen und Anfragen, die über HTTP(S)-Load-Balancing kommen. Die IAM-Aufrufer-Berechtigung wird noch erzwungen.

Wenn Sie Identity-Aware Proxy, Google Cloud Armor oder Cloud CDN nutzen, verhindert dies, dass dies durch den Zugriff auf die Standard-URL umgangen wird.

Auf interne Dienste zugreifen

Dabei gilt Folgendes:

  • Wenn Sie auf interne Dienste zugreifen, rufen Sie sie so auf, wie Sie es auch mit ihren öffentlichen URLs tun würden, entweder die Standard-URL run.app oder eine in Cloud Run eingerichtete benutzerdefinierte Domain.

  • Für Anfragen von Compute Engine-VM-Instanzen oder anderen Ressourcen, die in einem VPC-Netzwerk im selben Projekt ausgeführt werden, ist keine weitere Einrichtung erforderlich.

  • Für Anfragen von anderen Cloud Run-Diensten oder von Cloud Functions-Funktionen im selben Projekt verbinden Sie den Dienst oder die Funktion mit einem VPC-Netzwerk und leiten den gesamten ausgehenden Traffic durch den Connector weiter. Dies wird unter Verbindung zu Ein VPC-Netzwerk bechrieben. Beachten Sie, dass die IAM-Aufrufer-Berechtigung weiterhin erzwungen wird.

  • Anfragen von Ressourcen innerhalb von VPC-Netzwerken im selben Projekt werden als intern klassifiziert, auch wenn die Ressource, von der sie stammen, eine öffentliche IP-Adresse hat.

  • Anfragen von Ressourcen innerhalb eines VPC Service Controls-Perimeters, dessen Traffic aus einem VPC-Netzwerk stammt, können einen internen Dienst aufrufen, wenn die Cloud Run Admin API als eingeschränkter Dienst im Dienstperimeter konfiguriert ist.

  • Ressourcen in freigegebenen VPC-Netzwerken können interne Dienste nur aufrufen, wenn sich die freigegebenen VPC-Ressourcen und der interne Dienst im selben VPC-SC-Perimeter befinden und die Cloud Run Admin API als eingeschränkter Dienst im Dienstperimeter konfiguriert ist.

  • Anfragen von lokalen Ressourcen, die über Cloud VPN mit dem VPC-Netzwerk verbunden sind, gelten als internal.

  • Bei Anfragen von Pub/Sub und Eventarc an einen internen Dienst gelten die folgenden Hinweise:

    • Wenn Sie Einstellungen für eingehenden Traffic bei einem Cloud Run-Dienst verwenden, der von Pub/Sub aufgerufen wird, müssen Sie die standardmäßige app.run-URL von Cloud Run für diesen Dienst verwenden, nicht eine beliebige benutzerdefinierte Domain.
    • Das Pub/Sub-Abo muss sich im selben Projekt oder VPC Service Controls-Perimeter befinden wie der Cloud Run-Dienst.
  • Es gibt keine Möglichkeit, interne Dienste aus Trafficquellen aufzurufen, die nicht aus einem VPC-Netzwerk stammen. Ausgenommen davon sind Pub/Sub und Eventarc. Das bedeutet, dass Cloud Scheduler, Cloud Tasks und Workflows keine internen Dienste aufrufen können.

Internes oder internes und Cloud-Load-Balancing

Auf Dienste, bei denen eingehender Traffic auf internes und Cloud-Load-Balancing gesetzt ist, kann auch über Load-Balancer zugegriffen werden, die über Cloud Load Balancing eingerichtet wurden. Die Einstellung für internes und Cloud-Load-Balancing ist eine Obermenge von intern. Das bedeutet, dass alles, was einen Dienst erreichen kann, der auf intern gesetzt ist, auch einen Dienst erreichen kann, der auf internes und Cloud-Load-Balancing gesetzt ist.

Ingress wird eingerichtet

Sie können das Ingress mit einer der unterstützten Methoden auf den folgenden Tabs festlegen:

Console

Wenn Sie einen neuen Dienst bereitstellen:

  1. Öffnen Sie Cloud Run.

  2. Klicken Sie auf Dienst erstellen und konfigurieren Sie den ersten Schritt (Diensteinstellungen) nach Bedarf. Klicken Sie dann auf Weiter.

  3. Konfigurieren Sie den zweiten Schritt (Erste Version des Dienstes konfigurieren) und klicken Sie auf Weiter.

  4. Wählen Sie im dritten Schritt (Konfiguration dieses Dienstes konfigurieren) unter dem Label Ingress* die Ingress-Traffic aus, die Sie zulassen möchten:

    Bild

Wenn Sie einen vorhandenen Dienst konfigurieren, gehen Sie so vor:

  1. Klicken Sie auf den Dienst.

  2. Klicken Sie auf den Tab Trigger.

  3. Wählen Sie unter dem Label Ingress den eingehenden Traffic aus, den Sie zulassen möchten:

    Bild

  4. Klicken Sie auf Speichern.

Befehlszeile

  1. Wenn Sie einen neuen Dienst bereitstellen, stellen Sie den Dienst mit dem Flag --ingress bereit:

    gcloud run deploy SERVICE --image IMAGE_URL --platform managed --ingress INGRESS

    Ersetzen Sie:

  2. Wenn Sie einen vorhandenen Ingress-Dienst ändern:

    gcloud run services update SERVICE --platform managed --ingress INGRESS

    Ersetzen Sie:

YAML

Sie können die vorhandene Dienstkonfiguration mit dem Befehl gcloud run services describe --format export herunterladen und aufrufen, was bereinigte Ergebnisse im YAML-Format liefert. Anschließend können Sie die unten beschriebenen Felder ändern und die geänderte YAML-Datei mit dem Befehl gcloud run services replace hochladen. Achten Sie darauf, dass Sie die Felder nur wie dokumentiert ändern.

  1. So rufen Sie die Konfiguration auf und laden sie herunter:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aktualisieren Sie die Annotation run.googleapis.com/ingress::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      annotations:
        run.googleapis.com/ingress: INGRESS

    Ersetzen Sie:

  3. Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:

    gcloud run services replace service.yaml

Nächste Schritte

Mit dem serverlosen VPC-Zugriff können Sie über die Einstellungen für ausgehenden Traffic direkt einen Cloud Run-Dienst mit Ihrem VPC-Netzwerk verbinden.

Sie können auch HTTP(S)-Load-Balancing mit Cloud Run verwenden.