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 ( |
Felder | |
---|---|
version |
Gibt das Format der Richtlinie an. Gültige Werte sind Jeder Vorgang, der sich auf bedingte Rollenbindungen auswirkt, muss die Version
Wichtig: Wenn Sie IAM-Bedingungen verwenden, müssen Sie das Feld 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[] |
Verbindet eine Liste von Die |
auditConfigs[] |
Legt die Konfiguration der Cloud-Audit-Protokollierung für diese Richtlinie fest. |
etag |
Wichtig: Wenn Sie IAM-Bedingungen verwenden, müssen Sie das Feld Ein base64-codierter String. |
Bindung
Ordnet members
oder Hauptkonten mit einer role
zu.
JSON-Darstellung |
---|
{
"role": string,
"members": [
string
],
"condition": {
object ( |
Felder | |
---|---|
role |
Rolle, die der Liste der 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[] |
Gibt die Hauptkonten an, die Zugriff auf eine Google Cloud-Ressource anfordern.
|
condition |
Die Bedingung, die dieser Bindung zugeordnet ist. Wenn die Bedingung Wenn die Bedingung Welche Ressourcen Bedingungen in ihren IAM-Richtlinien unterstützen, erfahren Sie in der IAM-Dokumentation. |
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 |
Textdarstellung eines Ausdrucks in der Common Expression Language-Syntax. |
title |
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 |
Optional. Beschreibung des Ausdrucks. Dies ist ein längerer Text, der den Ausdruck beschreibt, z. B. wenn der Mauszeiger darauf bewegt wird. |
location |
Optional. Ein String, der in Fehlermeldungen den Speicherort des Ausdrucks angibt, z. B. einen Dateinamen 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 ( |
Felder | |
---|---|
service |
Gibt einen Dienst an, der für das Audit-Logging aktiviert wird. Beispiele: |
auditLogConfigs[] |
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 ( |
Felder | |
---|---|
logType |
Der Protokolltyp, der von dieser Konfiguration aktiviert wird. |
exemptedMembers[] |
Legt die Identitäten fest, die vom Logging für diesen Berechtigungstyp ausgenommen werden. Entspricht dem Format von |
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. |