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.
- Rufen Sie in der Google Cloud Console Ihres Projekts die IAM-Seite auf.
- Wählen Sie bei Aufforderung Ihr Projekt aus der Liste aus.
Suchen Sie nach dem Google APIs-Dienstkonto, dessen E-Mail-Adresse folgendes Format hat:
[PROJECT_NUMBER]@cloudservices.gserviceaccount.com
Gewähren Sie dem API-Dienstkonto die
roles/owner
-Rollen:Console
- 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.
- 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:
Fügen Sie den Abschnitt
accessControl
der übergeordneten Konfiguration für jede Ressource hinzu, für die Sie Zugriffssteuerungsrichtlinien anwenden möchten.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 |
|
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.