Zugriffssteuerung in der Konfiguration festlegen

Mit Identity and Access Management (IAM) können Sie den Zugriff auf Ihre Ressourcen in Google Cloud steuern. Mit IAM können Sie Berechtigungen einrichten, um zu bestimmen, wer welche Art von Zugriff auf bestimmte Ressourcen in Ihrem Projekt hat. Eine Einführung in IAM finden Sie in der IAM-Übersicht.

Wenn Sie Ressourcen bereitstellen, können Sie auch steuern, wer Zugriff auf diese Ressourcen hat, indem Sie in Ihrer Konfiguration eine IAM-Richtlinie festlegen. Wenn Sie beispielsweise Pub/Sub-Themen erstellen möchten, die von bestimmten Nutzern verwaltet werden können, geben Sie in der Konfiguration eine IAM-Richtlinie an, um Deployment Manager entsprechend zu informieren. Wenn Sie Ihre Bereitstellung erstellen oder aktualisieren, ruft Deployment Manager die IAM API auf, um die entsprechenden Berechtigungen für die Ressource festzulegen.

Hinweis

  • Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten, installieren Sie das gcloud-Befehlszeilentool.
  • Wenn Sie die API-Beispiele in dieser Anleitung verwenden möchten, richten Sie den API-Zugriff ein.

IAM-Richtlinien in Deployment Manager verwenden

Eine IAM-Richtlinie ist eine Sammlung von Nutzern und ihren Rollen. Sie können eine IAM-Richtlinie mithilfe einer einfachen oder vordefinierten Rolle auf Projektebene festlegen. Einige Dienste, wie z. B. Cloud Pub/Sub, unterstützen auch das Festlegen von IAM-Richtlinien auf Ressourcenebene.

Wenn ein Dienst die Festlegung von IAM-Richtlinien auf Ressourcenebene nicht unterstützt, gibt Deployment Manager den Fehler NO_METHOD_TO_UPDATE_ACCESS_CONTROL zurück.

Eine Liste der Rollen und Ressourcen, auf die diese Richtlinien angewendet werden können, finden Sie unter Informationen zu Rollen.

Deployment Manager Berechtigung zur Festlegung von IAM-Richtlinien gewähren

Deployment Manager verwendet das Google APIs-Dienstkonto, um andere Google APIs aufzurufen und verwaltet für Sie Google Cloud-Ressourcen. Sie müssen dem Google APIs-Dienstkonto Ihres Projekts die einfache roles/owner-Rolle zuweisen, damit es die in Ihren Konfigurationen definierten IAM-Richtlinien anwenden kann.

  1. Rufen Sie in der Google Cloud Console Ihres Projekts die IAM-Seite auf.

    Zur IAM-Seite

  2. Wählen Sie bei Aufforderung Ihr Projekt aus der Liste aus.
  3. Suchen Sie nach dem Google APIs-Dienstkonto, dessen E-Mail-Adresse folgendes Format hat:

    [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
    
  4. Gewähren Sie dem API-Dienstkonto die roles/owner-Rollen:

    Console

    1. Erweitern Sie in der Google Cloud Console die Drop-down-Liste Rollen für das Google APIs-Dienstkonto und wählen Sie Projekt > Inhaber aus.
    2. Klicken Sie auf Speichern, um die Änderungen zu speichern.

    gcloud

    Fügen Sie mit der Google Cloud CLI der IAM-Richtlinie eine Bindung für das Projekt hinzu:

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
        --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/owner

    Dabei gilt:

    • [PROJECT_ID] ist die ID des Projekts.
    • [SERVICE_ACCOUNT_EMAIL] ist die E-Mail-Adresse des Dienstkontos.

    Beispiel:

    gcloud projects add-iam-policy-binding database-images \
        --member serviceAccount:123456789012@cloudservices.gserviceaccount.com  \
        --role roles/owner

    API

    Stellen Sie in der API eine POST-Anfrage an die folgende URL, wobei [PROJECT_ID] die ID des Projekts ist:

    POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
    

    Der Anfragetext soll eine Liste der Bindungen enthalten, die für dieses Projekt gelten sollen. Die Rolle roles/owner muss Teil der Bindung sein. Beispiel:

    {
        "policy": {
            "version": "0",
            "bindings": [
                {
                    "role": "roles/owner",
                    "members": [
                        "user:example@gmail.com",
                        "serviceAccount:123456789012@cloudservices.gserviceaccount.com"
                    ]
                }
            ]
        }
    }
    

IAM-Richtlinie in Konfiguration festlegen

Als Nächstes können Sie in Ihrer Konfiguration oder Vorlage eine IAM-Richtlinie festlegen. Dazu führen Sie folgende Schritte aus:

  1. Fügen Sie den Abschnitt accessControl der übergeordneten Konfiguration für jede Ressource hinzu, für die Sie Zugriffssteuerungsrichtlinien anwenden möchten.

  2. Geben Sie den gewünschten Abschnitt gcpIamPolicy für die Ressource an. Jede IAM-Richtlinie kann eine Liste mit Bindungen enthalten. Jede Bindung bindet eine Liste von Mitgliedern an eine Rolle.

    Wenn Sie accessControl zum Verwalten von Dienstkonten verwenden, erhalten Sie hier weitere Informationen zum Verwalten von Dienstkonten.

Der folgende accessControl-Abschnitt fügt beispielsweise Bindungen hinzu, die Nutzern die folgenden Rollen zuweisen:

User Role
alice@example.com roles/pubsub.editor
  • my-other-app@appspot.gserviceaccount.com
  • jane@example.com
roles/pubsub.publisher
resources:
- name: a-new-pubsub-topic
  type: pubsub.v1.topic
  properties:
    ...

  accessControl:
    gcpIamPolicy:
      bindings:
      - role: roles/pubsub.editor
        members:
        - "user:alice@example.com"
      - role: roles/pubsub.publisher
        members:
        - "user:jane@example.com"
        - "serviceAccount:my-other-app@appspot.gserviceaccount.com"

Weitere Informationen über IAM-Richtlinien finden Sie unter IAM-Dokumentation.