Auf dieser Seite wird beschrieben, wie Sie Berechtigungen zum Zugriff auf Ressourcen erteilen, ändern und entziehen. Mithilfe detaillierter IAM-Rollen können Sie Nutzern unterschiedliche Zugriffsebenen zuweisen und so den Zugriff auf Ihre Ressourcen fein abgestuft steuern.
Nutzerrollen können mit der Cloud Console, mit dem
gcloud
-Befehlszeilentool, der REST API oder den Clientbibliotheken verwaltet werden. Die Verwendung der Cloud Console ist die einfachste Methode und wird in der ersten Hälfte dieses Artikels beschrieben, ebenso wie die schnelle Aktualisierung mithilfe des gcloud
-Befehlszeilentools.
Die programmgesteuerten Methoden für komplexere Szenarien werden in der zweiten Hälfte behandelt.
Wenn Sie IAM mit Identity-Aware Proxy (IAP) verwenden möchten, um den Zugriff auf Ihre Anwendungen zu schützen, finden Sie Informationen dazu in der Dokumentation zu IAP.
Hinweis
Erforderliche Berechtigungen
Sie benötigen eine Rolle mit den folgenden Berechtigungen, um den Zugriff auf ein Projekt zu verwalten:
resourcemanager.projects.get
resourcemanager.projects.getIamPolicy
resourcemanager.projects.setIamPolicy
Damit Sie diese Berechtigungen erhalten und gleichzeitig das Prinzip der geringsten Berechtigung anwenden, bitten Sie Ihren Administrator, Ihnen eine der folgenden Rollen zu gewähren:
- Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin
) - Sicherheitsadministrator (
roles/iam.securityAdmin
)
Alternativ kann Ihr Administrator Ihnen eine andere Rolle mit den erforderlichen Berechtigungen zuweisen, z. B. eine benutzerdefinierte Rolle oder eine vordefinierte Rolle mit mehr Berechtigungen.
Mit der Cloud Console
Mit der Cloud Console können Sie die Rollen Ihrer Mitglieder schnell und einfach verwalten. IAM-Mitglieder können Nutzer, Dienstkonten, Google-Gruppen und Domains sein.
Aktuelle Zugriffsrechte ansehen
So sehen Sie sich die IAM-Rollen an, die Ihre Mitglieder für ein Projekt und dessen Ressourcen haben:
Rufen Sie in der Cloud Console die Seite IAM auf.
Auf dieser Seite werden alle Mitglieder Ihres Projekts angezeigt, die IAM-Rollen für Ihr Projekt haben.
Optional: Wenn Sie sich die Rollenzuweisungen für Von Google verwaltete Dienstkonten ansehen möchten, wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.
Zugriff gewähren
So weisen Sie einem Mitglied eine IAM-Rolle für ein Projekt zu:
Rufen Sie in der Cloud Console die Seite IAM auf.
Klicken Sie auf Hinzufügen.
Geben Sie eine E-Mail-Adresse ein. Sie können Einzelpersonen, Dienstkonten oder Google Groups als Mitglieder hinzufügen. Jedes Projekt muss jedoch mindestens eine Einzelperson als Mitglied enthalten.
Wählen Sie eine Rolle aus. Über die Rolle erhalten Mitglieder die geeignete Berechtigungsebene. Als wichtige Sicherheitsmaßnahme empfehlen wir dringend, einem Mitglied nur die geringstmögliche Anzahl an notwendigen Berechtigungen zu gewähren. Mitglieder mit Berechtigungen auf Inhaberebene sind auch Projektinhaber und können alle Aspekte des Projekts verwalten. Sie können auch Projekte beenden.
Klicken Sie auf Speichern.
So weisen Sie einem Mitglied eine Rolle für mehrere Projekte zu:
Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.
Wählen Sie alle Projekte aus, für die Sie Berechtigungen erteilen möchten.
Klicken Sie auf Infofeld ansehen und den Tab Berechtigungen.
Geben Sie eine E-Mail-Adresse in das Feld Neue Mitglieder ein und wählen Sie die gewünschte Rolle aus dem Drop-down-Menü aus.
Klicken Sie auf Speichern. Dem Mitglied wird die ausgewählte Rolle für alle ausgewählten Projekte zugewiesen.
Zugriff widerrufen
Rufen Sie in der Cloud Console die Seite IAM auf.
Suchen Sie das Mitglied, dem Sie die Zugriffsrechte entziehen möchten, und klicken Sie auf der rechten Seite auf die Schaltfläche Bearbeiten
.Klicken Sie für alle Rollen, die entzogen werden sollen, auf Löschen
und dann auf Speichern.
Zugriff ändern
Es gibt kein spezielles Verfahren zum Ändern von Zugriffsrechten. Folgen Sie den Schritten zum Zuweisen und Entziehen von Zugriffsrechten, bis das Mitglied die gewünschten Rollen hat.
gcloud für schnelle Aktualisierungen verwenden
Mit den Befehlen add-iam-policy-binding
und remove-iam-policy-binding
des gcloud
-Befehlszeilentools können Sie eine einzelne Rolle hinzufügen oder widerrufen.
Zugriff gewähren
Wenn Sie einem Mitglied schnell eine Rolle zuweisen möchten, führen Sie den Befehl add-iam-policy-binding
des gcloud
-Tools aus:
gcloud group add-iam-policy-binding resource \ --member=member --role=role-id
Geben Sie folgende Werte an:
group
: Die Gruppe desgcloud
-Tools für die Ressource, die Sie aktualisieren möchten. Sie können z. B.projects
oderorganizations
verwenden.resource
: Name der Ressource.member
: Die Kennung für das Mitglied, in der Regel im Formatmember-type:id
. Beispiel:user:my-user@example.com
. Eine vollständige Liste der fürmember
zulässigen Werte finden Sie in der Referenz zur Richtlinienbindung.role-id
: Name der Rolle.
Wenn Sie beispielsweise dem Nutzer my-user@example.com
die Rolle Betrachter für das Projekt my-project
zuweisen möchten:
gcloud projects add-iam-policy-binding my-project \ --member=user:my-user@example.com --role=roles/viewer
Zugriff widerrufen
Wenn Sie die Rolle eines Nutzers schnell widerrufen möchten, führen Sie den Befehl remove-iam-policy-binding
des gcloud
-Tools aus:
gcloud group remove-iam-policy-binding resource \ --member=member --role=role-id
Geben Sie folgende Werte an:
group
: Die Gruppe desgcloud
-Tools für die Ressource, die Sie aktualisieren möchten. Sie können z. B.projects
oderorganizations
verwenden.resource
: Name der Ressource.member
: Die Kennung für das Mitglied, in der Regel im Formatmember-type:id
. Beispiel:user:my-user@example.com
. Eine vollständige Liste der fürmember
zulässigen Werte finden Sie in der Referenz zur Richtlinienbindung.role-id
: Name der Rolle.
Für das Widerrufen der Rolle Betrachter des Nutzers my-user@example.com
für das Projekt my-project
geben Sie beispielsweise Folgendes ein:
gcloud projects remove-iam-policy-binding my-project \ --member=user:my-user@example.com --role=roles/viewer
Zugriff programmatisch steuern
In einigen Anwendungsfällen ist es einfacher, die Zugriffssteuerung programmatisch zu verwalten. Sie können das gcloud
-Befehlszeilentool, die REST API oder die Clientbibliotheken verwenden, um den Zugriff programmatisch zu steuern. Programmatische Methoden sind besonders für umfangreiche oder automatische Aktualisierungen geeignet, deren Ausführung in der Cloud Console oder durch Starten von gcloud
-Befehlen für jedes Mitglied zeitaufwendig sind.
IAM-Richtlinien im Überblick
Der Zugriff auf Ressourcen wird über eine IAM-Richtlinie verwaltet. In einer Richtlinie sind alle Bindungen zusammengestellt, die ein Mitglied, z. B. ein Nutzer- oder Dienstkonto, mit einer Rolle verknüpfen. Richtlinien werden im JSON- oder YAML-Format dargestellt.
Das folgende Beispiel zeigt eine Richtlinie, bei der dem Nutzer fatima@example.com
die Rolle Inhaber und den Nutzern wei@example.com
und service-account-13@appspot.gserviceaccount.com
die Rolle Bearbeiter zugewiesen wurde:
{
"bindings": [
{
"role": "roles/owner",
"members": [
"user:fatima@example.com"
]
},
{
"role": "roles/editor",
"members": [
"serviceAccount:service-account-13@appspot.gserviceaccount.com",
"user:wei@example.com"
]
}
],
"etag": "BwUjMhCsNvY=",
"version": 1
}
Sie können die Richtlinie einer Ressource nach dem Muster Read-Modify-Write (Lesen-Ändern-Schreiben) aktualisieren. Das heißt, es gibt keine unterschiedlichen Verfahren zum Erstellen, Ändern oder Entziehen von Zugriffsrechten. Stattdessen werden alle Änderungen so durchgeführt:
- Aktuelle Richtlinie durch Aufrufen von
getIamPolicy()
lesen. - Zurückgegebene Richtlinie entweder mithilfe eines Texteditors oder programmgesteuert bearbeiten. Dabei Mitglieder und ihre Rollenzuteilungen nach Wunsch hinzufügen oder entfernen.
- Aktualisierte Richtlinie durch Aufrufen von
setIamPolicy()
schreiben.
Es ist üblich, Berechtigungen für ein gesamtes Projekt oder eine Organisation zu erteilen. Sie können Richtlinien jedoch auch für eine Vielzahl von Google Cloud-Ressourcen wie Compute Engine-Instanzen oder Cloud Storage-Buckets detaillierter festlegen. Eine vollständige Liste der Rollen und der niedrigsten Ressourcenebene, für die Sie die Rollen vergeben können, finden Sie unter Informationen zu Rollen.
Aktuelle Richtlinie abrufen
gcloud
Führen Sie den Befehl get-iam-policy
für die Ressource aus. Das folgende Beispiel zeigt den Befehl get-iam-policy
für Projekte:
gcloud projects get-iam-policy project-id --format=format > filepath
Geben Sie folgende Werte an:
project-id
: Das Projekt, das Sie aktualisieren möchten (z. B.my-project
).format
: Den Wertjson
oderyaml
.filepath
: Den Pfad zu einer neuen Ausgabedatei für die Richtlinie.
Mit dem folgenden Befehl wird beispielsweise die Richtlinie für das Projekt my-project
im JSON-Format abgerufen und im Basisverzeichnis des Nutzers gespeichert:
gcloud projects get-iam-policy my-project --format json > ~/policy.json
REST
Die Methode projects.getIamPolicy
der Resource Manager API ruft die IAM-Richtlinie eines Projekts ab.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
project-id
: Ihre Google Cloud-Projekt-ID.policy-version
: Die Richtlinienversion, die zurückgegeben werden soll. Anfragen sollten die neueste Richtlinienversion angeben. Diese ist Richtlinienversion 3. Weitere Informationen finden Sie unter Richtlinienversion beim Abrufen einer Richtlinie festlegen.
HTTP-Methode und URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/project-id:getIamPolicy
JSON-Text anfordern:
{ "options": { "requestedPolicyVersion": policy-version } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten ungefähr so eine JSON-Antwort erhalten:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:project-owner@example.com" ] }, { "role": "roles/iam.securityReviewer", "members": [ "user:fatima@example.com" ] } ] }
C#
Richten Sie für dieses Beispiel C# wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C# API.
Java
Richten Sie für dieses Beispiel Java wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Java API.
Python
Richten Sie für dieses Beispiel Python wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Python API.
Richtlinie ändern
Passen Sie die lokale Kopie Ihrer Projektrichtlinie programmgesteuert oder mithilfe eines Texteditors so an, dass sie die Rollen widerspiegelt, die Sie bestimmten Nutzern gewähren oder entziehen möchten.
Rolle zuweisen
Ändern Sie die Rollenbindungen in der Richtlinie, um Ihren Mitgliedern Rollen zuzuweisen. Informationen zu den Rollen, die Sie zuweisen können, finden Sie unter Informationen zu Rollen.
So weisen Sie eine Rolle zu, die bereits in der Richtlinie enthalten ist:
gcloud
Zum Zuweisen einer Rolle bearbeiten Sie die vom Befehl get-iam-policy
zurückgegebene JSON- oder YAML-Richtlinie entsprechend. Beachten Sie, dass diese Richtlinienänderung erst wirksam wird, wenn Sie die aktualisierte Richtlinie festgelegt haben.
Im folgenden Beispiel wird wei@example.com
die Rolle "Sicherheitsprüfer" (roles/iam.securityReviewer
) zugewiesen.
Zum Zuweisen der Rolle hängen Sie den Nutzer an das Array members
für die Bindung an:
{
"role": "roles/iam.securityReviewer",
"members": [
"user:fatima@example.com",
"user:wei@example.com"
]
}
REST
Zum Zuweisen einer Rolle bearbeiten Sie die vom Befehl get-iam-policy
zurückgegebene JSON- oder YAML-Richtlinie entsprechend. Beachten Sie, dass diese Richtlinienänderung erst wirksam wird, wenn Sie die aktualisierte Richtlinie festgelegt haben.
Im folgenden Beispiel wird wei@example.com
die Rolle "Sicherheitsprüfer" (roles/iam.securityReviewer
) zugewiesen. Zum Zuweisen der Rolle hängen Sie den Nutzer an das Array members
für die Bindung an:
{
"role": "roles/iam.securityReviewer",
"members": [
"user:fatima@example.com",
"user:wei@example.com"
]
}
C#
Richten Sie für dieses Beispiel C# wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C# API.
Java
Richten Sie für dieses Beispiel Java wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Java API.
Python
Richten Sie für dieses Beispiel Python wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Python API.
Wenn Sie eine Rolle zuweisen möchten, die in der Richtlinie noch nicht enthalten ist, fügen Sie eine neue binding
hinzu.
gcloud
Zum Hinzufügen einer neuen Bindung bearbeiten Sie die vom Befehl get-iam-policy
zurückgegebene JSON- oder YAML-Richtlinie entsprechend. Beachten Sie, dass diese Richtlinienänderung erst wirksam wird, wenn Sie die aktualisierte Richtlinie festgelegt haben.
Im folgenden Beispiel wird fatima@example.com
die Rolle "Leser" zugewiesen. Fügen Sie zum Zuweisen dieser Rolle eine neue Bindung zum Array bindings
für die Richtlinie hinzu:
{
"role": "roles/reader",
"members": [
"user:fatima@example.com"
]
}
REST
Zum Hinzufügen einer neuen Bindung bearbeiten Sie die vom Befehl get-iam-policy
zurückgegebene JSON- oder YAML-Richtlinie entsprechend. Beachten Sie, dass diese Richtlinienänderung erst wirksam wird, wenn Sie die aktualisierte Richtlinie festgelegt haben.
Im folgenden Beispiel wird fatima@example.com
die Rolle "Leser" zugewiesen. Fügen Sie zum Zuweisen dieser Rolle eine neue Bindung zum Array bindings
für die Richtlinie hinzu:
{
"role": "roles/reader",
"members": [
"user:fatima@example.com"
]
}
C#
Richten Sie für dieses Beispiel C# wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C# API.
Java
Richten Sie für dieses Beispiel Java wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Java API.
Python
Richten Sie für dieses Beispiel Python wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Python API.
Sie können nur Rollen zuweisen, die sich auf aktivierte API-Dienste beziehen. Wenn zum Beispiel Compute Engine nicht aktiv ist, können Sie keine Rollen zuweisen, die sich ausschließlich auf Compute Engine beziehen. Weitere Informationen finden Sie unter APIs aktivieren und deaktivieren.
Für die Gewährung von Berechtigungen für Projekte gelten einige spezielle Beschränkungen, insbesondere, wenn es um die Rolle Inhaber geht. Weitere Informationen finden Sie in der Referenzdokumentation zu projects.setIamPolicy()
.
Rolle widerrufen
So entziehen Sie eine Rolle:
gcloud
Zum Widerrufen einer Rolle bearbeiten Sie die vom Befehl get-iam-policy
zurückgegebene JSON- oder YAML-Richtlinie entsprechend. Die Richtlinienänderung tritt erst in Kraft, wenn Sie die aktualisierte Richtlinie festgelegt haben.
Um eine Rolle für ein Mitglied zu widerrufen, löschen Sie die gewünschten Mitglieder oder Bindungen aus dem Array bindings
für die Richtlinie.
REST
Zum Widerrufen einer Rolle bearbeiten Sie die vom Befehl get-iam-policy
zurückgegebene JSON- oder YAML-Richtlinie entsprechend. Die Richtlinienänderung tritt erst in Kraft, wenn Sie die aktualisierte Richtlinie festgelegt haben.
Um eine Rolle für ein Mitglied zu widerrufen, löschen Sie die gewünschten Mitglieder oder Bindungen aus dem Array bindings
für die Richtlinie.
C#
Richten Sie für dieses Beispiel C# wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM C# API.
Java
Richten Sie für dieses Beispiel Java wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Java API.
Python
Richten Sie für dieses Beispiel Python wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Python API.
Richtlinie festlegen
Nachdem Sie die Richtlinie geändert haben, um die gewünschten Rollen zuzuweisen, rufen Sie setIamPolicy()
auf, um Aktualisierungen vorzunehmen.
gcloud
Verwenden Sie den Befehl set-iam-policy
und geben Sie den Pfad zur JSON-Datei an, die die aktualisierte Richtlinie enthält. Das folgende Beispiel zeigt den Befehl set-iam-policy
für Projekte:
gcloud projects set-iam-policy project-id filepath
Geben Sie folgende Werte an:
project-id
: Das Projekt, das Sie aktualisieren möchten (z. B.my-project
).filepath
: Der Pfad zu einer Datei, die die neue Richtlinie enthält.
Die Antwort enthält die aktualisierte Richtlinie.
REST
Die Methode projects.setIamPolicy
der Resource Manager API legt die Richtlinie in der Anfrage als neue IAM-Richtlinie des Projekts fest.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
project-id
: Ihre Google Cloud-Projekt-ID.policy
: Eine JSON-Darstellung der Richtlinie, die Sie festlegen möchten. Weitere Informationen zum Format einer Richtlinie finden Sie in der Richtlinienreferenz.
HTTP-Methode und URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/project-id:setIamPolicy
JSON-Text anfordern:
{ "policy": { policy } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält die aktualisierte Richtlinie.
C#
Java
Richten Sie für dieses Beispiel Java wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Java API.
Python
Richten Sie für dieses Beispiel Python wie in der IAM-Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Python API.
Die Richtlinie enthält einen etag
-Wert, um Konflikte zu vermeiden, wenn mehrere Quellen gleichzeitig versuchen, die Richtlinie zu aktualisieren. Wenn Sie setIamPolicy()
aufrufen, vergleicht IAM den etag
-Wert in der Anfrage mit dem vorhandenen etag
und schreibt die Richtlinie nur, wenn die Werte übereinstimmen.
Nächste Schritte
- Weitere Informationen zum Verwalten des Zugriffs auf Ordner.
- Weitere Informationen zum Verwalten des Zugriffs auf Organisationen.
- Weitere Informationen zu den verfügbaren IAM-Rollen.
- Verwenden Sie die Richtlinien-Fehlerbehebung, um zu verstehen, warum ein Nutzer Zugriff auf eine Ressource hat oder nicht oder über die Berechtigung zum Aufrufen einer API verfügt.
- Hier erfahren Sie, wie Sie die Rollen aufrufen, die Sie einer bestimmten Ressource zuweisen können.
- Informationen zum Erteilen des Zugriffs eines Mitglieds mit bedingten Rollenbindungen
- Hier erfahren Sie, wie Sie Ihre Anwendungen mit dem Identity-Aware Proxy sichern können.