Standardmäßig können Cloud Run-Ressourcen nur von Projektinhabern und -bearbeitern erstellt, aktualisiert, gelöscht oder aufgerufen werden. Außerdem sind nur Projektinhaber und Cloud Run-Administratoren zum Ändern von IAM-Richtlinien (Identity and Access Management) berechtigt, um beispielsweise einen Dienst öffentlich zu machen. Weitere Informationen finden Sie unter IAM-Rollen für Cloud Run.
Mit IAM können Sie verschiedenen Hauptkonten – Hauptkonten oder Gruppen – Rollen zuweisen, die Berechtigungen zur Ausführung dieser Aktionen enthalten.
Wenn Sie Funktionen mit gcloud functions-Befehlen oder den Cloud Functions v2 APIs erstellt oder bereitgestellt haben und diese Optionen aus Gründen der Abwärtskompatibilität verwenden müssen, lesen Sie den Abschnitt Zugriffssteuerung mit IAM.
Vordefinierte Cloud Run-Rollen
Im Vergleich zu einfachen Rollen (Inhaber, Bearbeiter und Betrachter) haben die folgenden vordefinierten Rollen eine detailliertere Zugriffssteuerung für den Zugriff auf Cloud Run-Ressourcen:
| Rolle | Beschreibung |
|---|---|
Cloud Run-Administrator (roles/run.admin) |
Kann Dienste, Jobs und Worker-Pools erstellen, aktualisieren und löschen, kann Jobausführungen abrufen, auflisten und löschen. Kann Dienste und Jobs aufrufen, kann Jobausführungen abbrechen. Kann IAM-Richtlinien abrufen und festlegen. Kann Empfehlungen aufrufen, anwenden und ablehnen. Erfordert eine zusätzliche Konfiguration, um Dienste bereitstellen zu können. |
Cloud Run-Entwickler (roles/run.developer) |
Kann Dienste, Jobs und Worker-Pools erstellen, aktualisieren und löschen, kann Ausführungen von Jobs abrufen, auflisten und löschen. Kann IAM-Richtlinien abrufen, aber nicht festlegen. Kann Empfehlungen ansehen, anwenden und verwerfen. |
Cloud Run-Betrachter (roles/run.viewer) |
Kann Dienste, Jobs, Jobausführungen und Worker-Pools aufrufen. Kann IAM-Richtlinien abrufen. Kann Empfehlungen aufrufen. |
Cloud Run-Aufrufer (roles/run.invoker) |
Kann Dienste und Jobs aufrufen und Jobausführungen abbrechen. |
Cloud Run Source Developer (roles/run.sourceDeveloper) |
Kann von Cloud Run-Quelle bereitgestellte Ressourcen bereitstellen und verwalten. |
Cloud Run Builder (roles/run.builder) |
Kann Cloud Run-Funktionen und von der Quelle bereitgestellte Dienste erstellen. |
Cloud Run Service Invoker (roles/run.servicesInvoker) |
Kann Cloud Run-Dienste aufrufen. |
Cloud Run Jobs Executor (roles/run.jobsExecutor) |
Kann Cloud Run-Jobs ausführen und abbrechen. |
Cloud Run Jobs Executor With Overrides (roles/run.jobsExecutorWithOverrides) |
Kann Cloud Run-Jobs mit Überschreibungen ausführen und abbrechen. |
Zugriff auf eine einzelne Cloud Run-Ressource steuern
Sie können den Zugriff individuell für Dienste, Jobs oder Worker-Pools steuern.
Hauptkonten hinzufügen
So fügen Sie einem Dienst Hauptkonten hinzu:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen neben dem Dienst, dem Sie Hauptkonten hinzufügen möchten. 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 eine oder mehrere Identitäten ein, die Zugriff auf den Dienst benötigen.
- Wählen Sie im Drop-down-Menü Rollen zuweisen eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.
- Klicken Sie auf Speichern.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
Ersetzen Sie Folgendes:
SERVICE_NAME: der Name des Dienstes.PRINCIPAL: Der Hauptkontotyp (z.B.user:email@domain.com). Eine Liste der zulässigen Werte fürPRINCIPALfinden Sie unter Hauptkonto-IDs.ROLE: die Rolle. Eine Liste der zulässigen Werte fürROLEfinden Sie unter IAM-Rollen für Cloud Run.
So fügen Sie einem Job Hauptkonten hinzu:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen links neben dem Job, dem Sie Hauptkonten hinzufügen möchten. Klicken Sie nicht auf den Job 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 eine oder mehrere Identitäten ein, die Zugriff auf den Job benötigen.
- Wählen Sie im Menü Rollen zuweisen eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.
- Klicken Sie auf Speichern.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run jobs add-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
Ersetzen Sie Folgendes:
JOB_NAME: Der Name des Jobs.PRINCIPAL: Der Hauptkontotyp (z.B.user:email@domain.com). Eine Liste der zulässigen Werte fürPRINCIPALfinden Sie unter Hauptkonto-IDs.ROLE: die Rolle. Eine Liste der zulässigen Werte fürROLEfinden Sie unter IAM-Rollen für Cloud Run.
So fügen Sie einem Worker-Pool Hauptkonten hinzu:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen neben dem Worker-Pool, dem Sie Hauptkonten hinzufügen möchten. Klicken Sie nicht auf den Worker-Pool 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 in das Feld Neue Hauptkonten eine oder mehrere Identitäten ein, die Zugriff auf Ihren Worker-Pool benötigen.
- Wählen Sie im Menü Rollen zuweisen eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.
- Klicken Sie auf Speichern.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run worker-pools add-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
Ersetzen Sie Folgendes:
WORKER_POOL: der Name des Worker-Pools.PRINCIPAL: Der Hauptkontotyp (z.B.user:email@domain.com). Eine Liste der zulässigen Werte fürPRINCIPALfinden Sie unter Hauptkonto-IDs.ROLE: die Rolle. Eine Liste der zulässigen Werte fürROLEfinden Sie unter IAM-Rollen für Cloud Run.
Hauptkonten aus einer Rolle entfernen
So entfernen Sie Hauptkonten aus einer Rolle für einen Dienst:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen neben dem Dienst, aus dem Sie Hauptkonten entfernen möchten. 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.
- Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten. Dort werden alle Rollen angezeigt, die diesem Hauptkonto zugewiesen sind.
- Klicken Sie auf den Papierkorb neben dem Hauptkonto in der gewünschten Rolle, um diese Rolle aus dem Hauptkonto zu entfernen.
- Im Bestätigungsdialogfeld können Sie dieses Hauptkonto aus allen Rollen im Dienst entfernen. Klicken Sie auf Entfernen, um das Hauptkonto aus der Rolle zu entfernen.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run services remove-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
Ersetzen Sie Folgendes:
SERVICE_NAME: der Name des Dienstes.PRINCIPAL: Der Hauptkontotyp (z.B.user:email@domain.com). Eine Liste der zulässigen Werte fürPRINCIPALfinden Sie unter Hauptkonto-IDs.ROLE: die Rolle. Eine Liste der zulässigen Werte fürROLEfinden Sie unter IAM-Rollen für Cloud Run.
So entfernen Sie Hauptkonten aus einer Rolle für einen Job:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen links neben dem Job, dem Sie Hauptkonten hinzufügen möchten. Klicken Sie nicht auf den Job 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.
- Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten. Dort werden alle Rollen angezeigt, die diesem Hauptkonto zugewiesen sind.
- Klicken Sie auf den Papierkorb neben dem Hauptkonto in der gewünschten Rolle, um diese Rolle aus dem Hauptkonto zu entfernen.
- Im Bestätigungsdialogfeld können Sie dieses Hauptkonto aus allen Rollen im Job entfernen. Klicken Sie auf Entfernen, um das Hauptkonto aus der Rolle zu entfernen.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run jobs remove-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
Ersetzen Sie Folgendes:
JOB_NAME: Der Name des Jobs.PRINCIPAL: Der Hauptkontotyp (z.B.user:email@domain.com). Eine Liste der zulässigen Werte fürPRINCIPALfinden Sie unter Hauptkonto-IDs.ROLE: die Rolle. Eine Liste der zulässigen Werte fürROLEfinden Sie unter IAM-Rollen für Cloud Run.
So entfernen Sie Hauptkonten aus einer Rolle für einen Worker-Pool:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen neben dem Worker-Pool, aus dem Sie Hauptkonten entfernen möchten. Klicken Sie nicht auf den Worker-Pool 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.
- Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten. Dort werden alle Rollen angezeigt, die diesem Hauptkonto zugewiesen sind.
- Klicken Sie auf den Papierkorb neben dem Hauptkonto in der gewünschten Rolle, um diese Rolle aus dem Hauptkonto zu entfernen.
- Im Bestätigungsdialogfeld können Sie dieses Hauptkonto aus allen Rollen im Worker-Pool entfernen. Klicken Sie auf Entfernen, um das Hauptkonto aus der Rolle zu entfernen.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run worker-pools remove-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
Ersetzen Sie Folgendes:
WORKER_POOL: der Name des Worker-Pools.PRINCIPAL: Der Hauptkontotyp (z.B.user:email@domain.com). Eine Liste der zulässigen Werte fürPRINCIPALfinden Sie unter Hauptkonto-IDs.ROLE: die Rolle. Eine Liste der zulässigen Werte fürROLEfinden Sie unter IAM-Rollen für Cloud Run.
Mehrere Hauptkonten auf einmal hinzufügen oder entfernen
So führen Sie einen Bulk-Vorgang zum Hinzufügen oder Entfernen von Hauptkonten aus einem Dienst aus:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen links neben dem Dienst, für den Sie Hauptkonten hinzufügen oder aus denen Sie Hauptkonten entfernen möchten. Klicken Sie nicht auf den Dienst selbst.
- Wählen Sie den Dienst aus, dem Sie Hauptkonten hinzufügen oder aus dem Sie Hauptkonten entfernen möchten.
- 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.
So fügen Sie Hauptkonten hinzu:
- Klicken Sie auf Hauptkonto hinzufügen.
- Geben Sie im Feld Neue Hauptkonten eine oder mehrere Identitäten ein, die Zugriff auf den Dienst benötigen.
- Wählen Sie im Menü Rollen zuweisen eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.
- Klicken Sie auf Speichern.
So entfernen Sie Hauptkonten:
- Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten. Dort werden alle Rollen angezeigt, die diesem Hauptkonto zugewiesen sind.
- Klicken Sie in der Zeile des Hauptkontos auf den Papierkorb.
- Im Bestätigungsdialogfeld können Sie dieses Hauptkonto aus allen Rollen im Dienst entfernen. Klicken Sie auf Entfernen, um das Hauptkonto aus der Rolle zu entfernen.
gcloud
Erstellen Sie eine IAM-Richtlinie:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
Führen Sie den Befehl gcloud run services set-iam-policy aus:
gcloud run services set-iam-policy SERVICE_NAME policy.json
Eine Liste der zulässigen Werte für PRINCIPAL finden Sie unter Hauptkonto-IDs.
Eine Liste der zulässigen Werte für ROLE finden Sie unter IAM-Rollen für Cloud Run.
So führen Sie einen Bulk-Vorgang zum Hinzufügen oder Entfernen von Hauptkonten aus einem Job aus:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen links neben dem Job, dem Sie Hauptkonten hinzufügen möchten. Klicken Sie nicht auf den Job selbst.
- Wählen Sie den Job aus, dem Sie Hauptkonten hinzufügen oder aus dem Sie Hauptkonten entfernen möchten.
- 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.
So fügen Sie Hauptkonten hinzu:
- Klicken Sie auf Hauptkonto hinzufügen.
- Geben Sie im Feld Neue Hauptkonten eine oder mehrere Identitäten ein, die Zugriff auf den Dienst benötigen.
- Wählen Sie im Menü Rollen zuweisen eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.
- Klicken Sie auf Speichern.
So entfernen Sie Hauptkonten:
- Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten. Dort werden alle Rollen angezeigt, die diesem Hauptkonto zugewiesen sind.
- Klicken Sie in der Zeile des Hauptkontos auf den Papierkorb.
- Im Bestätigungsdialogfeld können Sie dieses Hauptkonto aus allen Rollen im Job entfernen. Klicken Sie auf Entfernen, um das Hauptkonto aus der Rolle zu entfernen.
gcloud
Erstellen Sie eine IAM-Richtlinie:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
Führen Sie den Befehl gcloud run jobs set-iam-policy aus:
gcloud run jobs set-iam-policy JOB_NAME policy.json
Eine Liste der zulässigen Werte für PRINCIPAL finden Sie unter Hauptkonto-IDs.
Eine Liste der zulässigen Werte für ROLE finden Sie unter IAM-Rollen für Cloud Run.
So führen Sie einen Bulk-Vorgang zum Hinzufügen oder Entfernen von Hauptkonten aus einem Worker-Pool aus:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen neben dem Worker-Pool, dem Sie Hauptkonten hinzufügen oder aus dem Sie Hauptkonten entfernen möchten. Klicken Sie nicht auf den Worker-Pool selbst.
- Wählen Sie den Worker-Pool aus, dem Sie Hauptkonten hinzufügen oder aus dem Sie Hauptkonten entfernen möchten.
- 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.
So fügen Sie Hauptkonten hinzu:
- Klicken Sie auf Hauptkonto hinzufügen.
- Geben Sie im Feld Neue Hauptkonten eine oder mehrere Identitäten ein, die Zugriff auf Ihren Worker-Pool benötigen.
- Wählen Sie im Menü Rollen zuweisen eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.
- Klicken Sie auf Speichern.
So entfernen Sie Hauptkonten:
- Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten. Dort werden alle Rollen angezeigt, die diesem Hauptkonto zugewiesen sind.
- Klicken Sie in der Zeile des Hauptkontos auf den Papierkorb.
- Im Bestätigungsdialogfeld können Sie dieses Hauptkonto aus allen Rollen im Worker-Pool entfernen. Klicken Sie auf Entfernen, um das Hauptkonto aus der Rolle zu entfernen.
gcloud
Erstellen Sie eine IAM-Richtlinie:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
Führen Sie den Befehl gcloud run worker-pools set-iam-policy aus:
gcloud run worker-pools set-iam-policy WORKER_POOL policy.json
Eine Liste der zulässigen Werte für PRINCIPAL finden Sie unter Hauptkonto-IDs.
Eine Liste der zulässigen Werte für ROLE finden Sie unter IAM-Rollen für Cloud Run.
Hauptkonten ansehen
So rufen Sie Hauptkonten für einen Dienst auf:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen links neben dem Dienst, den Sie für Hauptkonten und Rollen aufrufen möchten. Klicken Sie nicht auf den Dienst selbst.
- Wählen Sie den Dienst aus, den Sie für Hauptkonten und Rollen aufrufen möchten.
- 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.
- Die Liste der Rollen und Hauptkonten wird nach zugeteilten Rollen gruppiert angezeigt.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run services get-iam-policy SERVICE_NAME
So rufen Sie Hauptkonten für einen Job auf:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen links neben dem Job, dem Sie Hauptkonten hinzufügen möchten. Klicken Sie nicht auf den Job selbst.
- Wählen Sie den Job aus, den Sie für Hauptkonten und Rollen aufrufen möchten.
- 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.
- Die Liste der Rollen und Hauptkonten wird nach zugeteilten Rollen gruppiert angezeigt.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run jobs get-iam-policy JOB_NAME
So rufen Sie Hauptkonten für einen Worker-Pool auf:
Console
- Rufen Sie die Google Cloud Console auf:
- Klicken Sie auf das Kästchen neben dem Workerpool, den Sie für Hauptkonten und Rollen aufrufen möchten. Klicken Sie nicht auf den Worker-Pool selbst.
- Wählen Sie den Worker-Pool aus, den Sie für Hauptkonten und Rollen aufrufen möchten.
- 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.
- Die Liste der Rollen und Hauptkonten wird nach zugeteilten Rollen gruppiert angezeigt.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run worker-pools get-iam-policy WORKER_POOL
Zugriff auf alle Cloud Run-Ressourcen in einem Projekt steuern
Wenn Sie Hauptkonten in allen Diensten und Jobs eines Projekts Rollen zuweisen möchten, können Sie IAM auf Projektebene verwenden.
Console
Rufen Sie die Google Cloud Console auf:
Suchen Sie das Hauptkonto, dem Sie eine projektweite Rolle zuweisen möchten.
Klicken Sie rechts neben dem Hauptkonto auf das Bleistiftsymbol.
Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie die gewünschte Rolle aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie den Befehl gcloud projects add-iam-policy-binding aus:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Ersetzen Sie Folgendes:
PROJECT_ID: die ID Ihres Google Cloud-Projekts.PRINCIPAL: Das Hauptkonto (z. B.user:email@domain.com).ROLE: Die Rolle, z. B.roles/run.admin.
Ersetzen Sie Folgendes:
SERVICE_NAME: Der Dienstname, z. B.my-service.PRINCIPAL: Das Hauptkonto (z. B.user:email@domain.com).ROLE: Die Rolle, z. B.roles/run.invoker.REGION: Die Region (z. B.europe-west1).KEY=VALUE: Eine Bedingung, die in die Bindung aufgenommen werden soll. Das Flag--conditionmuss die Schlüssel/Wert-Paareexpressionundtitleenthalten.
Hinweis: Die Hauptkontotypen allUsers und allAuthenticatedUsers können nicht auf Projektebene angewendet werden, sondern müssen jedem Dienst einzeln hinzugefügt werden.
Dienst öffentlich machen
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
allUsersdie 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.createrun.services.updaterun.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 deploymit dem Flag--no-invoker-iam-check:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
Ersetzen Sie
SERVICE_NAMEdurch den Namen des Dienstes.Verwenden Sie für einen vorhandenen Dienst den Befehl
gcloud run services updatemit 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
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:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
invoker_iam_disabled = true
template {
containers {
image = "IMAGE_URL"
}
}
}
Ersetzen Sie Folgendes:
- SERVICE: Der Name Ihres Cloud Run-Dienstes.
- REGION: die Google Cloud Region, z. B.
europe-west1. - IMAGE_URL: ein Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latestWenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das FormatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
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 Dienste für Cloud Run auf:
Klicken Sie auf den Dienst und dann auf Sicherheit.
Wählen Sie Authentifizierung erforderlich und dann Identitäts- und Zugriffsverwaltung (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_NAMEdurch 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_NAMEdurch den Namen Ihres Cloud Run-Dienstes.
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:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
invoker_iam_disabled = false
template {
containers {
image = "IMAGE_URL"
}
}
}
Ersetzen Sie Folgendes:
- SERVICE: Der Name Ihres Cloud Run-Dienstes.
- REGION: die Google Cloud Region, z. B.
europe-west1. - IMAGE_URL: ein Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latestWenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das FormatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
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 des Aufrufers 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 Dienste für 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.
IAM-Bedingungen verwenden
Mit IAM-Bedingungen können Sie eine bedingte, attributbasierte Zugriffssteuerung für bestimmte Cloud Run-Ressourcen definieren und erzwingen. Cloud Run unterstützt die Bedingungsattribute (request.host) und (request.path), um bedingten Zugriff beim Aufrufen von Cloud Run-Diensten und Worker-Pools zu gewähren.
Wenn Sie beispielsweise beim Aufrufen von Cloud Run-Diensten bedingten Zugriff mit den Attributen request.host und request.path gewähren möchten, fügen Sie das Feld condition hinzu, wenn Sie den folgenden Befehl ausführen:
gcloud run services add-iam-policy-binding SERVICE_NAME \
--member=PRINCIPAL \
--role=ROLE \
--region=REGION \
--condition=[KEY=VALUE,...]
Ersetzen Sie Folgendes:
SERVICE_NAME: Der Dienstname, z. B.my-service.PRINCIPAL: Das Hauptkonto (z. B.user:email@domain.com).ROLE: Die Rolle, z. B.roles/run.invoker.REGION: Die Region (z. B.europe-west1).KEY=VALUE: Eine Bedingung, die in die Bindung aufgenommen werden soll. Das Flag--conditionmuss die Schlüssel/Wert-Paareexpressionundtitleenthalten.
Nächste Schritte
Erfahren Sie, wie Sie Entwickler, Dienste und Nutzer für die soeben gespeicherten Dienste sicher authentifizieren.