Diese Option gilt für einen Cloud Run-Dienst, der eine öffentliche API oder Website ist.
Sie können nicht authentifizierte Aufrufe eines Dienstes zulassen. Dazu weisen Sie dem Mitgliedstyp allUsers
die IAM-Rolle "Cloud Run Invoker" zu.
Sie benötigen die Berechtigung run.services.setIamPolicy
, um die Authentifizierung für einen Cloud Run-Dienst zu konfigurieren. Diese Berechtigung ist in den beiden Rollen Inhaber und Cloud Run-Administrator enthalten. Eine vollständige Liste der Rollen und ihrer Berechtigungen finden Sie unter IAM-Rollen für Cloud Run.
Konsolenbasierte Benutzeroberfläche
Für einen vorhandenen Cloud Run-Dienst:
Öffnen Sie die Google Cloud Console:
Klicken Sie auf das Kästchen links neben dem Dienst, den Sie veröffentlichen möchten. (Klicken Sie nicht auf den Dienst selbst.)
Klicken Sie im Informationsfenster oben rechts auf den Tab Berechtigungen. Wenn der Informationsbereich nicht sichtbar ist, müssen Sie möglicherweise auf Infofeld ansehen klicken und dann auf Berechtigungen klicken.
Klicken Sie auf Hauptkonto hinzufügen.
Geben Sie in das Textfeld Neue Hauptkonten den Wert allUsers
ein.
Wählen Sie im Drop-down-Menü Rolle 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. Wählen Sie jedoch auf dem Tab Authentifizierung die Option Nicht authentifizierte Aufrufe zulassen aus, um den Dienst öffentlich verfügbar zu machen. Wenn Sie Authentifizierung erforderlich auswählen, wird der Dienst privat.
gcloud
Wenn Sie einen Dienst öffentlich zugänglich machen möchten, verwenden Sie den Befehl gcloud run services
, um einem Dienst den speziellen Mitgliedstyp allUsers
hinzuzufügen und ihm die Rolle roles/run.invoker
zuzuweisen:
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 ö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 nicht authentifizierte Aufrufe für den vorhandenen SERVICE zu:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Fügen Sie der vorhandenen Datei main.tf
Folgendes hinzu, um einen Cloud Run-Dienst zu erstellen:
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.
Domaineingeschränkte Freigabe
Wenn das Projekt einer Organisationsrichtlinie für die domaineingeschränkte Freigabe unterliegt, können Sie standardmäßig keine öffentlichen Dienste erstellen. Sie können Tags und bedingte Richtlinien verwenden, um bestimmte Dienste von dieser Einschränkung auszunehmen. Weitere Informationen finden Sie im Blogpost zum Erstellen öffentlicher Cloud Run-Dienste, wenn die Freigabe der Domain beschränkt ist.