Einschränkungen für das Zuweisen von Rollen festlegen

In großen Unternehmen kann es hilfreich sein, wenn die Teams die IAM-Richtlinien (Identity and Access Management) für ihre Ressourcen unabhängig verwalten können. Wenn Sie jedoch einem Mitglied alle IAM-Rollen zuweisen oder entziehen, kann sich das Sicherheitsrisiko erheblich erhöhen.

Sie können Einschränkungen für die Rollen festlegen, die ein Mitglied mit IAM Conditions und dem API-Attribut iam.googleapis.com/modifiedGrantsByRole zuweisen und widerrufen kann. Mit diesen Einschränkungen können Sie eingeschränkte IAM-Administratoren erstellen, die die IAM-Richtlinien ihres eigenen Teams verwalten können, jedoch nur innerhalb der von Ihnen festgelegten Grenzen.

Hinweis

Erforderliche Berechtigungen

Sie benötigen eine Rolle mit den folgenden Berechtigungen, um Einschränkungen für die Rollen festzulegen, die ein Mitglied zuweisen oder widerrufen kann:

  • resourcemanager.resource-type.getIamPolicy
  • resourcemanager.resource-type.setIamPolicy

Ersetzen Sie resource-type durch einen der folgenden Werte:

  • Wenn Sie einen eingeschränkten IAM-Administrator für eine Organisation erstellen möchten, verwenden Sie organizations.
  • Wenn Sie einen eingeschränkten IAM-Administrator für einen Ordner erstellen möchten, verwenden Sie folders.
  • Wenn Sie einen eingeschränkten IAM-Administrator für ein Projekt erstellen möchten, verwenden Sie projects.

Bitten Sie Ihren Administrator, Ihnen die Rolle „IAM Sicherheitsadministrator“ (roles/iam.securityAdmin) zuzuweisen, damit Sie diese Berechtigungen erhalten und dabei dem Prinzip der geringsten Berechtigung folgen.

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.

Gängige Anwendungsfälle

In den folgenden Abschnitten wird beschrieben, wie Sie mithilfe von begrenzten Rollen die Self-Service-Richtlinienverwaltung aktivieren.

Eingeschränkte IAM-Administratoren erstellen

Stellen Sie sich ein Szenario vor, in dem Sie einen Nutzer, Finn (finn@example.com), als eingeschränkten IAM-Administrator für Ihr Projekt gewähren können. Sie möchten, dass Finn nur die Rollen des Rechnungskonto-Administrators (roles/billing.admin) und Rechnungskontonutzer (roles/billing.user) für Ihr Projekt zuweisen und widerrufen kann.

Wenn Sie diese eingeschränkte Funktion gewähren möchten, gewähren Sie Finn die Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Mit der Rolle „Projekt-IAM-Administrator“ kann Finn IAM-Rollen zuweisen und widerrufen. Die Bedingung schränkt ein, welche Rollen Finn zuweisen und widerrufen kann:

{
  "version": 3,
  "etag": "BwWKmjvelug=",
  "bindings": [
    {
      "members": [
        "user:owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "finn@example.com"
      ],
      "role": "roles/resourcemanager.projectIamAdmin",
      "condition": {
        "title": "only_billing_roles",
        "description": "Only allows changes to role bindings for billing accounts",
        "expression":
          "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/billing.admin', 'roles/billing.user'])"
      }
    }
  ]
}

Mit dieser bedingten Rollenbindung kann Finn folgende Aktionen ausführen:

  • Die Rollen „Rechnungskontoadministrator“ und „Rechnungskontonutzer“ für das Projekt zuweisen.
  • Die Rollen „Rechnungskontoadministrator“ und „Rechnungskontonutzer“ für das Projekt widerrufen.
  • Bedingungen für Rollenbindungen auf Projektebene hinzufügen, entfernen oder ändern, mit denen die Rollen „Rechnungskontoadministrator“ und „Rechnungskontonutzer“ zugewiesen werden.
  • Führen Sie weitere Aktionen durch, die von der Rolle Projekt-IAM-Administrator zugelassen wurden und die IAM-Richtlinie des Projekts nicht ändern. Beispielsweise kann Finn die Methode projects.getIamPolicy verwenden, um die Richtlinie des Projekts abzurufen.

Mit dieser bedingten Rollenbindung kann Finn keine der folgenden Aktionen ausführen:

  • IAM-Richtlinien für andere Ressourcen als das Projekt ändern.
  • Andere Rollen als die Rolle „Rechnungskontoadministrator“ und „Rechnungskontonutzer“ zuweisen.
  • Andere Rollen als die Rolle „Rechnungskontoadministrator“ und „Rechnungskontonutzer“ widerrufen.
  • Hinzufügen, Entfernen oder Ändern von Bedingungen für Rollenbindungen, die nicht die Rollen des Rechnungskontoadministrators oder Rechnungskontonutzers zuweisen.

Nutzern erlauben, eingeschränkte IAM-Administratoren zu verwalten

Stellen Sie sich ein Szenario vor, in dem Sie einen Nutzer, Lila, zu einem eingeschränkten IAM-Administrator für ihr Team machen wollen. Sie möchten, dass Lila nur die Rolle des Compute-Administrators (roles/compute.admin) für ihr Projekt zuweisen und widerrufen kann. Sie wollen aber auch, dass Lila anderen Nutzern die Berechtigung erteilen kann, als eingeschränkte IAM-Administratoren zu fungieren. Sie möchten also, dass Lila anderen Nutzern erlaubt, nur die Rolle „Compute-Administrator“ zuzuweisen und zu widerrufen.

Vielleicht glauben Sie, dass die Lösung darin besteht, Lila die Rolle des Projekt-IAM-Administrators zuzuweisen (roles/resourcemanager.projectIamAdmin) und ihr dann die Berechtigung zu geben, diese Rolle für andere zuzuweisen oder zu widerrufen. Wenn Sie Lila jedoch die Rolle des Projekt-IAM-Administrators zuweisen, kann sie die Bedingung aus ihrer eigenen Rolle entfernen und sich die Berechtigung geben, jede beliebige IAM-Rolle zuzuweisen oder zu widerrufen.

Sie können zur Vermeidung dieser Rechteausweitung stattdessen eine Google-Gruppe (iam-compute-admins@example.com) für die eingeschränkten IAM-Administratoren des Projekts erstellen. Anschließend fügen Sie „Lila” der Gruppe hinzu und geben ihr die Rolle des Gruppenmanagers.

Nachdem Sie die Gruppe erstellt haben, gewähren Sie der Gruppe die Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin). Mit der Rolle „Projekt-IAM-Administrator“ können Gruppenmitglieder IAM-Rollen zuweisen und widerrufen. Die Bedingung schränkt ein, welche Rollen sie zuweisen oder widerrufen können:

{
  "version": 3,
  "etag": "BwWKmjvelug=",
  "bindings": [
    {
      "members": [
        "user:owner@example.com"
      ],
      "role": "roles/owner"
    },
    {
      "members": [
        "iam-compute-admins@example.com"
      ],
      "role": "roles/resourcemanager.projectIamAdmin",
      "condition": {
        "title": "only_compute_admin_role",
        "description": "Only allows changes to role bindings for the Compute Admin role",
        "expression":
          "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/compute.admin'])"
      }
    }
  ]
}

Als Mitglied der Gruppe iam-compute-admins@example.com kann Lila Folgendes tun:

  • Die Rolle „Compute-Administrator“ für das Projekt zuweisen. Dazu fügt sie eine neue Bindung für die Rolle hinzu oder fügt ein Mitglied einer vorhandenen Bindung für die Rolle hinzu.
  • Die Rolle „Compute-Administrator“ widerrufen, indem sie eine vorhandene Bindung für die Rolle entfernt oder ein Mitglied aus einer vorhandenen Bindung für die Rolle entfernt.
  • Die Berechtigungen für die Rolle „Compute-Administrator“ ändern, indem sie Bedingungen, die mit den Rollen verknüpft sind, hinzufügt, entfernt oder ändert.
  • Führen Sie weitere Aktionen durch, die von der Rolle Projekt-IAM-Administrator zugelassen wurden und die IAM-Richtlinie des Projekts nicht ändern. Mit der Methode projects.getIamPolicy kann sie beispielsweise die Richtlinie des Projekts abrufen.

Als Manager der Gruppe iam-compute-admins@example.com kann Lila anderen Nutzern die Berechtigung „Compute-Administrator“ zuweisen oder widerrufen, indem sie die Nutzer der Gruppe iam-compute-admins@example.com hinzufügt.

Lila kann nicht:

  • Sich selbst andere Rollen zuweisen oder widerrufen.
  • IAM-Richtlinien für andere Ressourcen als das Projekt ändern.
  • Andere Rollen als die Rolle „Compute-Administrator“ zuweisen.
  • Andere Rollen als die Rolle „Compute-Administrator“ widerrufen.
  • Bedingungen für Rollenbindungen, die die Rolle „Compute-Administrator“ nicht zuweisen, hinzufügen, entfernen oder ändern.

Begrenzte Rollen zuweisen

In den folgenden Abschnitten wird erläutert, wie Sie Mitgliedern ermöglichen, nur bestimmte Rollen zuzuweisen oder zu widerrufen.

Schreiben eines Bedingungsausdrucks zur Einschränkung der Rollenzuweisung

Wenn Sie die Fähigkeit eines Mitglieds einschränken möchten, Rollen zuzuweisen, schreiben Sie einen Bedingungsausdruck mit den Rollen, die ein Mitglied zuweisen oder widerrufen kann.

Verwenden Sie das folgende Format für Ihren Bedingungsausdruck:

api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(roles)

Dieser Ausdruck bewirkt Folgendes:

  • Ruft das API-Attribut iam.googleapis.com/modifiedGrantsByRole mithilfe der Funktion api.getAttribute() ab.

    Bei einer Anfrage zum Festlegen der IAM-Richtlinie einer Ressource enthält dieses Attribut die Rollennamen der Bindungen, die durch die Anfrage geändert werden. Bei anderen Arten von Anfragen ist das Attribut nicht definiert. In diesen Fällen gibt die Funktion den Standardwert [] zurück.

  • Verwendet dashasOnly() Common Expression Language (CEL) um die Rollen zu definieren und zu erzwingen, die das Mitglied zuweisen oder widerrufen kann.

    Die Eingabe für die Funktion hasOnly() ist eine Liste der Rollen, die das Mitglied gewähren oder widerrufen kann. Wenn die Rollen im Attribut iam.googleapis.com/modifiedGrantsByRole in dieser Liste enthalten sind, gibt die Funktion true zurück. Wenn sie nicht gleich sind, gibt die Funktion false zurück:

    Wenn das Attribut iam.googleapis.com/modifiedGrantsByRole den Standardwert ([]) enthält, gibt die Funktion true zurück, da [] keine Rollen enthält, die nicht in der Liste enthalten sind.

Wenn Sie diesen Ausdruck anpassen möchten, ersetzen Sie roles durch eine Liste der Rollen, die das Mitglied zuweisen oder widerrufen kann. Um z. B. dem Mitglied nur zu erlauben, die Rollen Pub/Sub-Bearbeiter (roles/pubsub.editor) und Pub/Sub-Publisher (roles/pubsub.publisher) zuzuweisen oder zu widerrufen, verwenden Sie den Wert['roles/pubsub.editor', 'roles/pubsub.publisher'].

Sie können bis zu zehn Werte in die Liste der zulässigen Rollen aufnehmen. Alle diese Werte müssen Stringkonstanten sein.

Rollenzuweisung mit bedingten Rollenbindungen einschränken

Damit ein Mitglied nur bestimmte Rollen gewähren oder entziehen kann, verwenden Sie den Bedingungsausdruck aus dem vorherigen Abschnitt, um eine bedingte Rollenbindung zu erstellen. Fügen Sie dann der IAM-Richtlinie einer Ressource die bedingte Rollenbindung hinzu.

  1. Wählen Sie eine Ressource für den Bereich aus, für den Sie einem Mitglied Rollen zuweisen oder widerrufen möchten:

    • Wenn Sie einem Mitglied erlauben möchten, bestimmte Rollen für alle Ressourcen in einer Organisation zuzuweisen oder zu widerrufen, wählen Sie eine Organisation aus.
    • Wenn Sie einem Mitglied erlauben möchten, bestimmte Rollen für alle Ressourcen in einem Ordner zuzuweisen oder zu widerrufen, wählen Sie einen Ordner aus.
    • Wenn Sie einem Mitglied erlauben möchten, bestimmte Rollen für alle Ressourcen innerhalb eines Projekts zuzuweisen oder zu widerrufen, wählen Sie ein Projekt aus.
  2. Wählen Sie eine Rolle aus, mit der ein Mitglied die IAM-Richtlinie für den ausgewählten Ressourcentyp (Projekt, Ordner oder Organisation) festlegen kann. Wählen Sie eine der folgenden vordefinierten Rollen aus, um dem Grundsatz der geringsten Berechtigung zu folgen:

    • Projekte: Projekt-IAM-Administrator (roles/resourcemanager.projectIamAdmin)
    • Ordner: Ordner-IAM-Administrator (roles/resourcemanager.folderIamAdmin)
    • Organisationen: Organisationsadministrator (roles/resourcemanager.organizationAdmin).

    Alternativ können Sie eine benutzerdefinierte Rolle auswählen, die die Berechtigungen resourcemanager.resource-type.setIamPolicy und resourcemanager.resource-type.getIamPolicy enthält, wobei resource-type project, folder oder organization ist.

  3. Weisen Sie einem Mitglied bedingt die ausgewählte Rolle für das ausgewählte Projekt, den Ordner oder die Organisation zu.

    Die neue Richtlinie wird angewendet und Ihr Mitglied kann die Bindungen nur für die Rollen ändern, die Sie zugelassen haben.

    Console

    1. Rufen Sie in der Cloud Console die Seite IAM auf.

      Zur IAM-Seite

    2. Prüfen Sie, ob der Name Ihres Projekts, Ihres Ordners oder Ihrer Organisation in der Ressourcenauswahl oben auf der Seite angezeigt wird. Die Ressourcenauswahl gibt an, in welchem Projekt, welchem Ordner oder welcher Organisation gerade Sie arbeiten.

      Wenn Sie den Namen Ihrer Ressource nicht sehen, klicken Sie auf die Ressourcenauswahl und wählen Sie dann Ihre Ressource aus.

    3. Suchen Sie in der Mitgliederliste nach dem Mitglied, das Rollen gewähren und widerrufen soll, und klicken Sie auf .

    4. Wählen Sie im Bereich Berechtigungen bearbeiten die Rolle aus, die Sie zuvor ausgewählt haben. Klicken Sie dann unter Bedingung auf Bedingung hinzufügen.

    5. Geben Sie im Bereich Bedingung bearbeiten einen Titel und eine optionale Beschreibung für die Bedingung ein.

    6. Klicken Sie auf den Tab Bedingungseditor und geben Sie den Ausdruck ein, den Sie unter Bedingungsausdruck schreiben, um die Rollenzuweisung zu gewähren geschrieben haben. Dieser Ausdruck begrenzt, welche Rollen ein Mitglied zuweisen oder widerrufen kann.

      Der folgende Bedingungsausdruck beschränkt das Mitglied zum Beispiel auf die Zuweisung und den Widerruf der Rollen Pub/Sub-Bearbeiter (roles/pubsub.editor) und Pub/Sub-Publisher (roles/pubsub.publisher):

      api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
      

      Warnung: Die folgenden Rollentypen dürfen nicht in die Liste der zulässigen Rollen aufgenommen werden:

      • Rollen mit Berechtigungen zum Zuweisen und Widerrufen von IAM-Rollen (d. h. Rollen mit Berechtigungsnamen, die auf setIamPolicy enden).
      • Benutzerdefinierte Rollen, die der eingeschränkte IAM-Administrator ändern kann. Wenn beispielsweise der eingeschränkte IAM-Administrator auch die Rolle „Rollenadministrator” (roles/iam.roleAdmin) für ein Projekt hat, dürfen Sie nicht zulassen, dass er benutzerdefinierte Rollen auf Projektebene zuweisen oder widerrufen kann.

      Eingeschränkte IAM-Administratoren, die diese Arten von Rollen zuweisen und widerrufen können, können sich auch selbst die Berechtigung erteilen, alle IAM-Rollen zuzuweisen und zu widerrufen. Weitere Informationen finden Sie unter Schreiben eines Bedingungsausdrucks zur Einschränkung der Rollenzuweisung.

    7. Klicken Sie auf Speichern, um die Bedingung anzuwenden.

    8. Nachdem das Feld Bedingung bearbeiten geschlossen wurde, klicken Sie im Bereich Berechtigungen bearbeiten auf Speichern, um Ihre IAM-Richtlinie zu aktualisieren.

    gcloud

    IAM-Richtlinien werden mit dem Muster Read-Modify-Write festgelegt.

    Lesen Sie zuerst die IAM-Richtlinie für die Ressource:

    Führen Sie den Befehl get-iam-policy aus. Mit diesem Befehl wird die aktuelle IAM-Richtlinie für die Ressource abgerufen.

    Befehl:

    gcloud resource-type get-iam-policy resource-id --format=json > path
    

    Ersetzen Sie die folgenden Werte:

    • resource-type: Der Ressourcentyp, für den Sie einem Mitglied Rollen zuweisen oder entziehen möchten. Verwenden Sie eine der folgenden Optionen: projects, resource-manager folders oder organizations.
    • resource-id: Ihr Google Cloud-Projekt, Ihr Ordner oder Ihre Organisations-ID.
    • path: Der Pfad der Datei, in die die IAM-Richtlinie heruntergeladen werden soll.

    Die IAM-Richtlinie wird im JSON-Format gespeichert. Zum Beispiel:

    {
      "bindings": [
        {
          "members": [
            "user:project-owner@example.com"
          ],
          "role": "roles/owner"
        }
      ],
      "etag": "BwWKmjvelug=",
      "version": 1
    }
    

    Ändern Sie dann die Richtlinie.

    Wenn ein Mitglied nur die Bindungen für bestimmte Rollen ändern soll, fügen Sie die hervorgehobene bedingte Rollenbindung hinzu:

    {
      "bindings": [
        {
          "members": [
            "user:owner@example.com"
          ],
          "role": "roles/owner"
        },
        {
          "members": [
            "member"
          ],
          "role": "role",
          "condition": {
            "title": "title",
            "description": "description",
            "expression":
              "expression"
          }
        }
      ],
      "etag": "BwWKmjvelug=",
      "version": 3
    }

    Ersetzen Sie die folgenden Werte:

    • member: Das Mitglied, dem bestimmte Rollen zugewiesen oder entzogen werden sollen. Beispiel: user:my-user@example.com. Die Formate der einzelnen Mitgliedertypen finden Sie in der Referenz zu Binding.
    • role: Die Rolle, die Sie in den vorherigen Schritten ausgewählt haben. Diese Rolle muss die Berechtigung setIamPolicy für den ausgewählten Ressourcentyp enthalten.
    • title: Ein String, der die Bedingung kurz beschreibt. Beispiel: only_pubsub_roles.
    • description: Optional. Eine zusätzliche Beschreibung für die Bedingung. Beispiel: Only allows granting/revoking the Pub/Sub editor and publisher roles.
    • expression: Der Ausdruck, den Sie unter Schreiben eines Bedingungsausdrucks zur Einschränkung der Rollenzuweisung geschrieben haben. Dieser Ausdruck begrenzt, welche Rollen ein Mitglied zuweisen oder widerrufen kann.

      Der folgende Bedingungsausdruck beschränkt das Mitglied zum Beispiel auf die Zuweisung und den Widerruf der Rollen Pub/Sub-Bearbeiter (roles/pubsub.editor) und Pub/Sub-Publisher (roles/pubsub.publisher):

      api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
      

      Warnung: Die folgenden Rollentypen dürfen nicht in die Liste der zulässigen Rollen aufgenommen werden:

      • Rollen mit Berechtigungen zum Zuweisen und Widerrufen von IAM-Rollen (d. h. Rollen mit Berechtigungsnamen, die auf setIamPolicy enden).
      • Benutzerdefinierte Rollen, die der eingeschränkte IAM-Administrator ändern kann. Wenn beispielsweise der eingeschränkte IAM-Administrator auch die Rolle „Rollenadministrator” (roles/iam.roleAdmin) für ein Projekt hat, dürfen Sie nicht zulassen, dass er benutzerdefinierte Rollen auf Projektebene zuweisen oder widerrufen kann.

      Eingeschränkte IAM-Administratoren, die diese Arten von Rollen zuweisen und widerrufen können, können sich auch selbst die Berechtigung erteilen, alle IAM-Rollen zuzuweisen und zu widerrufen. Weitere Informationen finden Sie unter Schreiben eines Bedingungsausdrucks zur Einschränkung der Rollenzuweisung.

    Schreiben Sie anschließend die aktualisierte Richtlinie:

    Legen Sie die neue Richtlinie mit dem Befehl set-iam-policy für die Ressource fest:

    gcloud resource-type set-iam-policy resource-id path
    

    Ersetzen Sie die folgenden Werte:

    • resource-type: Der Ressourcentyp, für den Sie einem Mitglied Rollen zuweisen oder entziehen möchten. Verwenden Sie eine der folgenden Optionen: projects, resource-manager folders oder organizations.
    • resource-id: Ihr Google Cloud-Projekt, Ihr Ordner oder Ihre Organisations-ID.
    • path: Ein Pfad zur Datei, die die aktualisierte Richtlinie enthält.

    Die neue Richtlinie wird angewendet und das Mitglied kann die Bindungen nur für die Rollen ändern, die Sie zugelassen haben.

    REST

    IAM-Richtlinien werden mit dem Muster Read-Modify-Write festgelegt.

    Lesen Sie zuerst die IAM-Richtlinie für die Ressource:

    Die Methode getIamPolicy der Resource Manager API ruft die IAM-Richtlinie eines Projekts, Ordners oder einer Organisation ab.

    Ersetzen Sie diese Werte in den folgenden Anweisungen:

    • API_VERSION: Die zu verwendende API-Version. Verwenden Sie v1 für Projekte und Organisationen. Verwenden Sie v2 für Ordner.
    • RESOURCE_TYPE: Der Ressourcentyp, dessen Richtlinie Sie verwalten möchten. Verwenden Sie den Wert projects, folders oder organizations.
    • RESOURCE_ID: Die ID Ihres Google Cloud-Projekts, Ihrer Organisation oder Ihres Ordners. Projekt-IDs sind alphanumerische Strings, wie my-project. Ordner- und Organisations-IDs sind numerisch, z. B. 123456789012.
    • 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/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy

    JSON-Text anfordern:

    {
      "options": {
        "requestedPolicyVersion": POLICY_VERSION
      }
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie müssten in etwa folgende JSON-Antwort erhalten:

    {
      "version": 1,
      "etag": "BwWKmjvelug=",
      "bindings": [
        {
          "role": "roles/owner",
          "members": [
            "user:owner@example.com"
          ]
        }
      ]
    }
    

    Ändern Sie dann die Richtlinie.

    Fügen Sie eine bedingte Rollenbindung hinzu, mit der Mitglieder nur bestimmte Rollen zuweisen und widerrufen können. Setzen Sie dabei das Feld version auf den Wert 3:

    {
      "version": 3,
      "etag": "BwWKmjvelug=",
      "bindings": [
        {
          "members": [
            "user:owner@example.com"
          ],
          "role": "roles/owner"
        },
        {
          "members": [
            "MEMBER"
          ],
          "role": "ROLE",
          "condition": {
            "title": "TITLE",
            "description": "DESCRIPTION",
            "expression":
              "EXPRESSION"
          }
        }
      ]
    }
    • MEMBER: Das Mitglied, dem bestimmte Rollen zugewiesen oder entzogen werden sollen. Beispiel: user:my-user@example.com. Die Formate der einzelnen Mitgliedertypen finden Sie in der Referenz zu Binding.
    • ROLE: Die Rolle, die Sie in den vorherigen Schritten ausgewählt haben. Diese Rolle muss die Berechtigung setIamPolicy für den ausgewählten Ressourcentyp enthalten.
    • TITLE: Ein String, der die Bedingung kurz beschreibt. Beispiel: only_pubsub_roles.
    • DESCRIPTION: Optional. Eine zusätzliche Beschreibung für die Bedingung. Beispiel: Only allows granting/revoking the Pub/Sub editor and publisher roles.
    • EXPRESSION: Der Ausdruck, den Sie unter Schreiben eines Bedingungsausdrucks zur Einschränkung der Rollenzuweisung geschrieben haben. Dieser Ausdruck begrenzt, welche Rollen ein Mitglied zuweisen oder widerrufen kann.

      Der folgende Bedingungsausdruck beschränkt das Mitglied zum Beispiel auf die Zuweisung und den Widerruf der Rollen Pub/Sub-Bearbeiter (roles/pubsub.editor) und Pub/Sub-Publisher (roles/pubsub.publisher):

      api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
      

      Warnung: Die folgenden Rollentypen dürfen nicht in die Liste der zulässigen Rollen aufgenommen werden:

      • Rollen mit Berechtigungen zum Zuweisen und Widerrufen von IAM-Rollen (d. h. Rollen mit Berechtigungsnamen, die auf setIamPolicy enden).
      • Benutzerdefinierte Rollen, die der eingeschränkte IAM-Administrator ändern kann. Wenn beispielsweise der eingeschränkte IAM-Administrator auch die Rolle „Rollenadministrator” (roles/iam.roleAdmin) für ein Projekt hat, dürfen Sie nicht zulassen, dass er benutzerdefinierte Rollen auf Projektebene zuweisen oder widerrufen kann.

      Eingeschränkte IAM-Administratoren, die diese Arten von Rollen zuweisen und widerrufen können, können sich auch selbst die Berechtigung erteilen, alle IAM-Rollen zuzuweisen und zu widerrufen. Weitere Informationen finden Sie unter Schreiben eines Bedingungsausdrucks zur Einschränkung der Rollenzuweisung.

    Schreiben Sie anschließend die aktualisierte Richtlinie:

    Die Methode setIamPolicy der Resource Manager API legt die Richtlinie in der Anfrage als neue IAM-Richtlinie für das Projekt, den Ordner oder die Organisation fest.

    Ersetzen Sie diese Werte in den folgenden Anweisungen:

    • API_VERSION: Die zu verwendende API-Version. Verwenden Sie v1 für Projekte und Organisationen. Verwenden Sie v2 für Ordner.
    • RESOURCE_TYPE: Der Ressourcentyp, dessen Richtlinie Sie verwalten möchten. Verwenden Sie den Wert projects, folders oder organizations.
    • RESOURCE_ID: Die ID Ihres Google Cloud-Projekts, Ihrer Organisation oder Ihres Ordners. Projekt-IDs sind alphanumerische Strings, wie my-project. Ordner- und Organisations-IDs sind numerisch, z. B. 123456789012.
    • POLICY: Eine JSON-Darstellung der Richtlinie, die Sie festlegen möchten. Weitere Informationen zum Format einer Richtlinie finden Sie in der Richtlinienreferenz.

      Zum Festlegen der im vorherigen Schritt angezeigten Richtlinie ersetzen Sie beispielsweise POLICY durch Folgendes:

      {
        "version": 3,
        "etag": "BwWKmjvelug=",
        "bindings": [
          {
            "members": [
              "user:owner@example.com"
            ],
            "role": "roles/owner"
          },
          {
            "members": [
              "member"
            ],
            "role": "role",
            "condition": {
              "title": "title",
              "description": "description",
              "expression":
                "expression"
            }
          }
        ]
      }
      

    HTTP-Methode und URL:

    POST https://iam.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_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.

Nächste Schritte