Audit-Logs zum Datenzugriff konfigurieren

In dieser Anleitung wird erläutert, wie Sie in Ihrem Projekt oder in Ihrer Organisation einzelne Elemente von Audit-Logs zum Datenzugriff aktivieren und konfigurieren. Allgemeine Informationen zu Audit-Logs finden Sie unter Cloud-Audit-Logs.

Audit-Logs zur Administratoraktivität sind für alle Google Cloud-Dienste aktiviert und können nicht konfiguriert werden.

Konfigurationsübersicht

Audit-Logs zum Datenzugriff sind – außer für BigQuery – standardmäßig deaktiviert. Sie können einzelne Elemente von Audit-Logs zum Datenzugriff aktivieren und konfigurieren.

  • Organisationen: Sie können Audit-Logs zum Datenzugriff in einer Organisation aktivieren und konfigurieren. Diese gelten dann für alle vorhandenen und neuen Projekte und Ordner in der Organisation.

  • Ordner: Sie können Audit-Logs zum Datenzugriff in einem Ordner aktivieren und konfigurieren. Dies gilt für alle vorhandenen und neuen Projekte in dem Ordner. Ein Audit-Log zum Datenzugriff, das in der Organisation des Projekts aktiviert wurde, kann jedoch nicht deaktiviert werden.

  • Projekte: Sie können Audit-Logs zum Datenzugriff für ein einzelnes Projekt konfigurieren. Ein Audit-Log zum Datenzugriff, das in der Organisation oder dem Ordner des Projekts aktiviert wurde, kann jedoch nicht deaktiviert werden.

  • Rechnungskonten. Zum Konfigurieren von Audit-Logs zum Datenzugriff für Rechnungskonten verwenden Sie das gcloud-Befehlszeilentool. Weitere Informationen zur Verwendung des gcloud-Tools mit Audit-Logs zum Datenzugriff und Rechnungskonten finden Sie in der Referenzdokumentation zu gcloud beta billing accounts set-iam-policy.

  • Standardkonfigurationen: Sie können eine Standardkonfiguration für Audit-Logs zum Datenzugriff in einer Organisation, in einem Ordner oder in einem Projekt festlegen, die für künftige Google Cloud-Dienste gilt, die Audit-Logs zum Datenzugriff erstellen.

  • Dienste: Sie können angeben, für welche Dienste Sie Audit-Logs erhalten möchten. Sie möchten beispielsweise Audit-Logs von Compute Engine, aber nicht von Cloud SQL erhalten. Eine Liste der Google Cloud-Dienste, die Audit-Logs generieren können, finden Sie unter Google-Dienste mit Audit-Logs.

  • Informationsarten: Sie können steuern, welche Arten von Informationen die Audit-Logs enthalten. Für die Prüfung des Datenzugriffs stehen Ihnen drei Arten von Audit-Log-Informationen zur Verfügung:

    • Lesen durch Administrator: Zeichnet Vorgänge auf, die Metadaten oder Konfigurationsinformationen lesen.

      In Audit-Logs zur Administratoraktivität werden Schreibvorgänge für Metadaten und Konfigurationsinformationen aufgezeichnet. Sie können nicht deaktiviert werden.

    • Daten lesen: Zeichnet Vorgänge auf, die von Nutzern bereitgestellte Daten lesen.

    • Daten schreiben: Zeichnet Vorgänge auf, die von Nutzern bereitgestellte Daten schreiben.

    Sie können beispielsweise nur Logs für Vorgänge zum Schreiben von Daten (DATA_WRITE), aber alle drei Arten von Informationen aus Cloud DNS erfassen.

  • Ausgenommene Nutzer: Sie können festlegen, dass die Datenzugriffe bestimmter Nutzer oder Gruppen nicht aufgezeichnet werden. Beispielsweise haben Sie die Möglichkeit, die Aufzeichnung der Cloud Debugger-Vorgänge für Ihre internen Testkonten auszuschließen.

Sie können Audit-Logs zum Datenzugriff mit der IAM-Audit-Log-Konsole oder der API konfigurieren. Diese Methoden werden in den folgenden Abschnitten erläutert.

Dienstspezifische Konfigurationen

Wenn sowohl eine Konfiguration für alle Google Cloud-Dienste (allServices) als auch eine Konfiguration für einen bestimmten Google Cloud-Dienst vorhanden ist, werden für die endgültige Konfiguration des Dienstes beide Konfigurationen zusammengefasst. Dies bedeutet im Einzelnen:

  • Sie können Audit-Logs zum Datenzugriff für bestimmte Google Cloud-Dienste aktivieren, aber keine Audit-Logs zum Datenzugriff für Google Cloud-Dienste deaktivieren, die in der umfassenderen Konfiguration aktiviert sind.

  • Sie können einem Audit-Log zum Datenzugriff eines Google Cloud-Dienstes zusätzliche Informationsarten hinzufügen, aber keine Informationsarten entfernen, die in der umfassenderen Konfiguration festgelegt sind.

  • Sie können Nutzer zu Ausnahmelisten hinzufügen, aber keine Nutzer aus den Ausnahmelisten der umfassenderen Konfiguration entfernen.

Konfigurationen für Organisationen, Ordner und Projekte

Audit-Logs zum Datenzugriff können für Organisationen, Ordner und Projekte konfiguriert werden. Wenn eine Konfiguration für einen Google Cloud-Dienst in der Hierarchie vorhanden ist, ist die resultierende Konfiguration die Vereinigung der Konfigurationen. Das bedeutet auf Projektebene im Einzelnen:

  • Sie können Logs für einen Google Cloud-Dienst aktivieren, aber keine Logs für einen Google Cloud-Dienst deaktivieren, die im Ordner oder in der Organisation aktiviert sind.

  • Sie können Informationsarten aktivieren, aber keine Informationsarten deaktivieren, die in der Organisation oder im Ordner aktiviert sind.

  • Sie können Nutzer zu Ausnahmelisten hinzufügen, aber keine Nutzer entfernen, die in den Ausnahmelisten der Organisation oder des Ordners enthalten sind.

  • Auf Organisations- oder Ordnerebene können Sie Audit-Logs zum Datenzugriff für ein Projekt in dieser Organisation oder in diesem Ordner aktivieren, auch wenn in dem Projekt keine Audit-Logs zum Datenzugriff konfiguriert wurden.

Zugriffssteuerung

Sie benötigen die folgenden IAM-Rollen (Identity and Access Management), um Audit-Logs für den Datenzugriff für Ihre Google Cloud-Ressourcen zu konfigurieren:

Audit-Logs zum Datenzugriff mit der Cloud Console konfigurieren

In diesem Abschnitt wird erläutert, wie Sie Audit-Logs zum Datenzugriff mithilfe der Cloud Console konfigurieren.

Sie können die entsprechenden Aufgaben auch programmatisch mit der API oder mit dem gcloud-Befehlszeilentool ausführen. Weitere Informationen finden Sie unter Audit-Logs zum Datenzugriff mit der API konfigurieren.

So rufen Sie die Konfigurationsoptionen für Audit-Logs in der Cloud Console auf:

  1. Wählen Sie in der Cloud Console die Option IAM und Verwaltung > Audit-Logs aus:

    Zur Seite "Audit-Logs"

  2. Wählen Sie oben auf der Seite ein Google Cloud-Projekt, einen Ordner oder eine Organisation aus.

Audit-Logs aktivieren

Die folgenden Schritte zeigen, wie Sie Audit-Logs zum Datenzugriff aktivieren:

  1. Wählen Sie auf der Seite Audit-Logs in der Haupttabelle aus der Spalte Titel einen oder mehrere Google Cloud-Dienste aus.

  2. Klicken Sie im Tab Logtyp auf die Kästchen für die Audit-Logtypen zum Datenzugriff, die Sie aktivieren möchten, und klicken Sie dann auf Speichern.

  3. Wenn die Audit-Logs aktiviert wurden, enthält die Tabelle ein Häkchen. Im folgenden Beispiel sehen Sie, dass für den Dienst Cloud Composer API die Audit-Logs Lesen durch Administrator und Daten lesen aktiviert sind:

    Konfiguration von Audit-Logs

Sie können auch Audit-Logs für alle Google Cloud-Dienste aktivieren, die Audit-Logs zum Datenzugriff erstellen. Wählen Sie auf der Seite Audit-Logs in der Haupttabelle alle Google Cloud-Dienste aus.

Beachten Sie, dass diese Bulk-Konfigurationsmethode nur für die derzeit verfügbaren Google Cloud-Dienste gilt. Wenn ein neuer Google Cloud-Dienst hinzugefügt wird, übernimmt dieser die Audit-Standardkonfiguration.

Audit-Logs zum Datenzugriff deaktivieren

Die folgenden Schritte zeigen, wie Sie Audit-Logs zum Datenzugriff deaktivieren:

  1. Wählen Sie auf der Seite Audit-Logs in der Haupttabelle einen oder mehrere Google Cloud-Dienste aus.

  2. Wählen Sie auf dem Tab Logtyp die Audit-Logtypen für den Datenzugriff aus, die Sie deaktivieren möchten, und klicken Sie dann auf Speichern.

  3. Wenn Sie Audit-Logs zum Datenzugriff deaktiviert haben, wird dies in der Tabelle mit einem grauen Bindestrich angezeigt. Alle aktivierten Audit-Logs zum Datenzugriff sind mit einem grünen Häkchen gekennzeichnet.

Nutzerausnahmen festlegen

Mit Ausnahmen lässt sich steuern, welche Nutzer Audit-Logs erstellen können. Wenn Sie einen Nutzer hinzufügen, der ausgenommen werden soll, werden für diesen Nutzer keine Audit-Logs für die ausgewählten Logtypen erstellt. Beachten Sie, dass Logs für Administratoraktivitäten unabhängig vom Ausnahmestatus immer generiert werden.

Mit den folgenden Schritten können Sie Ausnahmen festlegen:

  1. Wählen Sie auf der Konfigurationsseite für Audit-Logs in der Haupttabelle aus der Spalte Titel einen oder mehrere Google Cloud-Dienste aus.

  2. Wählen Sie den Tab Ausgenommene Nutzer aus. Geben Sie unter Ausgenommenen Nutzer hinzufügen die E-Mail-Adresse des Nutzers ein, den Sie der Ausnahmeliste für die ausgewählten Dienste hinzufügen möchten. Mit der Schaltfläche Ausgenommenen Nutzer hinzufügen können Sie beliebig viele Nutzer hinzufügen.

  3. Klicken Sie auf die Kästchen neben den Audit-Logtypen für den Datenzugriff, die Sie für den Nutzer deaktivieren möchten, und klicken Sie dann auf Speichern.

  4. Anschließend wird in der Tabelle in der Spalte Ausnahmen die Anzahl der ausgenommenen Nutzer angezeigt.

So entfernen Sie einen Nutzer aus der Ausnahmeliste:

  1. Wählen Sie im Informationsfenster den Tab Ausgenommene Nutzer aus.

  2. Bewegen Sie den Mauszeiger auf einen Nutzernamen und wählen Sie das angezeigte Papierkorbsymbol aus.

  3. Wenn der Name des Nutzers durchgestrichen angezeigt wird, klicken Sie auf Speichern.

So bearbeiten Sie die Informationen für einen ausgenommenen Nutzer:

  1. Wählen Sie im Informationsfenster den Tab Ausgenommene Nutzer aus.

  2. Klicken Sie auf den Erweiterungspfeil rechts neben dem Nutzernamen.

  3. Aktivieren bzw. deaktivieren Sie die gewünschten Audit-Logtypen für den Nutzer und klicken Sie dann auf Speichern.

Standardkonfiguration festlegen

Sie können eine Konfiguration festlegen, die alle neuen und vorhandenen Google Cloud-Dienste in Ihrem Projekt, in Ihrem Ordner oder in Ihrer Organisation übernimmt. Die Festlegung dieser Standardkonfiguration gilt, wenn ein neuer Google Cloud-Dienst verfügbar wird, den Nutzer in Ihrer Organisation verwenden: Der Dienst übernimmt die Audit-Logging-Richtlinie, die Sie bereits für andere Google Cloud-Dienste festgelegt haben und sorgt dafür, dass Audit-Logs zum Datenzugriff erfasst werden.

  1. Klicken Sie oben auf der Seite auf Standardkonfiguration festlegen.

  2. Wählen Sie im Tab Logtyp die Kästchen für die Audit-Logtypen für Datenzugriffe aus, die Sie aktivieren oder deaktivieren möchten, und klicken Sie dann auf Speichern.

  3. Geben Sie im Tab Ausgenommene Nutzer die E-Mail-Adressen der Nutzer ein, die Sie auf die Ausnahmeliste setzen möchten, und klicken Sie dann auf Speichern. Folgen Sie den Schritten im obigen Abschnitt Nutzerausnahmen festlegen.

Audit-Logs zum Datenzugriff mit der API konfigurieren

In diesem Abschnitt wird erläutert, wie Sie mit der API und mit dem gcloud-Tool Audit-Logs zum Datenzugriff programmatisch konfigurieren.

Viele dieser Aufgaben können auch mit der Cloud Console ausgeführt werden. Einzelheiten dazu finden Sie im Abschnitt Audit-Logs zum Datenzugriff mit der Cloud Console konfigurieren.

IAM-Richtlinienobjekte

Damit Sie mit der API Audit-Logs für den Datenzugriff konfigurieren können, müssen Sie die Ihrem Projekt, Ordner oder Ihrer Organisation zugeordnete IAM-Richtlinie bearbeiten. Die Konfiguration des Audit-Logs befindet sich im Abschnitt auditConfigs der Richtlinie:

"auditConfigs": [
  {
    object(AuditConfig)
  }
]

Weitere Informationen finden Sie unter IAM-Richtlinientyp.

In den folgenden Abschnitten wird das AuditConfig-Objekt genauer erläutert. Die API- und gcloud-Tool-Befehle zum Ändern der Konfiguration finden Sie im Abschnitt getIamPolicy und setIamPolicy.

AuditConfig-Objekte

Die Audit-Logkonfiguration besteht aus einer Liste mit AuditConfig-Objekten. Mit jedem Objekt werden die Logs für einen Dienst konfiguriert. Sie können mit einem Objekt aber auch eine umfassendere Konfiguration für alle Dienste festlegen. Die Objekte sehen so aus:

{
  "service": SERVICE,
  "auditLogConfigs": [
    {
      "logType": "ADMIN_READ"
      "exemptedMembers": [ MEMBER,]
    },
    {
      "logType": "DATA_READ"
      "exemptedMembers": [ MEMBER,]
    },
    {
      "logType": "DATA_WRITE"
      "exemptedMembers": [ MEMBER,]
    },
  ]
},

SERVICE ist ein Dienstname (z. B. "appengine.googleapis.com") oder der spezielle Wert "allServices". Wenn ein bestimmter Dienst in einer Konfiguration nicht angegeben ist, wird für diesen Dienst die umfassendere Konfiguration verwendet. Wenn keine Konfiguration vorhanden ist, sind für diesen Dienst keine Audit-Logs zum Datenzugriff aktiviert. Eine Liste der Dienstnamen finden Sie unter Logdienste.

Der auditLogConfigs-Abschnitt des AuditConfig-Objekts besteht aus einer Liste von 0 bis 3 Objekten, die jeweils eine Art von Audit-Loginformationen konfigurieren. Wenn Sie eine Art in der Liste weglassen, wird diese Art von Informationen nicht für den Dienst aktiviert.

MEMBER ist ein Nutzer, für den keine Audit-Logs für den Datenzugriff erfasst werden. Sie können einzelne Nutzer, Gruppen oder Dienstkonten angeben. Der Bindungstyp beschreibt verschiedene Arten von Mitgliedern, die jedoch nicht alle zum Konfigurieren von Audit-Logs zum Datenzugriff verwendet werden können.

Das folgende Beispiel zeigt eine Audit-Log-Konfiguration im JSON- und YAML-Format. Für das gcloud-Befehlszeilentool wird standardmäßig das YAML-Format verwendet.

JSON

"auditConfigs": [
  {
    "auditLogConfigs": [
      {
        "logType": "ADMIN_READ"
      },
      {
        "logType": "DATA_WRITE"
      },
      {
        "logType": "DATA_READ"
      }
    ],
    "service": "allServices"
  },
  {
    "auditLogConfigs": [
      {
        "exemptedMembers": [
          "499862534253-compute@developer.gserviceaccount.com"
        ],
        "logType": "ADMIN_READ"
      }
    ],
    "service": "cloudsql.googleapis.com"
  }
],

YAML

auditConfigs:
- auditLogConfigs:
  - logType: ADMIN_READ
  - logType: DATA_WRITE
  - logType: DATA_READ
  service: allServices
- auditLogConfigs:
  - exemptedMembers:
    - 499862534253-compute@developer.gserviceaccount.com
    logType: ADMIN_READ
  service: cloudsql.googleapis.com

Häufig verwendete Konfigurationen

Nachfolgend werden verschiedene allgemeine Audit-Logkonfigurationen für Projekte gezeigt.

Diese Konfigurationen enthalten keine Audit-Logkonfiguration für die Organisation oder für den Ordner des Projekts. Weitere Informationen finden Sie unter Organisations- und Projektkonfigurationen.

Alle Audit-Logs zum Datenzugriff aktivieren

In dem im Folgenden dargestellten Abschnitt auditConfigs werden Audit-Logs zum Datenzugriff für alle Dienste und Nutzer aktiviert.

JSON

"auditConfigs": [
      {
        "service": "allServices",
        "auditLogConfigs": [
          { "logType": "ADMIN_READ" },
          { "logType": "DATA_READ"  },
          { "logType": "DATA_WRITE" },
        ]
      },
    ]

YAML

auditConfigs:
- auditLogConfigs:
  - logType: ADMIN_READ
  - logType: DATA_WRITE
  - logType: DATA_READ
  service: allServices

Einen Dienst und eine Informationsart aktivieren

Mit der folgenden Konfiguration werden Audit-Logs zum Datenzugriff für Cloud SQL aktiviert. Damit werden in den Logs nur die Schreibvorgänge für benutzerdefinierte Daten aufgezeichnet.

JSON

"auditConfigs": [
  {
    "service": "cloudsql.googleapis.com",
    "auditLogConfigs": [
      { "logType": "DATA_WRITE" },
    ]
  },
]

YAML

auditConfigs:
- auditLogConfigs:
  - logType: DATA_WRITE
  service: cloudsql.googleapis.com

Alle Audit-Logs zum Datenzugriff deaktivieren

Wenn Sie innerhalb eines Projekts alle Audit-Logs für den Datenzugriff – außer für BigQuery – deaktivieren möchten, fügen Sie in die neue IAM-Richtlinie einen leeren Abschnitt auditConfigs: ein:

JSON

"auditConfigs": [],

YAML

auditConfigs:

Wenn Sie den Abschnitt auditConfigs vollständig aus der neuen Richtlinie entfernen, wird die vorhandene Konfiguration der Audit-Logs zum Datenzugriff von setIamPolicy nicht geändert. Weitere Informationen finden Sie im Abschnitt Aktualisierungsmaske "setIamPolicy".

Für BigQuery können Audit-Logs zum Datenzugriff nicht deaktiviert werden.

getIamPolicy und setIamPolicy

Mit den Methoden getIamPolicy und setIamPolicy der Resource Manager API können Sie Ihre IAM-Richtlinie lesen und schreiben. Dafür stehen verschiedene Methoden zur Verfügung, wie im Folgenden aufgeführt.

  • Die Resource Manager API bietet folgende Methoden:

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • Das gcloud-Befehlszeilentool bietet die folgenden Resource Manager-Befehle:

    gcloud projects get-iam-policy
    gcloud projects set-iam-policy
    gcloud organizations get-iam-policy
    gcloud organizations set-iam-policy
    gcloud beta billing accounts get-iam-policy
    gcloud beta billing accounts set-iam-policy
    

Führen Sie ungeachtet Ihrer Wahl die folgenden drei Schritte aus:

  1. Lesen Sie die aktuelle Richtlinie mit einer getIamPolicy-Methode. Speichern Sie die Richtlinie in einer temporären Datei.
  2. Bearbeiten Sie die Richtlinie in der temporären Datei. Ändern Sie nur den Abschnitt auditConfigs bzw. fügen Sie diesen hinzu.
  3. Schreiben Sie die bearbeitete Richtlinie mit einer setIamPolicy-Methode in die temporäre Datei.

Wenn vom Resource Manager festgestellt wird, dass die Richtlinie von einem anderen Nutzer geändert wurde, nachdem Sie sie im ersten Schritt gelesen haben, schlägt setIamPolicy fehl. Wiederholen Sie in diesem Fall die drei Schritte.

Beispiele

Die folgenden Beispiele zeigen, wie Sie die Audit-Logs zum Datenzugriff Ihres Projekts mit dem Befehl gcloud und der Resource Manager API konfigurieren.

Zum Konfigurieren von Audit-Logs zum Datenzugriff für die Organisation ersetzen Sie die "Projektversion" der Befehle und API-Methoden durch die "Organisationsversion".

gcloud

So konfigurieren Sie mit dem Befehl gcloud projects Audit-Logs zum Datenzugriff:

  1. Lesen Sie die IAM-Richtlinie des Projekts und speichern Sie sie in einer Datei:

    gcloud projects get-iam-policy PROJECT_ID > /tmp/policy.yaml
    

    Unten sehen Sie die zurückgegebene Richtlinie. Diese Richtlinie enthält noch nicht den Abschnitt auditConfigs:

    bindings:
    - members:
      - user:colleague@example.com
      role: roles/editor
    - members:
      - user:myself@example.com
      role: roles/owner
    etag: BwVM-FDzeYM=
    version: 1
    
  2. Bearbeiten Sie die Richtlinie in /tmp/policy.yaml, wobei Sie nur die Konfiguration der Audit-Logs zum Datenzugriff hinzufügen oder ändern.

    Nachstehend sehen Sie ein Beispiel für die bearbeitete Richtlinie, mit der Audit-Logs für Schreibvorgänge bei Datenzugriffen in Cloud SQL aktiviert werden. Am Anfang wurden vier Zeilen hinzugefügt:

    auditConfigs:
    - auditLogConfigs:
      - logType: DATA_WRITE
      service: cloudsql.googleapis.com
    bindings:
    - members:
      - user:colleague@example.com
      role: roles/editor
    - members:
      - user:myself@example.com
      role: roles/owner
    etag: BwVM-FDzeYM=
    version: 1
    
  3. Schreiben Sie die neue IAM-Richtlinie:

    gcloud projects set-iam-policy PROJECT_ID /tmp/policy.yaml
    

    Wenn durch den vorangegangenen Befehl ein Konflikt mit einer anderen Änderung ausgelöst wird, wiederholen Sie diese Schritte ab Punkt 1.

JSON

Um mit Ihrer IAM-Richtlinie im JSON-Format anstelle von YAML zu arbeiten, ersetzen Sie die folgenden gcloud-Befehle im Beispiel:

gcloud projects get-iam-policy PROJECT_ID --format=json >/tmp/policy.json
gcloud projects set-iam-policy PROJECT_ID /tmp/policy.json

API

So konfigurieren Sie Audit-Logs zum Datenzugriff mit der Resource Manager API:

  1. Lesen Sie die IAM-Richtlinie des Projekts und legen Sie für die API-Methode "getIamPolicy" die folgenden Parameter fest:

    • Ressource: projects/PROJECT_ID
    • Anfragetext: leer

    Die Methode gibt wie unten dargestellt das aktuelle Richtlinienobjekt zurück. Die Richtlinie für dieses Projekt hat noch keinen Abschnitt auditConfigs:

    {
      "bindings": [
      {
        "members": [
          "user:colleague@example.com"
        ],
        "role": "roles/editor"
      },
      {
        "members": [
          "user:myself@example.com"
        ],
        "role": "roles/owner"
      }
    ],
    "etag": "BwUsv2gimRs=",
    "version": 1
    

    }

  2. Bearbeiten Sie die aktuelle Richtlinie:

    • Ändern Sie den Abschnitt auditConfigs oder fügen Sie ihn hinzu.

      Um die Audit-Logs zum Datenzugriff zu deaktivieren, fügen Sie einen leeren Wert für den Abschnitt auditConfigs:[] ein.

    • Übernehmen Sie den Wert von etag.

    Sie können auch alle anderen Informationen aus dem neuen Richtlinienobjekt entfernen, solange Sie im nächsten Schritt updateMask festlegen. Im Folgenden ist die bearbeitete Richtlinie dargestellt, mit der Audit-Logs für Schreibvorgänge bei Datenzugriffen in Cloud SQL aktiviert werden:

    {
      "auditConfigs": [
        {
          "auditLogConfigs": [
            {
              "logType": "DATA_WRITE"
            }
          ],
          "service": "cloudsql.googleapis.com"
        }
      ],
      "etag": "BwVM-FDzeYM="
    }
    
  3. Schreiben Sie die neue Richtlinie mit der API-Methode "setIamPolicy". Geben Sie dabei die folgenden Parameter an:

    • Ressource: projects/PROJECT_ID
    • Anfragetext:
      • Aktualisierungsmaske: "auditConfigs,etag"
      • Richtlinie: das bearbeitete Richtlinienobjekt

Aktualisierungsmaske "setIamPolicy"

In diesem Abschnitt wird gezeigt, wie wichtig der Parameter updateMask in der Methode setIamPolicy ist, und erläutert, warum Sie vorsichtig mit dem Befehl set-iam-policy des gcloud-Tools sein müssen, damit Ihr Projekt oder Ihre Organisation nicht versehentlich zu Schaden kommt.

Bei der setIamPolicy API method legt der Parameter updateMask fest, welche Richtlinienfelder aktualisiert werden. Wenn die Maske beispielsweise keinen Wert für bindings enthält, kann dieser Richtlinienabschnitt nicht versehentlich geändert werden. Enthält die Maske dagegen einen Wert für bindings, dann wird dieser Abschnitt immer aktualisiert. Wenn Sie keinen geänderten Wert für bindings angeben, wird dieser Abschnitt vollständig aus der Richtlinie entfernt.

Mit dem Befehl gcloud projects set-iam-policy, der setIamPolicy aufruft, können Sie den Parameter updateMask nicht festlegen. Stattdessen wird mit dem Befehl folgendermaßen ein Wert für updateMask berechnet:

  • updateMask enthält immer die Felder bindings und etag.
  • Wenn das in set-iam-policy angegebene Richtlinienobjekt andere Felder der obersten Ebene wie auditConfigs enthält, werden diese Felder zu updateMask hinzugefügt.

Der Befehl set-iam-policy verhält sich aufgrund dieser Regeln wie im Folgenden dargestellt.

  • Wenn Sie den Abschnitt auditConfigs in der neuen Richtlinie weglassen, bleibt der vorherige Wert des Abschnitts auditConfigs (falls vorhanden) erhalten, da dieser Abschnitt nicht Teil der Aktualisierungsmaske ist. Dies hat keine Auswirkungen, kann aber verwirrend sein.

  • Wenn Sie bindings im neuen Richtlinienobjekt weglassen, wird der Abschnitt bindings aus der Richtlinie entfernt, da dieser Abschnitt in der Aktualisierungsmaske enthalten ist. Dies ist sehr schädlich und führt dazu, dass alle Nutzer den Zugriff auf Ihr Projekt verlieren.

  • Wenn Sie etag im neuen Richtlinienobjekt weglassen, wird die Richtlinie nicht mehr auf gleichzeitig vorgenommene Änderungen überprüft und Ihre Änderungen überschreiben möglicherweise die Änderungen eines anderen Nutzers.