Package google.iam.v1

Index

Bindung

Verknüpft members oder Hauptkonten mit einer role.

Felder
role

string

Rolle, die der Liste der members oder Hauptkonten zugewiesen ist. Beispiel: roles/viewer, roles/editor oder roles/owner.

Eine Übersicht über die IAM-Rollen und ‑Berechtigungen finden Sie in der IAM-Dokumentation. Eine Liste der verfügbaren vordefinierten Rollen finden Sie hier.

members[]

string

Gibt die Hauptkonten an, die Zugriff auf eine Google Cloud-Ressource anfordern. members kann die folgenden Werte haben:

  • allUsers: eine spezielle Kennung für alle Identitäten im Internet, ob mit oder ohne Google-Konto

  • allAuthenticatedUsers: eine spezielle Kennung für alle Identitäten, die sich mit einem Google-Konto oder einem Google-Dienstkonto authentifiziert haben. Enthält keine Identitäten, die von externen Identitätsanbietern (IdPs) über die Identitätsföderation stammen.

  • user:{emailid}: eine E-Mail-Adresse, die für ein bestimmtes Google-Konto steht. Beispiel: alice@example.com

  • serviceAccount:{emailid}: eine E-Mail-Adresse, die für ein Google-Dienstkonto steht. Beispiel: my-other-app@appspot.gserviceaccount.com

  • serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: eine Kennung für ein Kubernetes-Dienstkonto. Beispiel: my-project.svc.id.goog[my-namespace/my-kubernetes-sa]

  • group:{emailid}: eine E-Mail-Adresse, die für eine Google-Gruppe steht. Beispiel: admins@example.com

  • domain:{domain}: die G Suite-Domain (primäre Domain), die alle Nutzer dieser Domain repräsentiert. Beispiel: google.com oder example.com
  • principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: eine einzelne Identität in einem Mitarbeiteridentitätspool.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}: alle Mitarbeiteridentitäten in einer Gruppe.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: alle Mitarbeiteridentitäten mit einem bestimmten Attributwert.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: alle Identitäten in einem Mitarbeiteridentitätspool.

  • principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: eine einzelne Identität in einem Workload Identity-Pool.

  • principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}: eine Workload Identity-Poolgruppe.

  • principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: alle Identitäten in einem Workload Identity-Pool mit einem bestimmten Attribut.

  • principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*: alle Identitäten in einem Workload Identity-Pool.

  • deleted:user:{emailid}?uid={uniqueid}: eine E-Mail-Adresse mit einer eindeutigen ID für einen kürzlich gelöschten Nutzer. Beispiel: alice@example.com?uid=123456789012345678901. Wenn der Nutzer wiederhergestellt wird, wird dieser Wert in user:{emailid} geändert und der wiederhergestellte Nutzer behält die Rolle in der Bindung bei.

  • deleted:serviceAccount:{emailid}?uid={uniqueid}: eine E-Mail-Adresse mit einer eindeutigen Kennung für ein kürzlich gelöschtes Dienstkonto. Beispiel: my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. Wenn das Dienstkonto wiederhergestellt wird, wird dieser Wert in serviceAccount:{emailid} geändert und das wiederhergestellte Dienstkonto behält die Rolle in der Bindung bei.

  • deleted:group:{emailid}?uid={uniqueid}: eine E-Mail-Adresse mit einer eindeutigen ID für eine kürzlich gelöschte Google-Gruppe. Beispiel: admins@example.com?uid=123456789012345678901 Wenn die Gruppe wiederhergestellt wird, wird dieser Wert in group:{emailid} geändert und die wiederhergestellte Gruppe behält die Rolle in der Bindung bei.

  • deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: eine gelöschte einzelne Identität in einem Mitarbeiteridentitätspool. Beispiel: deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value

condition

Expr

Die Bedingung, die dieser Bindung zugeordnet ist.

Wenn die Bedingung true ergibt, gilt diese Bindung für die aktuelle Anfrage.

Wenn die Bedingung false ergibt, gilt diese Bindung nicht für die aktuelle Anfrage. Eine andere Rollenbindung kann dieselbe Rolle jedoch einem oder mehreren der Hauptkonten in dieser Bindung zuweisen.

Welche Ressourcen Bedingungen in ihren IAM-Richtlinien unterstützen, erfahren Sie in der IAM-Dokumentation.

GetIamPolicyRequest

Anfragenachricht für die Methode GetIamPolicy.

Felder
resource

string

ERFORDERLICH: Die Ressource, für die die Richtlinie angefragt wird. Den passenden Wert für dieses Feld finden Sie unter Ressourcennamen.

options

GetPolicyOptions

OPTIONAL: Ein Objekt des Typs GetPolicyOptions zum Festlegen von Optionen für GetIamPolicy.

GetPolicyOptions

Umfasst die für GetIamPolicy bereitgestellten Einstellungen.

Felder
requested_policy_version

int32

Optional. Die maximale Richtlinienversion, die zum Formatieren der Richtlinie verwendet wird.

Gültige Werte sind 0, 1 und 3. Anfragen mit einem ungültigen Wert werden abgelehnt.

Anfragen für Richtlinien mit bedingten Rollenbindungen müssen Version 3 angeben. Richtlinien ohne bedingte Rollenbindungen können einen beliebigen gültigen Wert angeben oder das Feld bleibt ohne festgelegten Wert.

Die Richtlinie in der Antwort kann die von Ihnen angegebene Richtlinienversion oder eine niedrigere Richtlinienversion verwenden. Wenn Sie beispielsweise Version 3 angeben, die Richtlinie jedoch keine bedingten Rollenbindungen hat, verwendet die Antwort Version 1.

Welche Ressourcen Bedingungen in ihren IAM-Richtlinien unterstützen, erfahren Sie in der IAM-Dokumentation.

Policy

Eine Richtlinie für die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM), die Zugriffssteuerungen für Google Cloud-Ressourcen festlegt.

Eine Policy ist eine Sammlung von bindings. Eine binding bindet ein oder mehrere members oder Hauptkonten an eine einzelne role. Hauptkonten können Nutzerkonten, Dienstkonten, Google-Gruppen und Domains sein (z. B. G Suite). Eine role ist eine benannte Liste von Berechtigungen. Jede role kann eine vordefinierte IAM-Rolle oder eine vom Nutzer erstellte benutzerdefinierte Rolle sein.

Für einige Arten von Google Cloud-Ressourcen kann eine binding auch eine condition angeben. Dies ist ein logischer Ausdruck, der den Zugriff auf eine Ressource nur dann zulässt, wenn der Ausdruck true ergibt. Eine Bedingung kann Beschränkungen basierend auf Attributen der Anfrage, der Ressource oder beiden hinzufügen. Welche Ressourcen Bedingungen in ihren IAM-Richtlinien unterstützen, erfahren Sie in der IAM-Dokumentation.

JSON-Beispiel

    {
      "bindings": [
        {
          "role": "roles/resourcemanager.organizationAdmin",
          "members": [
            "user:mike@example.com",
            "group:admins@example.com",
            "domain:google.com",
            "serviceAccount:my-project-id@appspot.gserviceaccount.com"
          ]
        },
        {
          "role": "roles/resourcemanager.organizationViewer",
          "members": [
            "user:eve@example.com"
          ],
          "condition": {
            "title": "expirable access",
            "description": "Does not grant access after Sep 2020",
            "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
          }
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }

YAML-Beispiel:

    bindings:
    - members:
      - user:mike@example.com
      - group:admins@example.com
      - domain:google.com
      - serviceAccount:my-project-id@appspot.gserviceaccount.com
      role: roles/resourcemanager.organizationAdmin
    - members:
      - user:eve@example.com
      role: roles/resourcemanager.organizationViewer
      condition:
        title: expirable access
        description: Does not grant access after Sep 2020
        expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
    etag: BwWWja0YfJA=
    version: 3

Eine Beschreibung von IAM und seinen Features finden Sie in der IAM-Dokumentation.

Felder
version

int32

Gibt das Format der Richtlinie an.

Gültige Werte sind 0, 1 und 3. Anfragen mit einem ungültigen Wert werden abgelehnt.

Jeder Vorgang, der sich auf bedingte Rollenbindungen auswirkt, muss die Version 3 angeben. Diese Anforderung gilt für die folgenden Vorgänge:

  • Eine Richtlinie abrufen, die eine bedingte Rollenbindung enthält
  • Einer Richtlinie eine bedingte Rollenbindung hinzufügen
  • Eine bedingte Rollenbindung in einer Richtlinie ändern
  • Eine Rollenbindung mit oder ohne Bedingung aus einer Richtlinie entfernen, die Bedingungen enthält

Wichtig: Wenn Sie IAM-Bedingungen verwenden, müssen Sie das Feld etag bei jedem Aufruf von setIamPolicy einfügen. Wenn Sie dieses Feld nicht angeben, ermöglicht IAM das Überschreiben einer Richtlinie der Version 3 mit einer Richtlinie der Version 1. Alle Bedingungen in der Richtlinie der Version 3 gehen dann verloren.

Wenn eine Richtlinie keine Bedingungen enthält, können Vorgänge für diese Richtlinie eine gültige Version angeben oder das Feld bleibt ohne festgelegten Wert.

Welche Ressourcen Bedingungen in ihren IAM-Richtlinien unterstützen, erfahren Sie in der IAM-Dokumentation.

bindings[]

Binding

Verknüpft eine Liste von members oder Hauptkonten mit einer role. Optional können Sie eine condition angeben, die bestimmt, wie und wann bindings angewendet werden. Jede der bindings muss mindestens ein Hauptkonto enthalten.

Die bindings in einer Policy können auf bis zu 1.500 Hauptkonten verweisen. Maximal 250 dieser Hauptkonten können Google-Gruppen sein. Jedes Vorkommen eines Hauptkontos wird auf diese Limits angerechnet. Wenn beispielsweise die bindings 50 verschiedene Rollen zu user:alice@example.com und keinem anderen Hauptkonto zuweisen, können Sie den bindings in der Policy weitere 1.450 Hauptkonten hinzufügen.

etag

bytes

etag wird für eine optimistische Nebenläufigkeitserkennung verwendet, mit der verhindert werden kann, dass sich gleichzeitige Aktualisierungen einer Richtlinie gegenseitig überschreiben. Die Verwendung des etag im Zyklus von Lesen/Ändern/Schreiben zur Ausführung von Richtlinienaktualisierungen wird ausdrücklich empfohlen, um Race-Bedingungen zu vermeiden: Als Antwort auf getIamPolicy wird ein etag zurückgegeben. Es wird erwartet, dass Systeme dieses ETag in die Anforderung an setIamPolicy aufnehmen, damit ihre Änderung auf dieselbe Richtlinienversion angewendet wird.

Wichtig: Wenn Sie IAM-Bedingungen verwenden, müssen Sie das Feld etag bei jedem Aufruf von setIamPolicy einfügen. Wenn Sie dieses Feld nicht angeben, ermöglicht IAM das Überschreiben einer Richtlinie der Version 3 mit einer Richtlinie der Version 1. Alle Bedingungen in der Richtlinie der Version 3 gehen dann verloren.

SetIamPolicyRequest

Anfragenachricht für die Methode SetIamPolicy.

Felder
resource

string

ERFORDERLICH: Die Ressource, für die die Richtlinie festgelegt wird. Den passenden Wert für dieses Feld finden Sie unter Ressourcennamen.

policy

Policy

ERFORDERLICH: Die vollständige Richtlinie, die auf resource angewendet werden soll. Die Größe der Richtlinie ist auf einige 10 KB beschränkt. Eine leere Richtlinie ist zwar gültig, manche Google Cloud-Dienste (zum Beispiel Projekte) lehnen aber eine solche Richtlinie eventuell ab.