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

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.

Um ein gültiges ID-Token für die Identität abzurufen, die in der gcloud CLI angemeldet ist, verwenden Sie gcloud auth print-identity-token. 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. Für Für Entwicklungszwecke können Sie von der gcloud CLI generierte ID-Tokens verwenden. Beachten Sie dabei, dass solche Tokens keine Zielgruppenanforderung haben, was sie für Relay-Angriffe anfällig macht. In Produktionsumgebungen verwenden Sie ID-Tokens, die für ein Dienstkonto ausgestellt wurden und für die das angemessene Zielgruppe angegeben wurde. 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.