Es gibt zwei Möglichkeiten, einen öffentlichen Cloud Run-Dienst zu erstellen:
- Deaktivieren Sie die IAM-Prüfung für Cloud Run Invoker (empfohlen).
- Weisen Sie dem Mitgliedstyp
allUsers
die IAM-Rolle „Cloud Run Invoker“ zu.
Erforderliche Rollen
Wenn Sie die IAM-Überprüfung für den Invoker für einen Dienst deaktivieren oder wieder aktivieren möchten, benötigen Sie die folgenden Berechtigungen:
run.services.create
run.services.update
run.services.setIamPolicy
Diese Berechtigungen sind in der Rolle Cloud Run-Administrator (roles/run.admin
) enthalten. Unter Cloud Run-IAM-Rollen finden Sie die vollständige Liste der Rollen und der zugehörigen Berechtigungen.
IAM-Prüfung für Cloud Run Invoker deaktivieren
Die empfohlene Methode, um einen öffentlichen Dienst zu erstellen, besteht darin, die IAM-Prüfung für Cloud Run Invoker zu deaktivieren. Cloud Run erzwingt diese Prüfung standardmäßig. Verwenden Sie diese Lösung, wenn das Projekt einer Organisationsrichtlinie für die domaineingeschränkte Freigabe unterliegt.
So deaktivieren Sie die Prüfung:
Console
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst konfigurieren, und füllen Sie die Seite mit den anfänglichen Diensteinstellungen nach Bedarf aus.
Wenn Sie einen vorhandenen Dienst konfigurieren, klicken Sie auf den Dienst und dann auf den Tab Sicherheit.
Wählen Sie Öffentlichen Zugriff erlauben aus.
Klicken Sie auf Erstellen oder Speichern.
gcloud
Verwenden Sie für einen neuen Dienst den Befehl
gcloud run deploy
mit dem Flag--no-invoker-iam-check
:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
Ersetzen Sie
SERVICE_NAME
durch den Namen des Dienstes.Verwenden Sie für einen vorhandenen Dienst den Befehl
gcloud run services update
mit dem Flag--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
Ersetzen Sie SERVICE_NAME
durch den Namen des Dienstes.
YAML
So rufen Sie die Konfiguration auf und laden sie herunter:
gcloud run services describe SERVICE --format export > service.yaml
Aktualisieren Sie die Annotation
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: 'true' name: SERVICE_NAME
Ersetzen Sie SERVICE_NAME durch den Namen Ihres Cloud Run-Dienstes.
Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:
gcloud run services replace service.yaml
Prüfen Sie nach der Bereitstellung, ob die Prüfung deaktiviert ist, indem Sie zum HTTPS-Endpunkt des Dienstes navigieren.
IAM-Prüfung für Cloud Run Invoker wieder aktivieren
So aktivieren Sie die Prüfung wieder:
Console
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
Klicken Sie auf den Dienst und dann auf Sicherheit.
Wählen Sie Authentifizierung erforderlich und dann Identity and Access Management (IAM) aus.
Klicken Sie auf Speichern.
gcloud
Aktualisieren Sie den Dienst, indem Sie das Flag
--invoker-iam-check
übergeben:gcloud run services update SERVICE_NAME --invoker-iam-check
Ersetzen Sie
SERVICE_NAME
durch den Namen des Dienstes.
YAML
So rufen Sie die Konfiguration auf und laden sie herunter:
gcloud run services describe SERVICE --format export > service.yaml
Aktualisieren Sie die Annotation
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: 'false' name: SERVICE_NAME
Ersetzen Sie
SERVICE_NAME
durch den Namen Ihres Cloud Run-Dienstes.
Prüfen Sie, ob die Prüfung nach der Bereitstellung wieder aktiviert ist, indem Sie zum HTTPS-Endpunkt des Dienstes navigieren.
Organisationsrichtlinie für die IAM-Prüfung für Cloud Run Invoker konfigurieren
Als Administrator können Sie die Möglichkeit, die IAM-Prüfung für Aufrufer zu deaktivieren, mit der verwalteten Einschränkung constraints/run.managed.requireInvokerIam
einschränken.
Diese Einschränkung wird nicht standardmäßig erzwungen.
Weisen Sie dem Mitgliedstyp allUsers
die Cloud IAM-Rolle „Cloud Run Invoker“ zu.
Sie können den öffentlichen Zugriff auf einen Dienst zulassen, indem Sie dem Mitgliedstyp allUsers
die IAM-Rolle „Cloud Run Invoker“ zuweisen.
Sie benötigen die Berechtigung run.services.setIamPolicy
, um die Authentifizierung für einen Cloud Run-Dienst zu konfigurieren. Diese Berechtigung ist in der Rolle „Cloud Run-Administrator“ enthalten. Unter Cloud Run-IAM-Rollen finden Sie die vollständige Liste der Rollen und der zugehörigen Berechtigungen.
Console
Für einen vorhandenen Cloud Run-Dienst:
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
Klicken Sie links neben dem Dienst, den Sie veröffentlichen möchten, auf das Kästchen. Klicken Sie nicht auf den Dienst selbst.
Klicken Sie im Informationsbereich oben rechts auf den Tab Berechtigungen. Wenn der Informationsbereich nicht sichtbar ist, müssen Sie möglicherweise auf Infofeld ansehen und dann auf Berechtigungen klicken.
Klicken Sie auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten den Wert allUsers
ein.
Wählen Sie im Menü Rolle auswählen die Rolle Cloud Run Invoker aus.
Klicken Sie auf Speichern.
Sie werden aufgefordert, zu bestätigen, dass Sie diese Ressource veröffentlichen möchten. Klicken Sie auf Öffentlichen Zugriff zulassen, um die Änderung auf die IAM-Einstellungen des Dienstes anzuwenden.
Für einen neuen Dienst, den Sie erstellen, erstellen Sie den Dienst und wählen Sie im Abschnitt Authentifizierung die Option Öffentlichen Zugriff zulassen aus, um den Dienst öffentlich verfügbar zu machen. Wenn Sie einen Dienst privat machen möchten, wählen Sie Authentifizierung erforderlich aus.
gcloud
Fügen Sie mit dem Befehl gcloud run services
den speziellen Mitgliedstyp allUsers
einem Dienst hinzu und weisen Sie ihm die Rolle roles/run.invoker
zu, um einen Dienst öffentlich zugänglich zu machen:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
Alternativ können Sie den Befehl gcloud run deploy
ausführen, um den Dienst beim Bereitstellen des Dienstes öffentlich zugänglich zu machen:
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
Erstellen Sie eine Datei mit dem Namen policy.yaml
und dem folgendem Inhalt:
bindings:
- members:
- allUsers
role: roles/run.invoker
Lassen Sie öffentlichen Zugriff für den vorhandenen SERVICE zu:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Fügen Sie einergoogle_cloud_run_v2_service
-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu:Fügen Sie die folgende Ressource hinzu, die auf Ihren Cloud Run-Dienst verweist, um die IAM-Dienstbindung für roles/run.invoker
zu aktualisieren:
Diese Bindung ist nur für die angegebene Rolle autoritativ. Andere IAM-Bindungen innerhalb der IAM-Dienstrichtlinie werden beibehalten.