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 ist der Endpunkt eines Cloud Run-Dienstes über die folgenden Netzwerk-Eingangspfade erreichbar:
- Standard-
run.app
-URLs, die Sie deaktivieren können - Alle konfigurierten Domainzuordnungen
- Jeder konfigurierte externe oder interne Application Load Balancer
Alle Netzwerk-Ingress-Pfade unterliegen der Einstellung für eingehenden Traffic für den Dienst. Mit den standardmäßigen Ingress-Pfaden und der standardmäßigen Einstellung für eingehenden Traffic kann jede Ressource im Internet Ihren Cloud Run-Dienst erreichen. Sie können eine benutzerdefinierte Einschränkung verwenden, um die Ingress-Einstellungen für Ihre Organisation oder für eine Reihe von Projekten einzuschränken. Die IAM-Authentifizierung gilt weiterhin für Anfragen, die die Dienstendpunkte über einen der vorherigen Netzwerkeintrittspfade erreichen. Verwenden Sie für einen mehrstufigen Ansatz zur Zugriffsverwaltung sowohl Netzwerk-Ingress-Einstellungen als auch die IAM-Authentifizierung.
Verfügbare Einstellungen für den eingehenden Netzwerktraffic
Diese Einstellungen sind verfügbar:
Einstellung | Beschreibung |
---|---|
Intern |
Stärkste Einschränkung. Sie lässt Anfragen aus den folgenden Quellen zu:
run.app auf Ihren Dienst zugreifen. Anfragen aus anderen Quellen, einschließlich des Internets, können Ihren Dienst nicht über die URL run.app oder benutzerdefinierte Domains erreichen. |
internes und Cloud-Load-Balancing | Mit dieser Einstellung werden Anfragen von den folgenden Ressourcen zugelassen: <ph type="x-smartling-placeholder">
Hinweis: Verwenden Sie internal-and-cloud-load-balancing , um diese Einstellung in der gcloud CLI zu aktivieren.
Um diese Einstellung in der Google Cloud Console zu aktivieren, wählen Sie
Intern > Traffic von externen Application Load Balancern zulassen.
|
Alle |
Geringste Einschränkung. Ermöglicht alle Anfragen, einschließlich Anfragen direkt aus dem Internet an die URL run.app .
|
Auf interne Dienste zugreifen
Weitere Überlegungen:
Wenn Sie auf interne Dienste zugreifen, rufen Sie sie so auf, wie Sie es auch mit ihren 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 ist keine weitere Einrichtung für Maschinen erforderlich, die externe IP-Adressen haben oder Cloud NAT verwenden. Andernfalls finden Sie weitere Informationen unter Anfragen von VPC-Netzwerken empfangen.
Wenn Sie von Cloud Run, App Engine oder Cloud Run Functions einen Cloud Run-Dienst aufrufen, der auf „Intern“ oder „Intern und Cloud Load Balancing“ festgelegt ist, muss der Datenverkehr durch ein VPC-Netzwerk geleitet werden, das als intern gilt. Siehe Anfragen von anderen Cloud Run-Diensten, App Engine und Cloud Run-Funktionen empfangen.
Anfragen von Ressourcen in VPC-Netzwerken im selben Projekt gelten als „intern“, auch wenn die Ressource, von der sie stammen, eine externe IP-Adresse hat.
Anfragen von lokalen Ressourcen, die mit Cloud VPN und Cloud Interconnect mit dem VPC-Netzwerk verbunden sind, gelten als „intern“.
Eingehenden Traffic festlegen
Sie können das Ingress mit einer der unterstützten Methoden auf den folgenden Tabs festlegen:
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.
Wenn Sie einen neuen Dienst konfigurieren, klicken Sie auf Container bereitstellen und wählen Sie Dienst aus, um das Formular Dienst erstellen aufzurufen. Füllen Sie die Seite mit den ersten Diensteinstellungen aus.
Wenn Sie einen vorhandenen Dienst konfigurieren, klicken Sie auf den Dienst und dann auf den Tab Netzwerk.
Wählen Sie den eingehenden Traffic aus, den Sie zulassen möchten:
Klicken Sie auf Erstellen oder Speichern.
gcloud
Wenn Sie einen neuen Dienst bereitstellen, stellen Sie den Dienst mit dem Flag
--ingress
bereit:gcloud run deploy SERVICE --image IMAGE_URL --ingress INGRESS
Ersetzen
INGRESS
durch eine der verfügbaren Einstellungen für eingehenden Traffic.all
internal
internal-and-cloud-load-balancing
SERVICE
durch den Dienstnamen- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Wenn Sie einen vorhandenen Ingress-Dienst ändern:
gcloud run services update SERVICE --ingress INGRESS
Ersetzen
INGRESS
durch eine der verfügbaren Einstellungen für eingehenden Traffic.all
internal
internal-and-cloud-load-balancing
SERVICE
durch den Dienstnamen
YAML
Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run services describe SERVICE --format export > service.yaml
Aktualisieren Sie die 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
Ersetzen
- SERVICE durch den Namen Ihres Cloud Run
- INGRESS durch eine der verfügbaren Einstellungen für eingehenden Traffic.
all
internal
internal-and-cloud-load-balancing
- REVISION durch einen neuen Überarbeitungsnamen oder löschen (falls vorhanden). Wenn Sie einen neuen Überarbeitungsnamen angeben, muss er die folgenden Kriterien erfüllen:
- Beginnt mit
SERVICE-
- Enthält nur Kleinbuchstaben, Ziffern und
-
- Endet nicht mit
-
- Darf nicht mehr als 63 Zeichen enthalten
- Beginnt mit
Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:
gcloud run services replace service.yaml
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Fügen Sie der Datei main.tf
Folgendes hinzu:
Standard-URL deaktivieren
Deaktivieren Sie die standardmäßigen run.app
-URLs eines Cloud Run-Dienstes, um nur Traffic von den anderen Ingress-Pfaden des Dienstes zuzulassen: Cloud Load Balancing und allen konfigurierten Domainzuordnungen.
So deaktivieren Sie die Standard-URL:
Befehlszeile
Führen Sie zum Deaktivieren der
run.app
-URL für einen Dienst den Befehlgcloud beta run deploy
odergcloud beta run services update
mit dem Flag--no-default-url
aus:gcloud beta run deploy SERVICE_NAME --no-default-url
Dabei ist SERVICE_NAME der Name Ihres Cloud Run-Dienstes.
In der Ausgabe wird die URL als None
angezeigt.
Verwenden Sie das Flag --default-url
, um die Standard-URL wiederherzustellen.
YAML
Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run services describe SERVICE --format export > service.yaml
Verwenden Sie die Annotation
run.googleapis.com/default-url-disabled
, um die URLrun.app
zu deaktivieren:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/default-url-disabled: true run.googleapis.com/launch-stage: BETA name: SERVICE spec: template: metadata: name: REVISION
Ersetzen
- SERVICE durch den Namen Ihres Cloud Run-Dienstes.
- REVISION durch einen neuen Überarbeitungsnamen oder löschen (falls vorhanden). Wenn Sie einen neuen Überarbeitungsnamen angeben, muss er die folgenden Kriterien erfüllen:
- Beginnt mit
SERVICE-
- Enthält nur Kleinbuchstaben, Ziffern und
-
- Endet nicht mit
-
- Darf nicht mehr als 63 Zeichen enthalten
- Beginnt mit
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run services replace service.yaml
Wenn Sie die Standard-URL wiederherstellen möchten, entfernen Sie die Anmerkung run.googleapis.com/default-url-disabled
.
Die folgenden Google Cloud-Dienste verwenden die Standard-run.app
-URL, um Cloud Run aufzurufen. Wenn Sie die Standard-run.app
-URL deaktivieren, funktionieren diese Dienste nicht wie erwartet:
- Die
cloudfunctions.net
-URL von Cloud Run Functions (2. Generation) auf Grundlage des Cloud Run-Dienstes. - Cloud Scheduler
- Cloud Service Mesh
- Cloud Tasks
- Eventarc
- Firebase App Hosting
- Firebase Hosting
- Pub/Sub
- Synthetische Monitorings und Verfügbarkeitsdiagnosen
- Workflows
Nächste Schritte
- Weitere Informationen zu den Einstellungen für ausgehenden Traffic
- Internen Application Load Balancer für Cloud Run einrichten.
- Externen Application Load Balancer mit Cloud Run einrichten.
- IAM-Authentifizierungsmethoden für den Zugriff auf Dienste konfigurieren.