Richtlinie

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

Eine Policy besteht aus einer Liste von bindings. Eine binding verbindet 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.

JSON-Darstellung

{
  "version": number,
  "bindings": [
    {
      object(Binding)
    }
  ],
  "auditConfigs": [
    {
      object(AuditConfig)
    }
  ],
  "etag": string
}
Felder
version
(deprecated)

number

Verworfen.

bindings[]

object(Binding)

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

auditConfigs[]

object(AuditConfig)

Legt die Konfiguration der Cloud-Audit-Protokollierung für diese Richtlinie fest.

etag

string (bytes format)

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 Policy-Aktualisierung 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, um sicherzustellen, dass ihre Änderung auf dieselbe Richtlinienversion angewendet wird.

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

Ein base64-codierter String.

Bindung

Verbindet members mit einer role.

JSON-Darstellung

{
  "role": string,
  "members": [
    string
  ],
  "condition": {
    object(Expr)
  }
}
Felder
role

string

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

members[]

string

Gibt die Identitäten an, die den Zugriff auf eine Ressource der Cloud Platform anfragen. 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, die mit einem Google-Konto oder einem Dienstkonto authentifiziert sind.

  • user:{emailid}: Eine E-Mail-Adresse, die für ein bestimmtes Google-Konto steht. Beispiel: alice@gmail.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}: Ein Google Apps-Domainname, der für alle Nutzer dieser Domain steht. Beispiel: google.com oder example.com.

condition

object(Expr)

Nicht implementiert. 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 werden mit ihren Bedingungen unabhängig voneinander ausgewertet.

Expr

Stellt einen Ausdruckstext dar. Beispiel:

title: "User account presence"
description: "Determines whether the request has a user account"
expression: "size(request.user) > 0"
JSON-Darstellung

{
  "expression": string,
  "title": string,
  "description": string,
  "location": string
}
Felder
expression

string

Textdarstellung eines Ausdrucks in der Common Expression Language-Syntax.

Der Anwendungskontext der enthaltenen Nachricht bestimmt, welcher bekannte Funktionssatz von CEL unterstützt wird.

title

string

Ein optionaler Titel für den Ausdruck, d. h. eine kurze Zeichenfolge, die seinen Zweck beschreibt. Diese Funktion kann z. B. in UIs verwendet werden, in denen die Eingabe von Ausdrücken zulässig ist.

description

string

Eine optionale Beschreibung des Ausdrucks. Dies ist ein längerer Text, der den Ausdruck beschreibt, z. B. wenn der Mauszeiger darauf bewegt wird.

location

string

Ein optionaler String, der in Fehlermeldungen den Speicherort des Ausdrucks angibt, beispielsweise ein Dateiname und eine Position in der Datei.

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 Protokolltypen (log_types) werden aktiviert und die angegebenen Mitglieder (exempted_members) werden im jeweiligen AuditConfig ausgenommen.

Beispielrichtlinie mit mehreren AuditConfigs:

{
  "auditConfigs": [
    {
      "service": "allServices"
      "auditLogConfigs": [
        {
          "logType": "DATA_READ",
          "exemptedMembers": [
            "user:foo@gmail.com"
          ]
        },
        {
          "logType": "DATA_WRITE",
        },
        {
          "logType": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "fooservice.googleapis.com"
      "auditLogConfigs": [
        {
          "logType": "DATA_READ",
        },
        {
          "logType": "DATA_WRITE",
          "exemptedMembers": [
            "user:bar@gmail.com"
          ]
        }
      ]
    }
  ]
}

Für fooservice aktiviert diese Richtlinie die Protokollierung von DATA_READ, DATA_WRITE und ADMIN_READ. Außerdem werden damit foo@gmail.com vom DATA_READ-Logging und bar@gmail.com vom DATA_WRITE-Logging ausgenommen.

JSON-Darstellung

{
  "service": string,
  "auditLogConfigs": [
    {
      object(AuditLogConfig)
    }
  ]
}
Felder
service

string

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

auditLogConfigs[]

object(AuditLogConfig)

Die Konfiguration des Loggings für die einzelnen Berechtigungstypen.

AuditLogConfig

Konfiguriert die Protokollierung für einen Berechtigungstyp. Beispiel:

{
  "auditLogConfigs": [
    {
      "logType": "DATA_READ",
      "exemptedMembers": [
        "user:foo@gmail.com"
      ]
    },
    {
      "logType": "DATA_WRITE",
    }
  ]
}

Damit wird die Protokollierung von DATA_READ und DATA_WRITE aktiviert und foo@gmail.com wird von der DATA_READ-Protokollierung ausgenommen.

JSON-Darstellung

{
  "logType": enum(LogType),
  "exemptedMembers": [
    string
  ]
}
Felder
logType

enum(LogType)

Der Protokolltyp, der von dieser Konfiguration aktiviert wird.

exemptedMembers[]

string

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

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.