Zugriffssteuerung mit IAM

Standardmäßig können Dienste und Jobs 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.

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 und Jobs 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 und Jobs 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 und Jobausführungen aufrufen.
Kann IAM-Richtlinien abrufen.
Kann Empfehlungen aufrufen.
Cloud Run-Aufrufer (roles/run.invoker) Kann Dienste und Jobs aufrufen und Jobausführungen abbrechen.

Zugriff auf einen einzelnen Dienst oder Job steuern

Sie können den Zugriff individuell für Dienste oder Jobs steuern.

Dienst öffentlich machen

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:

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Klicken Sie auf das Kästchen links neben dem Dienst, den Sie veröffentlichen möchten. (Klicken Sie nicht auf den Dienst selbst.)

  3. 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.

  4. Klicken Sie auf Hauptkonto hinzufügen.

Geben Sie in das Textfeld Neue Hauptkonten den Wert allUsers ein.

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

  2. Klicken Sie auf Speichern.

  3. 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:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

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:

resource "google_cloud_run_service_iam_binding" "default" {
  location = google_cloud_run_v2_service.default.location
  service  = google_cloud_run_v2_service.default.name
  role     = "roles/run.invoker"
  members = [
    "allUsers"
  ]
}

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.

Hauptkonten hinzufügen

Sie können einem Job oder einem Dienst Hauptkonten hinzufügen.

Hauptkonten zu einem Dienst hinzufügen

So fügen Sie einem Dienst Hauptkonten hinzu:

Konsolenbasierte Benutzeroberfläche

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Klicken Sie auf das Kästchen links neben dem Dienst, dem Sie Hauptkonten hinzufügen möchten. (Klicken Sie nicht auf den Dienst selbst.)

  3. 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.

  4. Klicken Sie auf Hauptkonto hinzufügen.

  5. Geben Sie in das Textfeld Neue Hauptkonten eine oder mehrere Identitäten ein, die Zugriff auf den Dienst benötigen.

  6. Wählen Sie aus dem Drop-down-Menü Rolle eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.

  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_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

Dabei ist SERVICE_NAME der Dienstname, MEMBER_TYPE der Hauptkontotyp (z. B. user:email@domain.com) und ROLE die Rolle.

Eine Liste der zulässigen Werte für MEMBER_TYPE finden Sie auf der Seite für IAM-Konzepte. Eine Liste der zulässigen Werte für ROLE finden Sie unter IAM-Rollen für Cloud Run.

Hauptkonten zu einem Job hinzufügen

So fügen Sie einem Job Hauptkonten hinzu:

Konsolenbasierte Benutzeroberfläche

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Klicken Sie auf das Kästchen links neben dem Job, dem Sie Hauptkonten hinzufügen möchten. (Klicken Sie nicht auf den Job selbst.)

  3. 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.

  4. Klicken Sie auf Hauptkonto hinzufügen.

  5. Geben Sie in das Textfeld Neue Hauptkonten eine oder mehrere Identitäten ein, die Zugriff auf den Job benötigen.

  6. Wählen Sie aus dem Drop-down-Menü Rolle eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.

  7. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl gcloud run jobs add-iam-policy-binding aus:

gcloud run jobs add-iam-policy-binding JOB_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

Dabei ist JOB_NAME der Jobname, MEMBER_TYPE der Hauptkontotyp (z. B. user:email@domain.com) und ROLE die Rolle.

Eine Liste der zulässigen Werte für MEMBER_TYPE finden Sie auf der Seite für IAM-Konzepte. Eine Liste der zulässigen Werte für ROLE finden Sie unter IAM-Rollen für Cloud Run.

Hauptkonten aus einer Rolle entfernen

Sie können Hauptkonten aus einem Dienst oder einem Job entfernen.

Hauptkonten aus einer Rolle für einen Dienst entfernen

So entfernen Sie Hauptkonten aus einer Rolle für einen Dienst:

Konsolenbasierte Benutzeroberfläche

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Klicken Sie auf das Kästchen links neben dem Dienst, für den Sie Hauptkonten entfernen möchten. (Klicken Sie nicht auf den Dienst selbst.)

  3. 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.

  4. Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten, in dem alle Rollen angezeigt werden, die diesem Hauptkonto zugewiesen sind.

  5. Klicken Sie auf den Papierkorb neben dem Hauptkonto in der gewünschten Rolle, um diese Rolle aus dem Hauptkonto zu entfernen.

  6. 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

Führen Sie den Befehl gcloud run services remove-iam-policy-binding aus:

  gcloud run services remove-iam-policy-binding SERVICE_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

Dabei ist SERVICE_NAME der Dienstname, MEMBER_TYPE der Hauptkontotyp (z. B. user:email@domain.com) und ROLE die Rolle.

Eine Liste der zulässigen Werte für MEMBER_TYPE finden Sie auf der Seite für IAM-Konzepte. Eine Liste der zulässigen Werte für ROLE finden Sie unter IAM-Rollen für Cloud Run.

Hauptkonten aus einer Rolle für einen Job entfernen

So entfernen Sie Hauptkonten aus einer Rolle für einen Job:

Konsolenbasierte Benutzeroberfläche

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Klicken Sie auf das Kästchen links neben dem Job, dem Sie Hauptkonten hinzufügen möchten. (Klicken Sie nicht auf den Job selbst.)

  3. 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.

  4. Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten, in dem alle Rollen angezeigt werden, die diesem Hauptkonto zugewiesen sind.

  5. Klicken Sie auf den Papierkorb neben dem Hauptkonto in der gewünschten Rolle, um diese Rolle aus dem Hauptkonto zu entfernen.

  6. 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

Führen Sie den Befehl gcloud run jobs remove-iam-policy-binding aus:

  gcloud run jobs remove-iam-policy-binding JOB_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

Dabei ist JOB_NAME der Jobname, MEMBER_TYPE der Hauptkontotyp (z. B. user:email@domain.com) und ROLE die Rolle.

Eine Liste der zulässigen Werte für MEMBER_TYPE finden Sie auf der Seite für IAM-Konzepte. Eine Liste der zulässigen Werte für ROLE finden Sie unter IAM-Rollen für Cloud Run.

Mehrere Hauptkonten auf einmal hinzufügen oder entfernen

Sie können mit einem Bulk-Vorgang mehrere Hauptkonten zu Diensten und Jobs hinzufügen oder aus ihnen entfernen.

Mehrere Hauptkonten für Dienste im Bulk hinzufügen und entfernen

So führen Sie einen Bulk-Vorgang zum Hinzufügen oder Entfernen von Hauptkonten aus einem Dienst aus:

Konsolenbasierte Benutzeroberfläche

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. 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.)

  3. Wählen Sie den Dienst aus, dem Sie Hauptkonten hinzufügen oder aus dem Sie Hauptkonten entfernen möchten.

  4. 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.

So fügen Sie Hauptkonten hinzu:

  1. Klicken Sie auf Hauptkonto hinzufügen.

  2. Geben Sie in das Textfeld Neue Hauptkonten eine oder mehrere Identitäten ein, die Zugriff auf den Dienst benötigen.

  3. Wählen Sie aus dem Drop-down-Menü Rolle eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.

  4. Klicken Sie auf Speichern.

So entfernen Sie Hauptkonten:

  1. Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten, in dem alle Rollen angezeigt werden, die diesem Hauptkonto zugewiesen sind.

  2. Klicken Sie auf den Papierkorb neben dem Hauptkonto in der gewünschten Rolle, um diese Rolle aus dem Hauptkonto zu entfernen.

  3. 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": [
        MEMBER_TYPE
      ]
    }
  ]
}
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 MEMBER_TYPE finden Sie auf der Seite für IAM-Konzepte. Eine Liste der zulässigen Werte für ROLE finden Sie unter IAM-Rollen für Cloud Run.

Mehrere Hauptkonten für Jobs im Bulk hinzufügen und entfernen

So führen Sie einen Bulk-Vorgang zum Hinzufügen oder Entfernen von Hauptkonten aus einem Job aus:

Konsolenbasierte Benutzeroberfläche

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Klicken Sie auf das Kästchen links neben dem Job, dem Sie Hauptkonten hinzufügen möchten. (Klicken Sie nicht auf den Job selbst.)

  3. Wählen Sie den Job aus, dem Sie Hauptkonten hinzufügen oder aus dem Sie Hauptkonten entfernen möchten.

  4. 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.

So fügen Sie Hauptkonten hinzu:

  1. Klicken Sie auf Hauptkonto hinzufügen.

  2. Geben Sie in das Textfeld Neue Hauptkonten eine oder mehrere Identitäten ein, die Zugriff auf den Dienst benötigen.

  3. Wählen Sie aus dem Drop-down-Menü Rolle eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.

  4. Klicken Sie auf Speichern.

So entfernen Sie Hauptkonten:

  1. Geben Sie das Hauptkonto ein, das Sie im Rollenlistenfilter entfernen möchten, in dem alle Rollen angezeigt werden, die diesem Hauptkonto zugewiesen sind.

  2. Klicken Sie auf den Papierkorb neben dem Hauptkonto in der gewünschten Rolle, um diese Rolle aus dem Hauptkonto zu entfernen.

  3. 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": [
        MEMBER_TYPE
      ]
    }
  ]
}
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 MEMBER_TYPE finden Sie auf der Seite für IAM-Konzepte. Eine Liste der zulässigen Werte für ROLE finden Sie unter IAM-Rollen für Cloud Run.

Hauptkonten ansehen

Sie können Hauptkonten für Dienste und Jobs aufrufen.

Hauptkonten für einen Dienst aufrufen

So rufen Sie Hauptkonten für einen Dienst auf:

Konsolenbasierte Benutzeroberfläche

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. 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.)

  3. Wählen Sie den Dienst aus, den Sie für Hauptkonten und Rollen aufrufen möchten.

  4. 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.

  5. Die Liste der Rollen und Hauptkonten wird nach zugeteilten Rollen gruppiert angezeigt.

gcloud

Führen Sie den Befehl gcloud run services get-iam-policy aus:

gcloud run services get-iam-policy SERVICE_NAME

Hauptkonten für einen Job aufrufen

So rufen Sie Hauptkonten für einen Job auf:

Konsolenbasierte Benutzeroberfläche

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Klicken Sie auf das Kästchen links neben dem Job, dem Sie Hauptkonten hinzufügen möchten. (Klicken Sie nicht auf den Job selbst.)

  3. Wählen Sie den Job aus, den Sie für Hauptkonten und Rollen aufrufen möchten.

  4. 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.

  5. Die Liste der Rollen und Hauptkonten wird nach zugeteilten Rollen gruppiert angezeigt.

gcloud

Führen Sie den Befehl gcloud run jobs get-iam-policy aus:

gcloud run jobs get-iam-policy JOB_NAME

Zugriff auf alle Dienste und Jobs 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.

Konsolenbasierte Benutzeroberfläche

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Suchen Sie das Hauptkonto, dem Sie eine projektweite Rolle zuweisen möchten.

  3. Klicken Sie rechts neben dem Hauptkonto auf das Bleistiftsymbol.

  4. Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie die gewünschte Rolle aus.

  5. 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=MEMBER_TYPE \
  --role=ROLE

Dabei ist MEMBER_TYPE der Hauptkontotyp (z. B. user:email@domain.com) und ROLE die Rolle (z. B. roles/run.admin).

Hinweis: Die Hauptkontotypen allUsers und allAuthenticatedUsers können nicht auf Projektebene angewendet werden, sondern müssen jedem Dienst einzeln hinzugefügt werden.

Nächste Schritte

Erfahren Sie, wie Sie Entwickler, Dienste und Nutzer für die soeben gespeicherten Dienste sicher authentifizieren.