Entwickler authentifizieren

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

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Wählen Sie den Dienst aus, aber klicken Sie nicht darauf.

  3. Klicken Sie in der rechten Seitenleiste auf den Tab Berechtigungen. Möglicherweise müssen Sie zuerst rechts oben auf Infofeld ansehen klicken.

  4. Klicken Sie auf Mitglieder hinzufügen.

  5. Geben Sie im Feld Mitglieder hinzufügen die E-Mail-Adresse des Entwicklerkontos ein.

  6. Wählen Sie im Drop-down-Menü Rolle auswählen die Rolle Cloud Run Invoker aus.

  7. 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 oder group, 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

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. Damit wird der private Dienst an http://localhost:8080 (oder an den mit --port angegebenen Port) weitergeleitet und das Token des aktiven Kontos oder ein anderes von Ihnen angegebenes Token bereitgestellt. So können Sie einen Webbrowser oder ein Tool wie curl verwenden. Dies ist die empfohlene Methode zum privaten Testen einer Website oder API in Ihrem Browser.

Mit folgendem Befehl können Sie einen Dienst lokal 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 gcloud auth print-identity-token, um ein gültiges ID-Token für die in 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 gcloud-ID-generierte ID-Tokens. Beachten Sie dabei, dass solche Tokens keine Zielgruppenanforderung haben, was sie für Relay-Angriffe anfällig macht. Verwenden Sie in Produktionsumgebungen ID-Tokens, die für ein Dienstkonto ausgestellt wurden, für das die entsprechende Zielgruppe angegeben ist. Dieser Ansatz verbessert die Sicherheit, da die Tokennutzung auf den gewünschten Dienst beschränkt wird.

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.