Auf dieser Seite wird das Erstellen und Verwalten von benutzerdefinierten Rollen beschrieben.
Vorbereitung
- Lesen Sie den Abschnitt Informationen zu benutzerdefinierten IAM-Rollen. Hier finden Sie Best Practices und Informationen zu den Berechtigungen, die zum Erstellen von benutzerdefinierten Rollen erforderlich sind.
- Wenn Sie das Befehlszeilendienstprogramm
gcloud
verwenden, müssen Sie die Version 188.0.0 oder höher verwenden. Führen Sie den folgenden Befehl aus, umgcloud
auf die Version 188.0.0 zu aktualisieren:gcloud components update --version 188.0.0
Verfügbare Berechtigungen für eine Ressource abrufen
Bevor Sie eine benutzerdefinierte Rolle erstellen, möchten Sie möglicherweise wissen, welche Berechtigungen auf eine Ressource angewendet werden können. Mit dem gcloud
-Befehlszeilentool, der Google Cloud Console oder der Identity and Access Management API können Sie alle Berechtigungen abrufen, die auf eine Ressource angewendet werden können. Beispielsweise können Sie alle Berechtigungen abrufen, die Sie auf eine Organisation und auf Projekte in dieser Organisation anwenden können.
Console
Rufen Sie in der Cloud Console die Seite Rollen auf.
Wählen Sie das Projekt oben auf der Seite aus der Drop-down-Liste aus.
Klicken Sie das Kästchen für die Administratorrolle einer Ressource an, um alle Berechtigungen aufzurufen, die Sie auf diese Ressource anwenden können. Wenn Sie beispielsweise die Rolle "Compute-Instanzadministrator" auswählen, werden in der rechten Seitenleiste alle Berechtigungen angezeigt, die auf eine Compute Engine-Instanz angewendet werden können.
gcloud
Verwenden Sie den Befehl gcloud iam list-testable-permissions
, um eine Liste von Berechtigungen abzurufen, die auf eine Zielressource angewendet werden können. Bei den zurückgegebenen Berechtigungen handelt es sich um jene, mit denen eine benutzerdefinierte Rolle für diese Ressource und alle in der Hierarchie darunterliegenden Ressourcen erstellt werden können.
Das folgende Beispiel zeigt, wie testbare Berechtigungen für eine Projektressource aufgelistet werden:
gcloud iam list-testable-permissions project-id
project-id
ist die ID des Projekts in Form eines vollständigen Ressourcennamens: //cloudresourcemanager.googleapis.com/projects/project-id
, z. B. //cloudresourcemanager.googleapis.com/projects/my-project-id
.
Der Befehl list-testable-permissions
gibt möglicherweise Hunderte von Ergebnissen zurück. Sie können auch einen Filterausdruck angeben, um die Zahl der Ergebnisse zu begrenzen.
Die Ergebnisse könnten z. B. so aussehen:
---
name: appengine.applications.create
stage: GA
---
customRolesSupportLevel: TESTING
name: appengine.applications.disable
stage: GA
---
name: appengine.applications.get
stage: GA
---
customRolesSupportLevel: NOT_SUPPORTED
name: appengine.applications.list
onlyInPredefinedRoles: true
stage: GA
---
name: appengine.applications.update
stage: GA
---
name: appengine.instances.delete
stage: GA
---
name: appengine.instances.get
stage: GA
---
Beachten Sie, dass für jede Berechtigung angegeben ist, ob sie in einer benutzerdefinierten Rolle unterstützt wird. Eine vollständige Liste unterstützter und nicht unterstützter Berechtigungen finden Sie unter Unterstützungsstufen für Berechtigungen in benutzerdefinierten Rollen.
REST
Mit der Methode permissions.queryTestablePermissions
werden alle Berechtigungen aufgelistet, die Sie für eine Ressource testen können.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
full-resource-name
: URI, der aus dem Dienstnamen und dem Pfad zur Ressource besteht. Beispiele finden Sie unter Vollständige Ressourcennamen.page-size
: Optional. Die Anzahl der Berechtigungen, die in der Antwort enthalten sein sollen. Der Standardwert ist 100 und der Höchstwert 1.000. Wenn die Anzahl der Berechtigungen größer als die Seitengröße ist, enthält die Antwort ein Paginierungstoken, mit dem Sie die nächste Ergebnisseite abrufen können.next-page-token
: Optional. Das Paginierungstoken, das in einer früheren Antwort von dieser Methode zurückgegeben wurde. Wenn dieser Wert angegeben wird, beginnt die Liste der testbaren Berechtigungen dort, wo die vorherige Antwort endet.
HTTP-Methode und URL:
POST https://iam.googleapis.com/v1/permissions:queryTestablePermissions
JSON-Text anfordern:
{ "fullResourceName": "full-resource-name" "pageSize": page-size, "pageToken": "next-page-token" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten ungefähr so eine JSON-Antwort erhalten:
{ "permissions": [ { "name": "iam.serviceAccountKeys.create", "stage": "GA" }, { "name": "iam.serviceAccountKeys.delete", "stage": "GA" }, { "name": "iam.serviceAccountKeys.get", "stage": "GA" } ], "nextPageToken": "CgoHBajEfjUDQyABEPaIv5vIiMDTVhgDIhtpYW0uc2VydmljZUFjY291bnRLZXlzLmxpc3Q" }
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.
Go
Richten Sie für dieses Beispiel Go wie in der Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go 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.
Metadaten der Rollen abrufen
Bevor Sie eine benutzerdefinierte Rolle erstellen, können Sie die Metadaten für sowohl vordefinierte als auch benutzerdefinierte Rollen abrufen. Die Rollenmetadaten umfassen die Rollen-ID und die in der Rolle enthaltenen Berechtigungen. Sie können die Metadaten über die Cloud Console oder die IAM API anzeigen lassen.
Verwenden Sie eine der folgenden Methoden, um die Rollenmetadaten aufzurufen:
Console
Rufen Sie in der Cloud Console die Seite Rollen auf.
Wählen Sie oben auf der Seite aus der Drop-down-Liste Ihre Organisation oder Ihr Projekt aus.
Klicken Sie das Kästchen für eine oder mehrere Rollen an, um die Rollenberechtigungen aufzurufen. In der rechten Seitenleiste werden die Berechtigungen aufgeführt, die gegebenenfalls in den Rollen enthalten sind.
Die Symbole in der Spalte Typ geben an, ob es sich um eine benutzerdefinierte Rolle
oder um eine vordefinierte Rolle handelt.
Wenn Sie alle Rollen mit einer bestimmten Berechtigung auflisten möchten, geben Sie den Namen der Berechtigung in das Feld Filter oben in der Liste "Rollen" ein.
gcloud
Verwenden Sie den Befehl gcloud iam roles describe
, um Metadaten für vordefinierte Rollen und benutzerdefinierte Rollen aufzurufen.
Führen Sie den folgenden gcloud
-Befehl aus, um die Metadaten für eine vordefinierte Rolle aufzurufen:
gcloud iam roles describe role-id
role-id
ist die ID der Rolle. Vordefinierte Rollen enthalten in ihren IDs das Präfix role
, z. B. roles/iam.roleViewer
.
Das folgende Beispiel zeigt die Ausgabe des Befehls describe
, wenn er für die vordefinierte Rolle roles/iam.roleViewer
ausgeführt wird:
gcloud iam roles describe roles/iam.roleViewer
description: Read access to all custom roles in the project. etag: AA== includedPermissions: - iam.roles.get - iam.roles.list - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy name: roles/iam.roleViewer stage: GA title: Role Viewer
Führen Sie einen der folgenden gcloud
-Befehle aus, um die Metadaten für eine benutzerdefinierte Rolle aufzurufen:
Führen Sie den folgenden Befehl aus, um die Metadaten für eine benutzerdefinierte Rolle aufzurufen, die auf Organisationsebene erstellt wurde:
gcloud iam roles describe --organization=organization-id role-id
Führen Sie den folgenden Befehl aus, um die Metadaten für eine benutzerdefinierte Rolle aufzurufen, die auf Projektebene erstellt wurde:
gcloud iam roles describe --project=project-id role-id
Die Platzhalterwerte sind im Folgenden beschrieben:
organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.role-id
ist die ID der Rolle ohne Präfixe, z. B.projects/
,organizations/
oderroles/
. Beispiel:myCompanyAdmin
.
Weitere Informationen finden Sie in der Referenzdokumentation zu gcloud iam roles describe
.
REST
Mit der Methode roles.get
wird die Definition einer Rolle abgerufen.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
-
full-role-id
: Die vollständige Rollen-ID, einschließlich der Präfixeorganizations/
,projects/
oderroles/
. Beispiel:organizations/123456789012/roles/myCompanyAdmin
.
HTTP-Methode und URL:
GET https://iam.googleapis.com/v1/full-role-id
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält die Rollendefinition.
{ "name": "projects/my-project/roles/customRole", "title": "My Custom Role", "description": "My custom role description.", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "etag": "BwWiPg2fmDE=" }
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.
Go
Richten Sie für dieses Beispiel Go wie in der Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go 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.
Benutzerdefinierte Rolle erstellen
Sie können eine benutzerdefinierte Rolle auf Projekt- oder Organisationsebene erstellen.
Zum Erstellen einer benutzerdefinierten Rolle muss ein Aufrufer die Berechtigung iam.roles.create
haben. Der Inhaber eines Projekts oder einer Organisation verfügt standardmäßig über diese Berechtigung und kann benutzerdefinierte Rollen erstellen und verwalten.
Nutzern, die keine Inhaber sind, z. B. Organisationsadministratoren, muss entweder die Rolle "Administrator für Organisationsrollen" oder die Rolle "Administrator für IAM-Rollen" zugewiesen werden.
Die Gesamtgröße des Titels, der Beschreibung und des Berechtigungsnamens für eine benutzerdefinierte Rolle ist auf 64 KB begrenzt. Wenn Sie eine umfangreichere benutzerdefinierte Rolle erstellen müssen, können Sie die Berechtigungen auf mehrere benutzerdefinierte Rollen aufteilen. Wählen Sie Rollentitel aus, die die Beziehung zwischen den benutzerdefinierten Rollen verdeutlichen, z. B. Custom
Admin (1 of 2)
und Custom Admin (2 of 2)
.
Console
So erstellen Sie eine neue benutzerdefinierte Rolle:
Rufen Sie in der Cloud Console die Seite Rollen auf.
Wählen Sie oben auf der Seite in der Drop-down-Liste die Organisation oder das Projekt aus, in dem Sie eine Rolle erstellen möchten.
Klicken Sie auf Rolle erstellen.
Geben Sie Name, Titel und Beschreibung für die Rolle ein.
Klicken Sie auf Berechtigungen hinzufügen.
Wählen Sie die Berechtigungen aus, die Sie der Rolle hinzufügen möchten, und klicken Sie auf Berechtigungen hinzufügen. Verwenden Sie die Drop-down-Menüs Alle Dienste und Alle Typen, um Berechtigungen nach Diensten und Typen zu filtern und auszuwählen.
So erstellen Sie eine benutzerdefinierte Rolle auf der Grundlage einer vorhandenen gepflegten Rolle:
- Rufen Sie in der Cloud Console die Seite Rollen auf.
- Wählen Sie die Organisation oder das Projekt aus, in dem Sie eine Rolle erstellen möchten.
- Wählen Sie die Rollen aus, auf denen die neue benutzerdefinierte Rolle basieren soll.
- Klicken Sie auf Rolle aus Auswahl erstellen.
- Geben Sie Name, Titel und Beschreibung für die Rolle ein.
- Entfernen Sie die Häkchen aus den Kästchen neben den Berechtigungen, die von der Rolle ausgeschlossen werden sollen.
- Klicken Sie auf Berechtigungen hinzufügen, um Berechtigungen hinzuzufügen.
- Klicken Sie auf Erstellen.
gcloud
Verwenden Sie den Befehl gcloud iam roles create
, um neue benutzerdefinierte Rollen zu erstellen. Dafür gibt es zwei Möglichkeiten:
- Durch Bereitstellen einer YAML-Datei mit der Rollendefinition
- Durch Verwenden von Flags zum Angeben der Rollendefinition
Beim Erstellen einer benutzerdefinierten Rolle müssen Sie mithilfe der Flags --organization=organization-id
oder --project=project-id
angeben, ob sie auf Organisationsebene oder Projektebene angewendet werden soll. Bei jedem der unten aufgeführten Beispiele wird eine benutzerdefinierte Rolle auf Projektebene erstellt.
So erstellen Sie eine benutzerdefinierte Rolle mithilfe einer YAML-Datei:
Erstellen Sie eine YAML-Datei, die die Definition für Ihre benutzerdefinierte Rolle enthält. Die Datei muss so strukturiert sein:
title: role-title description: role-description stage: launch-stage includedPermissions: - permission-1 - permission-2
Die Platzhalterwerte sind im Folgenden beschrieben:
role-title
ist der angezeigte Titel der Rolle, z. B."My Company Admin"
.role-description
ist eine kurze Beschreibung der Rolle, z. B."My custom role description"
.launch-stage
gibt die Phase einer Rolle im Einführungszyklus an, z. B.ALPHA
,BETA
oderGA
.permission-1
undpermission-2
sind Berechtigungen, die in die benutzerdefinierte Rolle aufgenommen werden sollen, z. B.iam.roles.get
.
Speichern Sie die YAML-Datei und führen Sie dann einen der folgenden Befehle aus:
Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Rolle auf Organisationsebene zu erstellen:
gcloud iam roles create role-id --organization=organization-id \ --file=yaml-file-path
Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Rolle auf Projektebene zu erstellen:
gcloud iam roles create role-id --project=project-id \ --file=yaml-file-path
Die Platzhalterwerte sind im Folgenden beschrieben:
role-id
ist der Name der Rolle, z. B.myCompanyAdmin
.organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.yaml-file-path
ist der Pfad zum Speicherort der YAML-Datei, die die Definition der benutzerdefinierten Rolle enthält.
Beispiele
Im folgenden Beispiel einer YAML-Datei ist zu sehen, wie eine Rollendefinition erstellt wird:
title: "My Company Admin" description: "My custom role description." stage: "ALPHA" includedPermissions: - iam.roles.get - iam.roles.list
Das folgende Beispiel zeigt, wie Sie mithilfe der YAML-Datei eine Rolle auf Organisationsebene erstellen:
gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Wenn die Rolle erstellt wurde, sieht die Ausgabe des Befehls in etwa so aus:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Das folgende Beispiel zeigt, wie Sie mithilfe der YAML-Datei eine Rolle auf Projektebene erstellen:
gcloud iam roles create myCompanyAdmin --project=my-project-id \ --file=my-role-definition.yaml
Wenn die Rolle erstellt wurde, sieht die Ausgabe des Befehls in etwa so aus:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
So erstellen Sie eine benutzerdefinierte Rolle mithilfe von Flags:
Führen Sie einen der folgenden Befehle aus:
Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Rolle auf Organisationsebene zu erstellen:
gcloud iam roles create role-id --organization=organization-id \ --title=role-title --description=role-description \ --permissions=permissions-list --stage=launch-stage
Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Rolle auf Projektebene zu erstellen:
gcloud iam roles create role-id --project=project-id \ --title=role-title --description=role-description \ --permissions=permissions-list --stage=launch-stage
Die Platzhalterwerte sind im Folgenden beschrieben:
role-id
ist der Name der Rolle, z. B.myCompanyAdmin
.organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.role-title
ist der angezeigte Titel der Rolle, z. B."My Company Admin"
.role-description
ist eine kurze Beschreibung der Rolle, z. B."My custom role description."
.permissions-list
enthält eine durch Kommas getrennte Liste von Berechtigungen, die Sie in die benutzerdefinierte Rolle aufnehmen möchten. Beispiel:iam.roles.get,iam.roles.list
.launch-stage
gibt die Phase einer Rolle im Einführungszyklus an, z. B.ALPHA
,BETA
oderGA
.
Beispiele
Das folgende Beispiel zeigt, wie Sie mithilfe von Flags eine Rolle auf Organisationsebene erstellen:
gcloud iam roles create myCompanyAdmin --organization=123456789012\ --title="My Company Admin" --description="My custom role description." \ --permissions=iam.roles.get,iam.roles.list --stage=ALPHA
Wenn die Rolle erstellt wurde, sieht die Ausgabe des Befehls in etwa so aus:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Das folgende Beispiel zeigt, wie Sie mithilfe von Flags eine Rolle auf Projektebene erstellen:
gcloud iam roles create myCompanyAdmin --project=my-project-id \ --title="My Company Admin" --description="My custom role description." \ --permissions=iam.roles.get,iam.roles.list --stage=ALPHA
Wenn die Rolle erstellt wurde, sieht die Ausgabe des Befehls in etwa so aus:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
REST
Mit der Methode roles.create
wird eine benutzerdefinierte Rolle in einem Projekt oder einer Organisation erstellt.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
resource-type
: Der Ressourcentyp, dessen benutzerdefinierte Rollen Sie verwalten möchten. Verwenden Sie den Wertprojects
oderorganizations
.resource-id
: Die Projekt-ID oder Organisations-ID, deren benutzerdefinierte Rollen Sie verwalten möchten.role-id
: Der Name der Rolle, z. B.myCompanyAdmin
.role-title
: Der für Nutzer lesbare Titel der Rolle. Beispiel:My Company Admin
role-description
: Eine Beschreibung der Rolle. Beispiel:"The company admin role allows company admins to access important resources"
permission-1
undpermission-2
: Die Berechtigungen, die Sie der Rolle zuweisen möchten. Beispiel:storage.objects.update
.launch-stage
: Die aktuelle Startphase der Rolle. Dieses Feld kann einen der folgenden Werte enthalten:EAP
,ALPHA
,BETA
,GA
,DEPRECATED
oderDISABLED
.
HTTP-Methode und URL:
POST https://iam.googleapis.com/v1/resource-type/resource-id/roles
JSON-Text anfordern:
{ "roleId": "role-id", "role": { "title": "role-title", "description": "role-description", "includedPermissions": [ "permission-1", "permission-2" ], "stage": "launch-stage" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält die von Ihnen erstellte Rolle.
{ "name": "projects/myProject/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWox/JbaZw=" }
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.
Go
Richten Sie für dieses Beispiel Go wie in der Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go 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.
Vorhandene benutzerdefinierte Rolle bearbeiten
Read-Modify-Write (Lesen-Ändern-Schreiben)
Die Metadaten einer Ressource, beispielsweise einer Rolle, werden häufig nach dem folgenden Muster aktualisiert: Der aktuelle Status wird gelesen, die Daten werden lokal aktualisiert und die geänderten Daten werden anschließend zum Schreiben gesendet. Dabei kann es jedoch zu Konflikten kommen, wenn zwei oder mehr voneinander unabhängige Prozesse gleichzeitig nach diesem Muster verfahren. Wenn beispielsweise zwei Inhaber eines Projekts gleichzeitig versuchen, gegensätzliche Änderungen an der Rolle vorzunehmen, könnte es passieren, dass einige Änderungen nicht übernommen werden. IAM löst dieses Problem mithilfe eines etag
-Attributs in benutzerdefinierten Rollen. Mit diesem Attribut wird überprüft, ob sich die benutzerdefinierte Rolle seit der letzten Anfrage geändert hat. Wenn Sie eine Anfrage mit einem ETag-Wert an IAM senden, vergleicht IAM den ETag-Wert in der Anfrage mit dem vorhandenen ETag-Wert, der der benutzerdefinierten Rolle zugeordnet ist. Die Änderung wird nur geschrieben, wenn die ETag-Werte übereinstimmen.
Wenn Sie eine Rolle aktualisieren, rufen Sie zuerst die Rolle mit roles.get()
auf, aktualisieren Sie die Rolle und schreiben dann mit roles.patch()
die aktualisierte Rolle. Verwenden Sie beim Festlegen der Rolle den Etag-Wert nur, wenn die entsprechende Rolle in roles.get()
einen Etag-Wert enthält.
Console
Rufen Sie in der Cloud Console die Seite Rollen auf.
Wählen Sie oben auf der Seite in der Drop-down-Liste das Projekt oder die Organisation aus, die die Rolle enthält, die Sie bearbeiten möchten.
Klicken Sie auf eine benutzerdefinierte Rolle.
Klicken Sie auf Rolle bearbeiten.
Klicken Sie auf Berechtigungen hinzufügen, um der Rolle neue Berechtigungen hinzuzufügen.
Entfernen Sie die Häkchen aus den Kästchen neben den Berechtigungen, die von der Rolle ausgeschlossen werden sollen.
Klicken Sie auf Aktualisieren, um die bearbeitete Rolle zu speichern.
gcloud
Verwenden Sie den Befehl gcloud iam roles update
, um benutzerdefinierte Rollen zu aktualisieren. Dafür gibt es zwei Möglichkeiten:
- Durch Bereitstellen einer YAML-Datei, die die Definition der aktualisierten Rolle enthält
- Durch Verwenden von Flags zum Angeben der Definition der aktualisierten Rolle
Beim Aktualisieren einer benutzerdefinierten Rolle müssen Sie mit den Flags --organization=organization-id
oder --project=project-id
angeben, ob sie auf Organisationsebene oder Projektebene angewendet werden soll. Bei jedem der unten aufgeführten Beispiele wird eine benutzerdefinierte Rolle auf Projektebene erstellt.
So aktualisieren Sie eine benutzerdefinierte Rolle mithilfe einer YAML-Datei:
Rufen Sie die aktuelle Definition für die Rolle ab, indem Sie einen der folgenden Befehle ausführen:
Führen Sie den folgenden Befehl aus, um die Rollendefinition einer benutzerdefinierten Rolle auf Organisationsebene abzurufen:
gcloud iam roles describe role-id --organization=organization-id
Führen Sie den folgenden Befehl aus, um die Rollendefinition einer benutzerdefinierten Rolle auf Projektebene abzurufen:
gcloud iam roles describe role-id --project=project-id
Die Platzhalterwerte sind im Folgenden beschrieben:
role-id
ist der Name der Rolle, die aktualisiert werden soll, z. B.myCompanyAdmin
.organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.
Der describe
-Befehl gibt die Definition der Rolle zurück und enthält einen etag
-Wert, der die aktuelle Version der Rolle eindeutig identifiziert. Der etag
-Wert sollte in der aktualisierten Rollendefinition angegeben werden, um sicherzustellen, dass gleichzeitig ausgeführte Rollenänderungen nicht überschrieben werden.
Der Befehl describe
gibt Folgendes zurück:
description: role-description etag: etag-value includedPermissions: - permission-1 - permission-2 name: full-role-id stage: launch-stage title: role-title
Die Platzhalterwerte sind im Folgenden beschrieben:
role-description
ist eine kurze Beschreibung der Rolle, z. B."My custom role description"
.etag-value
ist die eindeutige Kennung für die aktuelle Version der Rolle, z. B.BwVkBkbfr70=
.permission-1
undpermission-2
sind Berechtigungen, die in die benutzerdefinierte Rolle aufgenommen werden sollen, z. B.iam.roles.get
.full-role-id
ist die vollständige Rollen-ID, einschließlich sämtlicher Präfixeorganizations/
,projects/
undroles/
. Beispiel:organizations/123456789012/roles/myCompanyAdmin.
launch-stage
gibt die Phase einer Rolle im Einführungszyklus an, z. B.ALPHA
,BETA
oderGA
.role-title
ist der angezeigte Titel der Rolle, z. B."My Company Admin"
.
Nehmen Sie entweder die ausgegebene Rollendefinition in eine YAML-Datei auf oder aktualisieren Sie die ursprüngliche YAML-Datei mit dem ausgegebenen etag
-Wert, um die Rolle zu aktualisieren.
Betrachten Sie die folgende YAML-Beispieldatei, die die Ausgabe des Befehls describe
für eine Rolle auf Projektebene enthält und mit der zwei Cloud Storage-Berechtigungen hinzugefügt werden:
description: My custom role description. etag: BwVkBkbfr70= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Speichern Sie die YAML-Datei und führen Sie dann einen der folgenden Befehle aus:
Führen Sie den folgenden Befehl aus, um eine Rolle auf Organisationsebene zu aktualisieren:
gcloud iam roles update role-id --organization=organization-id \ --file=yaml-file-path
Führen Sie den folgenden Befehl aus, um eine Rolle auf Projektebene zu aktualisieren:
gcloud iam roles update role-id --project=project-id \ --file=yaml-file-path
Die Platzhalterwerte sind im Folgenden beschrieben:
role-id
ist der Name der Rolle, die aktualisiert werden soll, z. B.myCompanyAdmin
.organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.yaml-file-path
ist der Pfad zum Speicherort der YAML-Datei, die die Definition der aktualisierten benutzerdefinierten Rolle enthält.
Beispiele
Das folgende Beispiel zeigt, wie Sie mithilfe einer YAML-Datei eine Rolle auf Organisationsebene aktualisieren:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Wenn die Rolle aktualisiert wurde, sieht die Ausgabe des Befehls in etwa so aus:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Das folgende Beispiel zeigt, wie Sie mithilfe einer YAML-Datei eine Rolle auf Projektebene aktualisieren:
gcloud iam roles update myCompanyAdmin --project=my-project-id \ --file=my-role-definition.yaml
Wenn die Rolle aktualisiert wurde, sieht die Ausgabe des Befehls in etwa so aus:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
So aktualisieren Sie eine benutzerdefinierte Rolle mithilfe von Flags:
Jeder Teil einer Rollendefinition kann mithilfe eines entsprechenden Flags aktualisiert werden.
Eine Liste aller möglichen Flags finden Sie im Thema gcloud iam roles update
.
Sie können die folgenden Flags verwenden, um Berechtigungen hinzuzufügen oder zu entfernen:
--add-permissions=permissions
: fügt der Rolle eine oder mehrere durch Kommas getrennte Berechtigungen hinzu--remove-permissions=permissions
: entfernt eine oder mehrere durch Kommas getrennte Berechtigungen aus der Rolle
Alternativ können Sie die neuen Berechtigungen einfach mit dem Flag --permissions=permissions
angeben und eine durch Kommas getrennte Liste von Berechtigungen bereitstellen, um die vorhandene Berechtigungsliste zu ersetzen.
Führen Sie einen der folgenden Befehle aus, um andere Teile der Rollendefinition zu aktualisieren:
Führen Sie den folgenden Befehl aus, um eine Rolle auf Organisationsebene zu aktualisieren:
gcloud iam roles update role-id --organization=organization-id \ --title=role-title --description=role-description \ --stage=launch-stage
Führen Sie den folgenden Befehl aus, um eine Rolle auf Projektebene zu aktualisieren:
gcloud iam roles update role-id --project=project-id \ --title=role-title --description=role-description \ --stage=launch-stage
Die Platzhalterwerte sind im Folgenden beschrieben:
role-id
ist der Name der Rolle, z. B.myCompanyAdmin
.organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.role-title
ist der angezeigte Titel der Rolle, z. B."My Company Admin"
.role-description
ist eine kurze Beschreibung der Rolle, z. B."My custom role description."
.launch-stage
gibt die Phase einer Rolle im Einführungszyklus an, z. B.ALPHA
,BETA
oderGA
.
Beispiele
Das folgende Beispiel zeigt, wie Sie einer Rolle auf Organisationsebene mithilfe von Flags Berechtigungen hinzufügen:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --add-permissions=storage.buckets.get,storage.buckets.list
Wenn die Rolle aktualisiert wurde, sieht die Ausgabe des Befehls in etwa so aus:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organization/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Das folgende Beispiel zeigt, wie Sie einer Rolle auf Projektebene mithilfe von Flags Berechtigungen hinzufügen:
gcloud iam roles update myCompanyAdmin --project=my-project-id \ --add-permissions=storage.buckets.get,storage.buckets.list
Wenn die Rolle aktualisiert wurde, sieht die Ausgabe des Befehls in etwa so aus:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
REST
Mit der Methode roles.patch
wird eine benutzerdefinierte Rolle in einem Projekt oder einer Organisation aktualisiert.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
Erforderlich:
resource-type
: Der Ressourcentyp, dessen benutzerdefinierte Rollen Sie verwalten möchten. Verwenden Sie den Wertprojects
oderorganizations
.resource-id
: Die Projekt-ID oder Organisations-ID, deren benutzerdefinierte Rollen Sie verwalten möchten.-
full-role-id
: Die vollständige Rollen-ID, einschließlich der Präfixeorganizations/
,projects/
oderroles/
. Beispiel:organizations/123456789012/roles/myCompanyAdmin
.
Empfohlen:
etag
: Eine Kennzeichnung für eine Version der Rolle. Fügen Sie dieses Feld ein, um Überschreiben von Änderungen an der Rolle zu verhindern.
Optional (definieren Sie einen oder mehrere der folgenden Werte):
role-title
: Der für Nutzer lesbare Titel der Rolle. Beispiel:My Company Admin
role-description
: Eine Beschreibung der Rolle. Beispiel:"The company admin role allows company admins to access important resources"
permission-1
undpermission-2
: Die Berechtigungen, die Sie der Rolle zuweisen möchten. Beispiel:storage.objects.update
.launch-stage
: Die aktuelle Startphase der Rolle. Dieses Feld kann einen der folgenden Werte enthalten:EAP
,ALPHA
,BETA
,GA
,DEPRECATED
oderDISABLED
.
HTTP-Methode und URL:
PATCH https://iam.googleapis.com/v1/resource-type/resource-id/roles
JSON-Text anfordern:
{ "roleId": "full-role-id", "title": "role-title", "description": "role-description", "includedPermissions": [ "permission-1", "permission-2" ], "stage": "launch-stage", "etag": "etag" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält eine abgekürzte Rollendefinition, die den Namen der Rolle, die aktualisierten Felder und ein ETag beinhaltet, das die aktuelle Version der Rolle angibt.
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "title": "My Updated Company Admin", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "stage": "BETA", "etag": "BwWoyDpAxBc=" }
Einige vordefinierte Rollen enthalten verworfene Berechtigungen oder Berechtigungen, die aus anderen Gründen nicht in benutzerdefinierten Rollen zugelassen sind. Das Erstellen einer benutzerdefinierten Rolle auf der Grundlage einer vordefinierten Rolle, die verworfene oder eingeschränkte Berechtigungen enthält, wird fehlschlagen.
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.
Go
Richten Sie für dieses Beispiel Go wie in der Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go 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.
Benutzerdefinierte Rolle deaktivieren
Sie haben die Möglichkeit, benutzerdefinierte Rollen zu deaktivieren. Beim Deaktivieren einer Rolle werden alle Richtlinienbindungen, die mit der Rolle in Zusammenhang stehen, deaktiviert. Dies bedeutet, dass die Zuweisung der Rolle an einen Nutzer keine Auswirkungen hat.
Console
Rufen Sie in der Cloud Console die Seite Rollen auf.
Klicken Sie am Anfang der Seite auf die Drop-down-Liste "Projekt auswählen".
Wählen Sie Ihre Organisation oder das Projekt aus.
Wählen Sie eine benutzerdefinierte Rolle aus und klicken Sie auf Deaktivieren.
gcloud
Verwenden Sie den Befehl gcloud iam roles update
, um eine benutzerdefinierte Rolle durch Festlegen der Einführungsphase auf DISABLED
zu deaktivieren.
Wie auf dem Tab gcloud im Abschnitt Vorhandene benutzerdefinierte Rolle bearbeiten beschrieben, können Sie eine vorhandene benutzerdefinierte Rolle auf zwei Arten aktualisieren:
- Durch Bereitstellen einer YAML-Datei, die die Definition der aktualisierten Rolle enthält
- Durch Verwenden von Flags zum Angeben der Definition der aktualisierten Rolle
Am einfachsten können Sie eine vorhandene benutzerdefinierte Rolle deaktivieren, indem Sie das Flag --stage
verwenden und auf DISABLED
festlegen. Führen Sie einen der folgenden Befehle aus:
Führen Sie den folgenden Befehl aus, um eine Rolle auf Organisationsebene zu deaktivieren:
gcloud iam roles update role-id --organization=organization-id \ --stage=DISABLED
Führen Sie den folgenden Befehl aus, um eine Rolle auf Projektebene zu deaktivieren:
gcloud iam roles update role-id --project=project-id \ --stage=DISABLED
Die Platzhalterwerte sind im Folgenden beschrieben:
role-id
ist der Name der Rolle, z. B.myCompanyAdmin
.organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.
Beispiele
Das folgende Beispiel zeigt, wie Sie eine Rolle auf Organisationsebene deaktivieren:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --stage=DISABLED
Wenn die Rolle aktualisiert wurde, sieht die Ausgabe des Befehls in etwa so aus:
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: organization/123456789012/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
Das folgende Beispiel zeigt, wie Sie eine Rolle auf Projektebene deaktivieren:
gcloud iam roles update myCompanyAdmin --project=my-project-id \ --stage=DISABLED
Wenn die Rolle aktualisiert wurde, sieht die Ausgabe des Befehls in etwa so aus:
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project-id/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
REST
Mit der Methode roles.patch
können Sie die Startphase einer benutzerdefinierten Rolle in DISABLED
ändern, wodurch die Rolle deaktiviert wird.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
resource-type
: Der Ressourcentyp, dessen benutzerdefinierte Rollen Sie verwalten möchten. Verwenden Sie den Wertprojects
oderorganizations
.resource-id
: Die Projekt-ID oder Organisations-ID, deren benutzerdefinierte Rollen Sie verwalten möchten.-
full-role-id
: Die vollständige Rollen-ID, einschließlich der Präfixeorganizations/
,projects/
oderroles/
. Beispiel:organizations/123456789012/roles/myCompanyAdmin
. etag
: Eine Kennzeichnung für eine Version der Rolle. Fügen Sie dieses Feld ein, um Überschreiben von Änderungen an der Rolle zu verhindern.
HTTP-Methode und URL:
PATCH https://iam.googleapis.com/v1/resource/resource-id/roles
JSON-Text anfordern:
{ "roleId": "full-role-id", "stage": DISABLED, "etag": "etag" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten ungefähr so eine JSON-Antwort erhalten:
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "stage": "DISABLED", "etag": "BwWoyDpAxBc=" }
C#
Aktualisieren Sie das Feld stage
der Rolle auf DISABLED
.
Go
Aktualisieren Sie das Feld stage
der Rolle auf DISABLED
.
Python
Aktualisieren Sie das Feld stage
der Rolle auf DISABLED
.
Rollen auflisten
Sie können alle benutzerdefinierten Rollen auflisten, die in Ihrem Projekt oder in Ihrer Organisation erstellt wurden.
Console
Rufen Sie in der Cloud Console die Seite Rollen auf.
Alle benutzerdefinierten Rollen für die ausgewählte Organisation oder das ausgewählte Projekt werden auf der Seite aufgeführt.
gcloud
Verwenden Sie den Befehl gcloud iam roles list
, um benutzerdefinierte Rollen und vordefinierte Rollen für ein Projekt oder eine Organisation aufzulisten.
Führen Sie einen der folgenden Befehle aus, um benutzerdefinierte Rollen aufzulisten:
Führen Sie den folgenden Befehl aus, um benutzerdefinierte Rollen auf Organisationsebene aufzulisten:
gcloud iam roles list --organization=organization-id
Führen Sie den folgenden Befehl aus, um benutzerdefinierte Rollen auf Projektebene aufzulisten:
gcloud iam roles list --project=project-id
Die Platzhalterwerte sind im Folgenden beschrieben:
organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.
Zum Auflisten gelöschter Rollen können Sie auch das Flag --show-deleted
angeben.
Führen Sie den folgenden gcloud
-Befehl aus, um vordefinierte Rollen aufzulisten:
gcloud iam roles list
REST
Mit der Methode roles.list
werden alle benutzerdefinierten Rollen in einem Projekt oder einer Organisation aufgelistet.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
resource-type
: Der Ressourcentyp, dessen benutzerdefinierte Rollen Sie verwalten möchten. Verwenden Sie den Wertprojects
oderorganizations
.resource-id
: Die Projekt-ID oder Organisations-ID, deren benutzerdefinierte Rollen Sie verwalten möchten.role-view
: Optional. Die Informationen, die in den zurückgegebenen Rollen enthalten sein sollen. Setzen Sie den Wert dieses Feldes aufFULL
, um die Berechtigungen der Rollen einzuschließen. Wenn Sie die Berechtigungen der Rollen ausschließen möchten, legen Sie für dieses FeldBASIC
fest. Der Standardwert istBASIC
.page-size
: Optional. Die Anzahl der Rollen, die in der Antwort enthalten sein sollen. Der Standardwert ist 300 und der Höchstwert ist 1.000. Wenn die Anzahl der Rollen größer als die Seitengröße ist, enthält die Antwort ein Paginierungstoken, mit dem Sie die nächste Ergebnisseite abrufen können.next-page-token
: Optional. Das Paginierungstoken, das in einer früheren Antwort von dieser Methode zurückgegeben wurde. Wenn dieser Wert angegeben wird, beginnt die Liste der Rollen dort, wo die vorherige Anfrage endet.
HTTP-Methode und URL:
GET https://iam.googleapis.com/v1/resource-type/resource-id/roles?view=role-view&pageSize=page-size&pageToken=next-page-token
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "roles": [ { "name": "projects/my-project/roles/customRole1", "title": "First Custom Role", "description": "Created on: 2020-06-01", "etag": "BwWiPg2fmDE=" }, { "name": "projects/my-project/roles/customRole2", "title": "Second Custom Role", "description": "Created on: 2020-06-07", "etag": "BwWiuX53Wi0=" } ] }
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.
Go
Richten Sie für dieses Beispiel Go wie in der Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go 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.
Benutzerdefinierte Rolle löschen
Sie können jede benutzerdefinierte Rolle in Ihrem Projekt oder in Ihrer Organisation löschen.
Console
Rufen Sie in der Cloud Console die Seite Rollen auf.
Wählen Sie die Rolle aus, die Sie löschen möchten, und klicken Sie oben auf der Seite auf delete Löschen.
gcloud
Verwenden Sie den Befehl gcloud iam roles delete
, um eine benutzerdefinierte Rolle zu löschen. Diese Rolle wird gesperrt und kann nicht verwendet werden, um neue IAM-Richtlinienbindungen zu erstellen.
Führen Sie einen der folgenden Befehle aus, um eine benutzerdefinierte Rolle zu löschen:
Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Rolle auf Organisationsebene zu löschen:
gcloud iam roles delete role-id --organization=organization-id
Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Rolle auf Projektebene zu löschen:
gcloud iam roles delete role-id --project=project-id
Die Platzhalterwerte sind im Folgenden beschrieben:
role-id
ist der Name der Rolle, z. B.myCompanyAdmin
.organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.
Die Rolle wird nur dann in gcloud iam roles list
aufgenommen, wenn das Flag --show-deleted
angegeben ist. Gelöschte Rollen sind durch den Block deleted: true
in einer list
-Antwort gekennzeichnet. Beispiel:
--- deleted: true description: My custom role description. etag: BwVkB5NLIQw= name: projects/my-project-id/roles/myCompanyAdmin title: My Company Admin ---
REST
Mit der Methode roles.delete
wird eine benutzerdefinierte Rolle in einem Projekt oder einer Organisation gelöscht.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
-
full-role-id
: Die vollständige Rollen-ID, einschließlich der Präfixeorganizations/
,projects/
oderroles/
. Beispiel:organizations/123456789012/roles/myCompanyAdmin
.
HTTP-Methode und URL:
DELETE https://iam.googleapis.com/v1/full-role-id
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält die Definition der gelöschten Rolle.
{ "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=", "deleted": true }
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.
Go
Richten Sie für dieses Beispiel Go wie in der Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go 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 eine Rolle gelöscht wird, bleiben ihre Bindungen bestehen, sind aber inaktiv. Sie können eine Rolle innerhalb von 7 Tagen wiederherstellen. Während dieses 7-Tage-Zeitraums wird die Rolle in der Cloud Console als gelöscht angezeigt und beim Ausführen von programmatischen list
-Befehlen nur aufgeführt, wenn in der Anfrage showDeleted
festgelegt ist.
Nach 7 Tagen wird die Rolle dauerhaft gelöscht. Zu diesem Zeitpunkt wird die Rolle nicht mehr auf das Limit von 300 benutzerdefinierten Rollen pro Organisation bzw. 300 benutzerdefinierten Rollen pro Projekt angerechnet.
Das endgültige Löschen dauert 30 Tage. Während dieses Zeitfensters werden die Rolle und alle zugehörigen Bindungen dauerhaft entfernt. Sie können keine neue Rolle mit derselben Rollen-ID erstellen.
Nachdem die Rolle dauerhaft gelöscht wurde, also 37 Tage nach der ursprünglichen Löschanfrage, können Sie eine neue Rolle mit derselben Rollen-ID erstellen.
Benutzerdefinierte Rolle wiederherstellen
Wenn Sie eine Rolle wiederherstellen, wird sie in den vorherigen Zustand zurückversetzt.
Rollen können nur innerhalb von sieben Tagen wiederhergestellt werden. Danach wird die Rolle endgültig gelöscht und alle mit der Rolle verknüpften Bindungen werden entfernt.
Console
Rufen Sie in der Cloud Console die Seite Rollen auf.
Suchen Sie die Rolle, die Sie wiederherstellen möchten. Klicken Sie dann zuerst auf das Dreipunkt-Menü am Ende der Zeile und anschließend auf Wiederherstellen.
gcloud
Verwenden Sie den Befehl gcloud iam roles undelete
, um eine benutzerdefinierte Rolle wiederherzustellen.
Führen Sie einen der folgenden Befehle aus, um eine benutzerdefinierte Rolle wiederherzustellen:
Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Rolle auf Organisationsebene wiederherzustellen:
gcloud iam roles undelete role-id --organization=organization-id
Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Rolle auf Projektebene wiederherzustellen:
gcloud iam roles undelete role-id --project=project-id
Die Platzhalterwerte sind im Folgenden beschrieben:
role-id
ist der Name der Rolle, z. B.myCompanyAdmin
.organization-id
ist die numerische ID der Organisation, z. B.123456789012
.project-id
ist der Name des Projekts, z. B.my-project-id
.
Beispiele
Das folgende Beispiel zeigt, wie Sie eine benutzerdefinierte Rolle auf Organisationsebene wiederherstellen:
gcloud iam roles undelete myCompanyAdmin --organization=123456789012
Wenn die Rolle wiederhergestellt wurde, sieht die Ausgabe des Befehls in etwa so aus:
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: organization/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Das folgende Beispiel zeigt, wie Sie eine benutzerdefinierte Rolle auf Projektebene wiederherstellen:
gcloud iam roles undelete myCompanyAdmin --project=my-project-id
Wenn die Rolle wiederhergestellt wurde, sieht die Ausgabe des Befehls in etwa so aus:
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project-id/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
REST
Mit der Methode roles.undelete
wird eine benutzerdefinierte Rolle in einem Projekt oder einer Organisation wiederhergestellt.
Ersetzen Sie diese Werte in den folgenden Anweisungen:
-
full-role-id
: Die vollständige Rollen-ID, einschließlich der Präfixeorganizations/
,projects/
oderroles/
. Beispiel:organizations/123456789012/roles/myCompanyAdmin
. etag
: Eine Kennzeichnung für eine Version der Rolle. Fügen Sie dieses Feld ein, um Überschreiben von Änderungen an der Rolle zu verhindern.
HTTP-Methode und URL:
POST https://iam.googleapis.com/v1/full-role-id:undelete
JSON-Text anfordern:
{ "etag": "etag" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Die Antwort enthält die Definition der wiederhergestellten Rolle.
{ "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=" }
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.
Go
Richten Sie für dieses Beispiel Go wie in der Kurzanleitung zur Verwendung von Clientbibliotheken beschrieben ein. Weitere Informationen finden Sie in der Referenzdokumentation zur IAM Go 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.
Weitere Informationen
- Mitgliedern Rollen zuweisen
- Mehr über bedingte Rollenzuweisungen erfahren, bei denen eine Rolle nur dann zugewiesen wird, wenn bestimmte Bedingungen erfüllt sind