Paket google.iam.v1

Index

IAMPolicy

API-Übersicht

Verwaltet IAM-Richtlinien (Identitäts- und Zugriffsverwaltungsrichtlinien).

Jede Schnittstelle einer API, die Funktionen zur Zugriffssteuerung bietet, implementiert die Schnittstelle google.iam.v1.IAMPolicy.

Datenmodell

Eine Zugriffssteuerung erfolgt dann, wenn ein Prinzipal (Nutzer oder Dienstkonto) eine Aktion für eine Ressource ausführt, die von einem Dienst bereitgestellt wird. Ressourcen werden durch URI-ähnliche Namen identifiziert und stellen die Einheit der Spezifikation der Zugriffssteuerung dar. Bei Dienstimplementierungen können der Detaillierungsgrad der Zugriffskontrolle und die unterstützten Berechtigungen für die zugehörigen Ressourcen ausgewählt werden. Beispielsweise kann es in einem Datenbankdienst nur zulässig sein, die Zugriffssteuerung auf Tabellenebene anzugeben, während sie in einem anderen Dienst auch auf Spaltenebene vorgegeben werden kann.

Richtlinienstruktur

Siehe google.iam.v1.Policy

In dieser API kommt CRUD absichtlich nicht zum Einsatz, da die Zugriffssteuerungsrichtlinien implizit mit den Ressourcen, zu denen sie gehören, erstellt und gelöscht werden.

AuditConfig

Legt die Audit-Konfiguration für einen Dienst fest. Die Konfiguration bestimmt, welche Berechtigungstypen protokolliert werden und welche Identitäten ggf. von der Protokollierung ausgenommen sind. Ein AuditConfig muss mindestens ein AuditLogConfigs enthalten.

Wenn AuditConfigs sowohl für allServices als auch für einen bestimmten Dienst vorhanden sind, wird für diesen Dienst eine Vereinigungsmenge der beiden AuditConfigs verwendet: Die im jeweiligen AuditConfig angegebenen Logtypen (log_types) werden aktiviert und die angegebenen Mitglieder (exempted_members) werden im jeweiligen AuditLogConfig ausgenommen.

Beispielrichtlinie mit mehreren AuditConfigs:

{
  "audit_configs": [
    {
      "service": "allServices"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
          "exempted_members": [
            "user:jose@example.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "sampleservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "user:aliya@example.com"
          ]
        }
      ]
    }
  ]
}

Für sampleservice aktiviert diese Richtlinie das Logging von DATA_READ, DATA_WRITE und ADMIN_READ. Außerdem wird jose@example.com vom DATA_READ-Logging und aliya@example.com vom DATA_WRITE-Logging ausgenommen.

Felder
service

string

Gibt einen Dienst an, der für das Audit-Logging aktiviert wird. Beispiele: storage.googleapis.com, cloudsql.googleapis.com. allServices ist ein spezieller Wert, der alle Dienste umfasst.

audit_log_configs[]

AuditLogConfig

Die Konfiguration des Logging für die einzelnen Berechtigungstypen.

AuditLogConfig

Konfiguriert die Protokollierung für einen Berechtigungstyp. Beispiel:

{
  "audit_log_configs": [
    {
      "log_type": "DATA_READ",
      "exempted_members": [
        "user:jose@example.com"
      ]
    },
    {
      "log_type": "DATA_WRITE",
    }
  ]
}

Damit wird das Logging von DATA_READ und DATA_WRITE aktiviert und jose@example.com wird vom DATA_READ-Logging ausgenommen.

Felder
log_type

LogType

Der Protokolltyp, der von dieser Konfiguration aktiviert wird.

exempted_members[]

string

Legt die Identitäten fest, die vom Logging für diesen Berechtigungstyp ausgenommen werden. Entspricht dem Format von Binding.members.

ignore_child_exemptions

bool

Gibt an, ob Prinzipale für denselben LogType in untergeordneten Ressourcenrichtlinien ausgenommen werden können. Bei "true" werden alle untergeordneten Ausnahmen ignoriert.

LogType

Die Liste der gültigen Berechtigungstypen, für die Protokollierung konfiguriert werden kann. Admin-Schreibvorgänge werden immer protokolliert und sind nicht konfigurierbar.

Enums
LOG_TYPE_UNSPECIFIED Standardfall. Sollte nicht verwendet werden.
ADMIN_READ Admin-Lesevorgänge. Beispiel: CloudIAM getIamPolicy.
DATA_WRITE Datenschreibvorgänge. Beispiel: CloudSQL Users create.
DATA_READ Datenlesevorgänge. Beispiel: CloudSQL Users list.

Binding

Ordnet members einer role zu.

Felder
role

string

members zugewiesene Rolle. Beispiel: roles/viewer, roles/editor oder roles/owner.

members[]

string

Gibt die Identitäten an, die um Zugriff auf eine Ressource der Cloud Platform bitten. members kann die folgenden Werte annehmen:

  • 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 im Internet, ob mit oder ohne Google-Konto

  • 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 Dienstkonto steht. Beispiel: my-other-app@appspot.gserviceaccount.com

  • 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.comoder example.com

condition

Expr

Die Bedingung, die dieser Bindung zugeordnet ist. HINWEIS: Wird die Bedingung nicht erfüllt, ist über die aktuelle Bindung kein Nutzerzugriff zulässig. Verschiedene Bindungen und ihre Bedingungen werden unabhängig voneinander untersucht.

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 in der Betriebsdokumentation.

options

GetPolicyOptions

OPTIONAL: Ein Objekt des Typs GetPolicyOptions zum Festlegen von Optionen für GetIamPolicy. Dieses Feld wird nur von Cloud IAM verwendet.

GetPolicyOptions

Umfasst die für GetIamPolicy bereitgestellten Einstellungen.

Felder
requested_policy_version

int32

Optional. Die Version des Richtlinienformats, die zurückgegeben werden soll. Die zulässigen Werte sind 0 und 1. Ist der Wert 0 oder das Feld wird weggelassen, wird als Version des Richtlinienformats 1 zurückgegeben.

Policy

Definiert eine Identitäts- und Zugriffsverwaltungsrichtlinie (IAM-Richtlinie). Damit werden bestimmte Richtlinien für die Zugriffssteuerung von Cloud Platform-Ressourcen festgelegt.

Ein Policy besteht aus einer Liste von bindings. Ein binding bindet eine Liste von members mit einer role, wobei es sich bei den Mitgliedern um Nutzerkonten, Google Groups, Google Domains und Dienstkonten handeln kann. Eine role ist eine benannte Liste von Berechtigungen, die von IAM definiert werden.

JSON-Beispiel

{
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:mike@example.com",
        "group:admins@example.com",
        "domain:google.com",
        "serviceAccount:my-other-app@appspot.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/viewer",
      "members": ["user:sean@example.com"]
    }
  ]
}

YAML-Beispiel

bindings:
- members:
  - user:mike@example.com
  - group:admins@example.com
  - domain:google.com
  - serviceAccount:my-other-app@appspot.gserviceaccount.com
  role: roles/owner
- members:
  - user:sean@example.com
  role: roles/viewer

Eine Beschreibung von IAM und der entsprechenden Funktionen finden Sie im IAM-Entwicklerhandbuch.

Felder
version

int32

Veraltet.

bindings[]

Binding

Verbindet eine Liste von members mit einer role. bindings ohne Mitglieder führen zu einem Fehler.

audit_configs[]

AuditConfig

Legt die Konfiguration von Cloud-Audit-Logging für diese Richtlinie fest.

etag

bytes

etag wird für eine optimistische Gleichzeitigkeitserkennung 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.

Wenn im Aufruf von setIamPolicy kein etag enthalten ist, wird die vorhandene Richtlinie überschrieben.

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 in der Betriebsdokumentation.

policy

Policy

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

update_mask

FieldMask

OPTIONAL: FieldMask, die angibt, welche Felder der Richtlinie geändert werden sollen. Dabei werden nur die Felder in der Maske geändert. Wenn keine Maske angegeben ist, wird die folgende Standardmaske verwendet: paths: "bindings, etag". Dieses Feld wird nur von Cloud IAM genutzt.

TestIamPermissionsRequest

Anfragenachricht für die Methode TestIamPermissions.

Felder
resource

string

ERFORDERLICH: Die Ressource, für die das Richtliniendetail angefragt wird. Den passenden Wert für dieses Feld finden Sie in der Betriebsdokumentation.

permissions[]

string

Die Berechtigungen, die für die resource geprüft werden sollen. Berechtigungen mit Platzhaltern (wie '*' oder 'storage.*') sind nicht erlaubt. Weitere Informationen finden Sie in der IAM-Übersicht.

TestIamPermissionsResponse

Antwortnachricht für die Methode TestIamPermissions.

Felder
permissions[]

string

Ein Teil der TestPermissionsRequest.permissions, die dem Aufrufer erteilt wurden.