Gestalten Sie die Zukunft der Softwarebereitstellung und tragen Sie Ihre Stimme durch. Nehmen Sie dazu den 2021 der DevOps-Umfrage an.

Paket google.iam.v1

Index

IAMPolicy

API-Übersicht

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

Bei jeder Implementierung einer API, die Zugriffssteuerungsfunktionen bietet, wird die Schnittstelle google.iam.v1.IAMPolicy implementiert.

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.

GetIamPolicy

rpc GetIamPolicy ( GetIamPolicyRequest ) gibt zurück ( Policy )

Ruft die Zugriffssteuerungsrichtlinie für eine Ressource ab. Gibt eine leere Richtlinie zurück, wenn die Ressource vorhanden und keine Richtlinie festgelegt ist.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie in der Authentifizierungsübersicht.

SetIamPolicy

rpc SetIamPolicy ( SetIamPolicyRequest ) gibt zurück ( Policy )

Legt die Zugriffssteuerungsrichtlinie für die angegebene Ressource fest. Ersetzt jede vorhandene Richtlinie.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie in der Authentifizierungsübersicht.

TestIamPermissions

rpc TestIamPermissions ( TestIamPermissionsRequest ) gibt zurück ( TestIamPermissionsResponse )

Gibt die Berechtigungen des Aufrufers für die angegebene Ressource zurück. Ist die Ressource nicht vorhanden, wird ein leerer Berechtigungssatz zurückgegeben, kein NOT_FOUND-Fehler.

Hinweis: Dieser Vorgang wurde speziell für die Entwicklung von UIs und Befehlszeilentools konzipiert, die mit Berechtigungen arbeiten, nicht für Autorisierungsprüfungen. Der Vorgang kann Fehler ohne Warnung ignorieren (fail-open).

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie in der Authentifizierungsübersicht.

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:

{
  "audit_configs": [
    {
      "service": "allServices"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
          "exempted_members": [
            "user:foo@gmail.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "fooservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "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.

Felder
service

string

Gibt einen Dienst an, der für die Audit-Protokollierung 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 Loggings für die einzelnen Berechtigungstypen.

AuditLogConfig

Konfiguriert die Protokollierung für einen Berechtigungstyp. Beispiel:

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

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

Felder
log_type

LogType

Der Protokolltyp, der von dieser Konfiguration aktiviert wird.

exempted_members[]

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.

Bindung

Verbindet members mit einer role.

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

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 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.

Policy

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.

Felder
version
(deprecated)

int32

Verworfen.

bindings[]

Binding

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

audit_configs[]

AuditConfig

Legt die Konfiguration der Cloud-Audit-Protokollierung 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 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.

SetIamPolicyRequest

Anforderungsnachricht für die Methode SetIamPolicy.

Felder
resource

string

ERFORDERLICH: Die Ressource, für die die Richtlinie festgelegt wird. Informationen zum erforderlichen Wert für dieses Feld finden Sie in der Betriebsdokumentation.

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, bestimmte Cloud Platform-Dienste (z. B. 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

Anforderungsnachricht für die Methode TestIamPermissions.

Felder
resource

string

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

permissions[]

string

Das Set von Berechtigungen, die für resource überprüft werden sollen. Berechtigungen mit Platzhaltern (etwa '*' oder 'storage.*') sind nicht zulässig. 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.