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-Bindung 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 ein binding auch eine condition angeben. Dies ist ein logischer Ausdruck, der den Zugriff auf eine Ressource nur 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.

JSON-Darstellung
{
  "version": integer,
  "bindings": [
    {
      object (Binding)
    }
  ],
  "auditConfigs": [
    {
      object (AuditConfig)
    }
  ],
  "rules": [
    {
      object (Rule)
    }
  ],
  "etag": string
}
Felder
version

integer

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, geben Vorgänge für diese Richtlinie möglicherweise eine gültige Version an oder das Feld wird ohne Festlegung gelassen.

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

bindings[]

object (Binding)

Verbindet 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 einem 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 bindings 50 verschiedene Rollen zu user:alice@example.com und keinem anderen Hauptkonto zuweist, können Sie dem bindings in Policy weitere 1.450 Hauptkonten hinzufügen.

auditConfigs[]

object (AuditConfig)

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

rules[]

object (Rule)

Wenn mehr als eine Regel angegeben ist, werden die Regeln wie folgt angewendet: – Alle übereinstimmenden LOG-Regeln werden immer angewendet. – Wenn eine DENY/DENY_WITH_LOG-Regel übereinstimmt, wird die Berechtigung verweigert. Logging wird angewendet, wenn für eine oder mehrere Übereinstimmungsregeln Logging erforderlich ist. – Wenn eine ALLOW/ALLOW_WITH_LOG-Regel übereinstimmt, wird die Berechtigung gewährt. Logging wird angewendet, wenn für eine oder mehrere Übereinstimmungsregeln Logging erforderlich ist. – Andernfalls wird die Berechtigung verweigert, wenn keine Regel zutrifft.

etag

string (bytes format)

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.

Ein base64-codierter String.

Bindung

Ordnet members oder Hauptkonten mit einer role zu.

JSON-Darstellung
{
  "role": string,
  "members": [
    string
  ],
  "condition": {
    object (Expr)
  },
  "bindingId": string
}
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 im Internet, ob mit oder ohne Google-Konto 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 Kennzeichnung 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.comoder example.com
  • principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: Einzelne Identität im Workforce Identity-Pool.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{groupId}: Alle Workforce-Identitäten in einer Gruppe.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: Alle Workforce-Identitäten mit einem bestimmten Attributwert.

  • principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: Alle Identitäten in einem Workforce Identity-Pool.

  • principal://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: Einzelne Identität im Workload Identity-Pool.

  • principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/group/{groupId}: Eine Workload Identity-Poolgruppe.

  • principalSet://iam.googleapis.com/projects/{projectNumber}/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/{projectNumber}/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 Nutzer, der kürzlich gelöscht wurde. 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 ID für ein Dienstkonto, das kürzlich gelöscht wurde. 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.

  • deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: Gelöschte einzelne Identität im Workforce Identity-Pool. Beispiel: deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value.

condition

object (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 könnte jedoch einem oder mehreren der Hauptkonten in dieser Bindung die gleiche Rolle zuweisen.

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

bindingId

string

Expr

Stellt einen Textausdruck in der CEL-Syntax (Common Expression Language) dar. CEL ist eine C-ähnliche Sprache für Ausdrücke. Weitere Informationen zur Syntax und Semantik von CEL finden Sie unter https://github.com/google/cel-spec.

Beispiel (Vergleich):

title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"

Beispiel (Gleichheit):

title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"

Beispiel (Logik):

title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"

Beispiel (Datenbearbeitung):

title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"

Die genauen Variablen und Funktionen, auf die in einem Ausdruck verwiesen werden kann, werden durch den Dienst bestimmt, der den Ausdruck auswertet. Weitere Informationen finden Sie in der Dokumentation zum Dienst.

JSON-Darstellung
{
  "expression": string,
  "title": string,
  "description": string,
  "location": string
}
Felder
expression

string

Textdarstellung eines Ausdrucks in der Common Expression Language-Syntax.

title

string

Optional. Titel für den Ausdruck, d. h. ein kurzer String, der seinen Zweck beschreibt. Diese Funktion kann z. B. in UIs verwendet werden, in denen die Eingabe von Ausdrücken zulässig ist.

description

string

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

location

string

Optional. String, der den Speicherort des Ausdrucks für Error Reporting angibt, z.B. 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 Logtypen (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:jose@example.com"
          ]
        },
        {
          "logType": "DATA_WRITE"
        },
        {
          "logType": "ADMIN_READ"
        }
      ]
    },
    {
      "service": "sampleservice.googleapis.com",
      "auditLogConfigs": [
        {
          "logType": "DATA_READ"
        },
        {
          "logType": "DATA_WRITE",
          "exemptedMembers": [
            "user:aliya@example.com"
          ]
        }
      ]
    }
  ]
}

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

JSON-Darstellung
{
  "service": string,
  "auditLogConfigs": [
    {
      object (AuditLogConfig)
    }
  ]
}
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.

auditLogConfigs[]

object (AuditLogConfig)

Die Konfiguration des Logging für die einzelnen Berechtigungstypen.

AuditLogConfig

Konfiguriert die Protokollierung für einen Berechtigungstyp. Beispiel:

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

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

JSON-Darstellung
{
  "logType": enum (LogType),
  "exemptedMembers": [
    string
  ],
  "ignoreChildExemptions": boolean
}
Felder
logType

enum (LogType)

Der Protokolltyp, der von dieser Konfiguration aktiviert wird.

exemptedMembers[]

string

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

ignoreChildExemptions

boolean

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

Regel

Eine Regel, die in einer Richtlinie angewendet werden soll.

JSON-Darstellung
{
  "description": string,
  "permissions": [
    string
  ],
  "action": enum (Action),
  "in": [
    string
  ],
  "notIn": [
    string
  ],
  "conditions": [
    {
      object (Condition)
    }
  ],
  "logConfig": [
    {
      object (LogConfig)
    }
  ]
}
Felder
description

string

Menschenlesbare Beschreibung der Regel.

permissions[]

string

Eine Berechtigung ist eine Zeichenfolge in der Form '..' (z.B. 'storage.buckets.list'). Der Wert „*“ entspricht allen Berechtigungen, ein Verbteil von „*“ (z.B. „storage.buckets.*“) entspricht allen Verben.

action

enum (Action)

Erforderlich

in[]

string

Wenn eine oder mehrere "in"-Klauseln angegeben sind, trifft die Regel zu, wenn der PRINCIPAL/AUTHORITY_SELECTOR in mindestens einem dieser Einträge vorhanden ist.

notIn[]

string

Wenn eine oder mehrere "notIn"-Klauseln festgelegt sind, trifft die Regel zu, wenn der PRINCIPAL/AUTHORITY_SELECTOR in keinem Eintrag enthalten ist.

conditions[]

object (Condition)

Zusätzliche Einschränkungen, die erfüllt sein müssen. Alle Bedingungen müssen erfüllt sein, damit die Regel übereinstimmt.

logConfig[]

object (LogConfig)

Die Konfiguration, die an Aufrufer von CheckPolicy für alle Einträge zurückgegeben wird, die mit der LOG-Aktion übereinstimmen.

Aktion

Regelaktionstypen.

Enums
NO_ACTION Keine Aktion (Standard).
ALLOW Übereinstimmende "Einträge" gewähren einen Zugriff.
ALLOW_WITH_LOG Übereinstimmende "Einträge" gewähren einen Zugriff und der Anrufer verspricht, die Anfrage gemäß den zurückgegebenen Protokollkonfigurationen (log_configs) zu protokollieren.
DENY Übereinstimmende "Einträge" verweigern einen Zugriff.
DENY_WITH_LOG Übereinstimmende "Einträge" verweigern einen Zugriff und der Anrufer verspricht, die Anfrage gemäß den zurückgegebenen Protokollkonfigurationen (log_configs) zu protokollieren.
LOG Übereinstimmende "Einträge" teilen IAM.Check-Anrufern mit, Logs zu generieren.

Bedingung

Eine Bedingung, die erfüllt werden muss.

JSON-Darstellung
{
  "op": enum (Operator),
  "values": [
    string
  ],

  // Union field Subject can be only one of the following:
  "iam": enum (Attr),
  "sys": enum (Attr),
  "svc": string
  // End of list of possible types for union field Subject.
}
Felder
op

enum (Operator)

Ein Operator, mit dem das Thema angewendet wird.

values[]

string

Die Objekte der Bedingung.

Union-Feld Subject. Thema der Bedingung. Für Subject ist nur einer der folgenden Werte zulässig:
iam

enum (Attr)

Vom IAM-System angegebene vertrauenswürdige Attribute.

sys

enum (Attr)

Vertrauenswürdige Attribute, die von einem Dienst angegeben werden, der Eigentümer von Ressourcen ist und das IAM-System für die Zugriffskontrolle verwendet.

svc

string

Vertrauenswürdige Attribute, die vom Dienst freigegeben werden.

Attr

Attributtypen.

Enums
NO_ATTR Kein Attribut (Standard).
AUTHORITY Entweder Verantwortlicher (Principal) oder (wenn vorhanden) Autorisierungsauswahl.
ATTRIBUTION Der Verantwortliche (auch wenn eine Autorisierungsauswahl vorhanden ist), der nur für die Zuordnung und nicht für die Autorisierung verwendet werden darf.
SECURITY_REALM Alle Sicherheitsbereiche im IAMContext (go/security-realms). Bei Verwendung mit IN gibt die Bedingung an, dass „beliebiger Bereich der Anfrage mit einem der angegebenen Werte übereinstimmt; mit NOT_IN stimmt keiner der Bereiche mit einem der angegebenen Werte überein“. Beachten Sie, dass ein Wert wie folgt lauten kann: - 'self:campus' (d. h. Clients, die sich auf demselben Campus befinden) - 'self:metro' (d. h. Clients, die sich in derselben Metropolregion befinden) - 'self:cloud-region' (d. h. Verbindungen von Clients zulassen, die sich in derselben Cloud-Region befinden) - "self:prod-region" (d. h. Verbindungen von Clients zulassen, die sich in derselben Cloud-Region befinden) - "self:prod-region" in der Region, die die Verbindungen aus der Region zulassen, in der gleichen Region. guard, die die Verbindungen in der gleichen Region zulassen. Weitere Informationen finden Sie unter go/security-realms-Glossar#guardian. – „self“ [VERWORFEN] (d.h. zulassen Verbindungen von Clients, die sich im selben Sicherheitsbereich befinden, der derzeit Campusgröße hat, aber nicht garantiert ist) – ein Bereich (z.B. 'campus-abc') – Bereichsgruppe (z.B. „realms-for-borg-cell-xx“, siehe: go/realm-groups) Eine Übereinstimmung wird durch eine Prüfung der Zugehörigkeit zu Bereichsgruppen bestimmt, die von einem RealmAclRep-Objekt (go/realm-acl-howto) durchgeführt wird. Es ist nicht zulässig, Zugriff auf Basis des Abwesens eines Bereichs zu gewähren. Bereichsbedingungen können daher nur in einem „positiven“ Kontext verwendet werden (z. B. ALLOW/IN oder DENY/NOT_IN).
APPROVER Ein Genehmiger (nicht der Anforderer), der diese Anfrage autorisiert hat. Bei Verwendung mit IN gibt die Bedingung an, dass einer der mit der Anfrage verknüpften Genehmiger mit dem angegebenen Hauptkonto übereinstimmt oder Mitglied der angegebenen Gruppe ist. Genehmiger können nur einen zusätzlichen Zugriff gewähren und werden daher ausschließlich in einem rein "positiven" Kontext (z. B. ALLOW/IN oder DENY/NOT_IN) verwendet.
JUSTIFICATION_TYPE

Welche Begründungen für diese Anfrage angegeben wurden. Stringwerte müssen mit den Enum-Namen aus „security.credentials.JustificationType“ übereinstimmen, z.B. „MANUAL_STRING“. Es ist nicht zulässig, Zugriff auf Grundlage fehlender Begründung zu gewähren. Begründungsbedingungen können daher nur in einem „positiven“ Kontext verwendet werden (z. B. ALLOW/IN oder DENY/NOT_IN).

Mehrere Begründungen, z. B. eine Buganizer-ID und ein manuell eingegebener Grund, sind üblich und werden unterstützt.

CREDENTIALS_TYPE Die Art von Anmeldedaten, die mit dieser Anfrage angegeben wurden. Stringwerte sollten mit den Enum-Namen aus security_loas_l2.CredentialsType übereinstimmen – derzeit wird nur CREDS_TYPE_EMERGENCY unterstützt. Es darf kein Zugriff gewährt werden, wenn ein Anmeldedatentyp nicht vorhanden ist. Die Bedingungen sind also nur in einem „positiven“ Kontext (z. B. ALLOW/IN oder DENY/NOT_IN).
CREDS_ASSERTION

EXPERIMENTELL – NICHT VERWENDEN.

Die Bedingungen dürfen nur in einem „positiven“ Kontext (z.B. ALLOW/IN oder DENY/NOT_IN).

Attr

Attributtypen.

Enums
NO_ATTR Kein Attributtyp (Standard)
REGION Region der Ressource
SERVICE Dienstname
NAME Ressourcenname
IP IP-Adresse des Anrufers

Operator

Typen von Bedingungsoperatoren.

Enums
NO_OP Kein Operator (Standard).
EQUALS VERWORFEN. Verwenden Sie stattdessen IN.
NOT_EQUALS VERWORFEN. Verwenden Sie stattdessen NOT_IN.
IN Die Bedingung ist "true", wenn das Thema (oder bei einem Set ein beliebiges darin enthaltenes Element) mit einem der angegebenen Werte übereinstimmt.
NOT_IN Die Bedingung ist "true", wenn das Thema (oder bei einem Set ein beliebiges darin enthaltenes Element) mit keinem der angegebenen Werte übereinstimmt.
DISCHARGED Thema wurde freigegeben.

LogConfig

Legt fest, welchen Protokolltyp der Anrufer schreiben muss.

JSON-Darstellung
{

  // Union field type can be only one of the following:
  "counter": {
    object (CounterOptions)
  },
  "dataAccess": {
    object (DataAccessOptions)
  },
  "cloudAudit": {
    object (CloudAuditOptions)
  }
  // End of list of possible types for union field type.
}
Felder
Union-Feld type. Muss für type festgelegt werden und darf nur einer der folgenden Werte sein:
counter

object (CounterOptions)

Zähleroptionen.

dataAccess

object (DataAccessOptions)

Datenzugriffsoptionen.

cloudAudit

object (CloudAuditOptions)

Cloud-Audit-Optionen.

CounterOptions

Erhöht einen streamz-Zähler mit dem angegebenen Messwert und den angegebenen Feldnamen.

Messwertnamen sollten mit einem Schrägstrich (/) beginnen, dürfen in der Regel nur kleingeschrieben werden und enden mit „_count“. Feldnamen dürfen keinen Schrägstrich am Anfang enthalten. Den tatsächlich exportierten Messwertnamen wird „/iam/policy“ vorangestellt.

Feldnamen entsprechen IAM-Anfrageparametern und Feldwerte sind ihre jeweiligen Werte.

Unterstützte Feldnamen: – „authority“, was „[token]“ ist, wenn IAMContext.token vorhanden ist, andernfalls der Wert von IAMContext.authority_selector (falls vorhanden) und andernfalls eine Darstellung von IAMContext.principal; oder - „iamPrincipal“, eine Darstellung von IAMContext.principal, auch wenn ein Token- oder Autorisierungsselektor vorhanden ist, oder „- „“ (leerer String), was zu einem Zähler mit keinen Feldern führt.

Beispiele: Zähler { metric: "/debug_access_count" Feld: "iamPrincipal" } ==> Zähler erhöhen /iam/policy/debug_access_count {iamPrincipal=[Wert von IAMContext.principal]}

JSON-Darstellung
{
  "metric": string,
  "field": string,
  "customFields": [
    {
      object (CustomField)
    }
  ]
}
Felder
metric

string

Der zu aktualisierende Messwert.

field

string

Der zuzuordnende Feldwert.

customFields[]

object (CustomField)

Benutzerdefinierte Felder.

CustomField

Benutzerdefinierte Felder. Damit kann ein Zähler mit beliebigen Feld/Wert-Paaren erstellt werden. Weitere Informationen finden Sie unter go/RPCsp-custom-fields.

JSON-Darstellung
{
  "name": string,
  "value": string
}
Felder
name

string

Name ist der Feldname.

value

string

Wert ist der Feldwert. Im Gegensatz zu „CounterOptions.field“ ist es wichtig, dass der Wert hier eine Konstante ist, die nicht aus IAMContext abgeleitet wird.

DataAccessOptions

Schreibt ein Datenzugriffs-Log (Gin).

JSON-Darstellung
{
  "logMode": enum (LogMode),
  "isDirectAuth": boolean
}
Felder
logMode

enum (LogMode)

isDirectAuth

boolean

Gibt an, dass der Zugriff durch eine reguläre Erteilungsrichtlinie gewährt wurde

LogMode

Gibt das Clientverhalten beim Gin-Logging an.

Enums
LOG_MODE_UNSPECIFIED Der Client muss nicht sofort nach der Autorisierungsprüfung ein unvollständiges Gin-Protokoll schreiben. Wenn sich der Client entscheidet, einen zu schreiben, und dies fehlschlägt, kann der Client entweder „Fail-Open“ (die Fortsetzung des Vorgangs zulassen) oder „Fail Closed“ (Zugriff als DENY-Ergebnis) ausführen.
LOG_FAIL_CLOSED

Der Vorgang der Anwendung, in dem diese Autorisierungsprüfung durchgeführt wird, darf nur ausgeführt werden, wenn er erfolgreich in Gin protokolliert wurde. Beispielsweise kann die Autorisierungsbibliothek diese Verpflichtung erfüllen, indem sie zum Zeitpunkt der Autorisierungsprüfung einen partiellen Protokolleintrag ausgibt und nur ALLOW an die Anwendung zurückgibt, wenn dies erfolgreich ist.

Wenn eine übereinstimmende Regel diese Anweisung enthält, der Client aber nicht angegeben hat, dass diese Anforderungen eingehalten werden, führt die IAM-Prüfung zu einem Autorisierungsfehler, da „CheckPolicyResponse.success=false“ festgelegt wird.

CloudAuditOptions

Schreibt ein Cloud-Audit-Log.

JSON-Darstellung
{
  "logName": enum (LogName),
  "authorizationLoggingOptions": {
    object (AuthorizationLoggingOptions)
  },
  "permissionType": enum (PermissionType)
}
Felder
logName

enum (LogName)

Der Log-Name, der in den Cloud-Audit-Datensatz eingetragen werden soll.

authorizationLoggingOptions

object (AuthorizationLoggingOptions)

Informationen, die von der Cloud-Audit-Logging-Pipeline verwendet werden. Wird verworfen, sobald die Migration zu „PermissionType“ abgeschlossen ist (b/201806118).

permissionType

enum (PermissionType)

Der der Berechtigung zugeordnete Typ.

LogName

Enum von Log-Namen.

Enums
UNSPECIFIED_LOG_NAME Standard. Sollte nicht verwendet werden.
ADMIN_ACTIVITY Entspricht "cloudaudit.googleapis.com/activity"
DATA_ACCESS Entspricht "cloudaudit.googleapis.com/dataAccess"

AuthorizationLoggingOptions

Von Cloud-Audit-Logging verwendete Informationen zur Autorisierung.

JSON-Darstellung
{
  "permissionType": enum (PermissionType)
}
Felder
permissionType

enum (PermissionType)

Der Typ der geprüften Berechtigung.

PermissionType

Die Liste der gültigen Berechtigungstypen, die geprüft werden können.

Enums
PERMISSION_TYPE_UNSPECIFIED Standard. Sollte nicht verwendet werden.
ADMIN_READ Lesevorgang der Administratordaten (Meta-Daten).
ADMIN_WRITE Schreibvorgang von Administratordaten (Meta-Daten).
DATA_READ Lesevorgang von Standarddaten.
DATA_WRITE Ein Schreibvorgang von Standarddaten.

PermissionType

Die Liste der gültigen Berechtigungstypen, die geprüft werden können.

Enums
PERMISSION_TYPE_UNSPECIFIED Standard. Sollte nicht verwendet werden.
ADMIN_READ Berechtigungen, die das Lesen von Ressourcenkonfigurationen oder Metadaten einschränken.
ADMIN_WRITE Berechtigungen, die das Ändern der Ressourcenkonfiguration oder von Metadaten einschränken.
DATA_READ Berechtigungen, die das Lesen der von Nutzern bereitgestellten Daten einschränken.
DATA_WRITE Berechtigungen, die das Schreiben von von Nutzern bereitgestellten Daten einschränken.