Neben administrativen Aufgaben wie dem Erstellen, Aktualisieren oder Löschen von Diensten möchten Entwickler Dienste auch oft privat testen, bevor sie sie veröffentlichen. Diese Option gilt für Cloud Run-Dienste und nicht für Cloud Run Jobs.
Vorbereitung
Achten Sie darauf, dass Sie Berechtigungen für den Zugriff auf die Dienste gewähren, für die Sie sich authentifizieren. Sie müssen dem Entwickler oder der Entwicklergruppe die Rolle "Cloud Run Invoker" zuweisen:
Console-UI
Öffnen Sie die Google Cloud Console:
Wählen Sie den Dienst aus, aber klicken Sie nicht darauf.
Klicken Sie in der rechten Seitenleiste auf den Tab Berechtigungen. (Möglicherweise müssen Sie zuerst rechts oben auf Infofeld ansehen klicken.
Klicken Sie auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Entwicklerkontos ein.
Wählen Sie im Drop-down-Menü Rolle auswählen die Rolle
Cloud Run Invoker
aus.Klicken Sie auf Speichern.
gcloud
Führen Sie den Befehl gcloud run services add-iam-policy-binding
aus:
gcloud run services add-iam-policy-binding SERVICE \ --member='USER:EMAIL' \ --role='roles/run.invoker'
Dabei gilt:
- SERVICE ist der Name des Dienstes.
- USER ist der Wert
user
odergroup
, je nachdem, ob Sie einen einzelnen Entwickler oder eine Gruppe autorisieren. EMAIL ist das E-Mail-Konto.
Beispiel:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
Privaten Dienst testen
Sie können den Cloud Run-Proxy oder curl
verwenden, um Ihren privaten Dienst zu testen.
Cloud Run-Proxy in der Google Cloud CLI verwenden
Am einfachsten können Sie private Dienste mit dem Cloud Run-Proxy in der Google Cloud CLI testen.
Dadurch wird der private Dienst per Proxy an http://localhost:8080
weitergeleitet
(oder an den mit --port
angegebenen Port), sodass eine
Bereitstellung des Tokens des aktiven Kontos oder eines anderen von Ihnen angegebenen Tokens stattfindet.
Dazu kannst du einen Webbrowser oder ein Tool wie curl
verwenden.
Dies ist die empfohlene Methode, um eine Website oder API in Ihrem Browser privat zu testen.
Sie können einen Dienst lokal über die folgende Befehlszeile in einem Linux-, macOS-, WSL (bevorzugt)- oder in einer cygwin-Umgebung per Proxy weiterleiten:
gcloud run services proxy SERVICE --project PROJECT-ID
curl
verwenden
Sie können private Dienste auch ohne den Proxy testen. Dazu verwenden Sie ein Tool wie curl
oder übergeben ein Authentifizierungstoken im Header Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Damit der Befehl curl
funktioniert, müssen Sie einem Nutzer mit der Berechtigung run.routes.invoke
, z. B. dem Cloud Run-Administrator oder Cloud Run-Aufrufer, ein gültiges ID-Token übergeben. Unter Cloud Run-IAM-Rollen finden Sie die vollständige Liste der Rollen und der zugehörigen Berechtigungen.
Verwenden Sie den Befehl gcloud auth print-identity-token
, um ein gültiges ID-Token für die bei der gcloud CLI angemeldete Identität abzurufen. Sie können von der gcloud-Befehlszeile erstellte Tokens verwenden, um HTTP-Anfragen in einem beliebigen Projekt aufzurufen, solange Ihr Konto die run.routes.invoke
-Berechtigung für den Dienst hat.
Verwenden Sie für Entwicklungszwecke von der gcloud CLI generierte ID-Tokens. Beachten Sie dabei, dass solche Tokens keine Zielgruppenanforderung haben, was sie für Replay-Angriffe anfällig macht. In Produktionsumgebungen verwenden Sie ID-Tokens, die für ein Dienstkonto ausgestellt wurden und für die die angemessene Zielgruppe angegeben wurde. Dieser Ansatz verbessert die Sicherheit, da die Tokennutzung auf den gewünschten Dienst beschränkt wird. Verwenden Sie für Nicht-Google-Konten Mitarbeiteridentitätsföderation, um Ihren Cloud Run-Dienst aufzurufen, damit Sie keinen Dienstkontoschlüssel herunterladen müssen.
Wir empfehlen, nur die minimalen Berechtigungen zuzuweisen, die zum Entwickeln und Verwenden von Diensten erforderlich sind. Achten Sie dabei darauf, dass die IAM-Richtlinien für Ihre Dienste auf die Mindestanzahl an Nutzern und Dienstkonten beschränkt sind.