Audit-Logs für den Datenzugriff konfigurieren

In dieser Anleitung wird erläutert, wie Sie in Ihren Cloud-Projekten, Rechnungskonten, Ordnern und Organisationen einige oder alle Audit-Logs zum Datenzugriff aktivieren oder deaktivieren.

Hinweis

Bevor Sie mit der Konfiguration von Audit-Logs zum Datenzugriff fortfahren, lesen Sie die folgenden Informationen:

  • Audit-Logs zum Datenzugriff sind – außer bei BigQuery – standardmäßig deaktiviert. Wenn Audit-Logs zum Datenzugriff für andere Google Cloud-Dienste als BigQuery geschrieben werden sollen, müssen Sie sie explizit aktivieren.

  • Audit-Logs zum Datenzugriff helfen dem Google-Support beim Beheben von Problemen mit Ihrem Konto. Daher empfehlen wir, Audit-Logs zum Datenzugriff nach Möglichkeit zu aktivieren.

Konfigurationsübersicht

Sie können bestimmte Aspekte von Audit-Logs zum Datenzugriff für Ihre Google Cloud-Ressourcen und -Dienste aktivieren und konfigurieren:

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

  • Ordner: Sie können Audit-Logs zum Datenzugriff in einem Ordner aktivieren und konfigurieren, der für alle vorhandenen und neuen Cloud-Projekte in diesem Ordner gilt. Sie können ein Audit-Log zum Datenzugriff, das in der übergeordneten Organisation des Projekts aktiviert wurde, nicht deaktivieren.

  • Projekte: Sie können Audit-Logs zum Datenzugriff für ein einzelnes Cloud-Projekt konfigurieren. Sie können ein Audit-Log zum Datenzugriff, das in einer übergeordneten Organisation oder einem Ordner aktiviert war, nicht deaktivieren.

  • Rechnungskonten: Verwenden Sie die Google Cloud-Befehlszeile, um Audit-Logs zum Datenzugriff für Rechnungskonten zu konfigurieren. Weitere Informationen zur Verwendung der gcloud-Befehlszeile in Audit-Logs und Rechnungskonten finden Sie in der Dokumentation zu gcloud beta billing accounts set-iam-policy-Befehlen.

  • Standardkonfigurationen: Sie können eine Standardkonfiguration für das Audit-Log für den Datenzugriff in einer Organisation, einem Ordner oder einem Cloud-Projekt angeben, die auf zukünftige Google Cloud-Dienste angewendet wird, die Audit-Logs zum Datenzugriff erstellen.

  • Dienste: Sie können die Dienste angeben, deren Audit-Logs Sie 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.

  • Vorgänge: Sie können konfigurieren, welche Arten von Vorgängen in Ihren Audit-Logs zum Datenzugriff aufgezeichnet werden. Es gibt drei Arten von Vorgängen, die aufgezeichnet werden können:

    • ADMIN_READ: Zeichnet Vorgänge auf, bei denen Metadaten oder Konfigurationsinformationen gelesen werden.

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

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

    In Cloud DNS werden beispielsweise alle drei Arten von Vorgängen geschrieben. Sie können die Audit-Logs zum Datenzugriff aber so konfigurieren, dass nur DATA_WRITE-Vorgänge aufgezeichnet werden.

  • Ausgenommene Hauptkonten: Sie können bestimmte Hauptkonten davon ausschließen, dass ihr Datenzugriff aufgezeichnet wird. Sie können beispielsweise für Ihre internen Testkonten die Erfassung ihrer Cloud Debugger-Vorgänge ausschließen. Eine Liste der gültigen Hauptkonten, einschließlich Nutzern und Gruppen, finden Sie in der Referenz zum Typ Binding.

Sie können Audit-Logs für den 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:

  • 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 Hauptkonten zu Ausnahmelisten hinzufügen, sie jedoch nicht von Ausnahmelisten in der umfassenderen Konfiguration entfernen.

  • Bei BigQuery Data Transfer Service wird die Konfiguration des Audit-Logs für den Datenzugriff aus Ihrer Standardkonfiguration des Audit-Logs übernommen.

Google Cloud-Ressourcenkonfigurationen

Sie können Audit-Logs zum Datenzugriff für Cloud-Projekte, Rechnungskonten, Ordner und Organisationen konfigurieren. Wenn es eine Konfiguration für einen Google Cloud-Dienst in der gesamten Hierarchie gibt, ist die resultierende Konfiguration die Gesamtheit dieser Konfigurationen. Mit anderen Worten: Auf Cloud-Projektebene:

  • Sie können Logs für einen Google Cloud-Dienst aktivieren, aber Logs für einen Google Cloud-Dienst, der in einer übergeordneten Organisation oder einem Ordner aktiviert ist, nicht deaktivieren.

  • Sie können zwar verschiedene Informationen aktivieren, aber keine Informationen deaktivieren, die in einer übergeordneten Organisation oder einem übergeordneten Ordner aktiviert sind.

  • Sie können Hauptkonten zu Ausnahmelisten hinzufügen, aber nicht aus Ausnahmelisten in einer übergeordneten Organisation oder einem übergeordneten Ordner entfernen.

  • Auf übergeordneter Organisation oder Ordnerebene können Sie Audit-Logs zum Datenzugriff für ein Cloud-Projekt in dieser Organisation oder diesem Ordner aktivieren, auch wenn Audit-Logs zum Datenzugriff im Cloud-Projekt nicht konfiguriert sind.

Zugriffssteuerung

Der Zugriff auf Logging-Daten wird von IAM-Rollen und -Berechtigungen (Identity and Access Management) gesteuert. Dazu gehört auch das Aufrufen und Verwalten der IAM-Richtlinien, die den Daten-Audit-Logging-Konfigurationen zugrunde liegen.

Wenn Sie die mit der Datenzugriffskonfiguration verknüpften Richtlinien aufrufen oder festlegen möchten, benötigen Sie eine Rolle mit Berechtigungen auf der entsprechenden Ressourcenebene. Eine Anleitung zum Zuweisen dieser Rollen auf Ressourcenebene finden Sie unter Zugriff auf Cloud-Projekte, Ordner und Organisationen verwalten.

  • Zum Festlegen von IAM-Richtlinien benötigen Sie eine Rolle mit der Berechtigung resourcemanager.RESOURCE_TYPE.setIamPolicy.

  • Zum Anzeigen von IAM-Richtlinien benötigen Sie eine Rolle mit der Berechtigung resourcemanager.RESOURCE_TYPE.getIamPolicy.

Eine Liste der Berechtigungen und Rollen, die Sie zum Aufrufen von Audit-Logs zum Datenzugriff benötigen, finden Sie in der Anleitung für die Zugriffssteuerung in Logging.

Audit-Logs zum Datenzugriff mit der Cloud Console konfigurieren

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

Für die programmatische Durchführung dieser Aufgaben können Sie auch die API oder die Google Cloud-Befehlszeile verwenden. Weitere Informationen finden Sie unter Audit-Logs zum Datenzugriff mit der API konfigurieren.

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

  1. Wähle in der Cloud Console die Option IAM &Admin; & gt; Audit-Logs aus:

    Zur Seite „Audit-Logs“

  2. Wählen Sie ein vorhandenes Cloud-Projekt, einen Ordner oder eine Organisation aus.

Audit-Logs aktivieren

So aktivieren Sie Audit-Logs zum Datenzugriff:

  1. Wählen Sie auf der Seite Audit-Logs in der Haupttabelle aus der Spalte Titel 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 für die ausgewählten Dienste aktivieren möchten.

  3. Klicken Sie auf Speichern.

Wenn Sie die Audit-Logs erfolgreich aktiviert haben, enthält die Tabelle ein Häkchen . Im folgenden Beispiel sehen Sie, dass für den Cloud Composer API-Dienst die Audit-Logs Admin Read und Data Read 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 in der Haupttabelle auf der Seite Audit-Logs 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

So deaktivieren Sie die Audit-Logs zum Datenzugriff:

  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 für die ausgewählten Dienste deaktivieren möchten.

  3. Klicken Sie auf Speichern.

Wenn Sie die Audit-Logs zum Datenzugriff deaktiviert haben, wird in der Tabelle ein Bindestrich angezeigt. Alle aktivierten Audit-Logs zum Datenzugriff sind mit einem Häkchen gekennzeichnet.

Ausnahmen festlegen

Sie können Ausnahmen festlegen und damit steuern, welche Hauptkonten Audit-Logs zum Datenzugriff generieren. Wenn Sie ein ausgenommenes Hauptkonto hinzufügen, werden für die ausgewählten Logtypen keine Audit-Logs erstellt.

So legen Sie Ausnahmen fest:

  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 Hauptkonten ein, die Sie für die Generierung von Audit-Logs zum Datenzugriff für die ausgewählten Dienste ausschließen möchten. Sie können mehrere Hauptkonten hinzufügen, indem Sie so oft wie möglich auf die Schaltfläche Ausgenommenen Nutzer hinzufügen klicken.

    Eine Liste der gültigen Hauptkonten, einschließlich Nutzern und Gruppen, finden Sie in der Referenz zum Typ Binding.

  3. Wählen Sie unter Ausgenommene Logtypen die Audit-Logtypen für den Datenzugriff aus, die Sie deaktivieren möchten.

  4. Klicken Sie auf Speichern.

Wenn Sie ausgenommene Hauptkonten einem Dienst hinzugefügt haben, wird dies in der Tabelle in der Spalte Ausnahmen durch eine Zahl angegeben.

So entfernen Sie ein Hauptkonto aus Ihrer Ausnahmeliste:

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

  2. Bewegen Sie den Mauszeiger auf einen Hauptkontonamen und wählen Sie das eingeblendete Löschsymbol aus.

  3. Wenn der Name des Hauptkontos mit einem durchgestrichenen Text angezeigt wird, klicken Sie auf Speichern.

So bearbeiten Sie die Informationen für ein ausgenommenes Hauptkonto:

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

  2. Maximieren Sie den Hauptnamen.

  3. Wählen Sie je nach Bedarf die Typen des Audit-Logs für den Datenzugriff aus oder heben Sie die Auswahl auf.

  4. Klicken Sie auf Speichern.

Standardkonfiguration festlegen

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

So legen Sie die Standardkonfiguration fest:

  1. Klicken Sie auf Standard-Audit-Konfiguration.

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

  3. Geben Sie im Tab Ausgenommene Nutzer die Hauptkonten ein, die Sie von der Generierung von Audit-Logs zum Datenzugriff ausschließen möchten.

  4. Klicken Sie auf Speichern.

    den Sie in die Ausnahmeliste aufnehmen möchten, und klicken Sie dann auf Speichern. Eine Anleitung dazu finden Sie im Abschnitt Ausnahmen festlegen.

Audit-Logs zum Datenzugriff mit der API konfigurieren

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

Viele dieser Aufgaben können auch mit der Cloud Console ausgeführt werden. Weitere Informationen finden Sie unter Audit-Logs zum Datenzugriff mit der Cloud Console konfigurieren.

IAM-Richtlinienobjekte

Damit Sie mit der API Audit-Logs zum Datenzugriff konfigurieren können, müssen Sie die Ihrem Cloud-Projekt, Ordner oder Ihrer Organisation zugeordnete IAM-Richtlinie bearbeiten. Die Konfiguration der 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. Informationen zu den API- und gcloud-Befehlszeilenbefehlen, die zum Ändern der Konfiguration verwendet werden, finden Sie unter helloworld und setIamPolicy.

AuditConfig objects

Die Konfiguration der Audit-Logs 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": [ PRINCIPAL,]
    },
    {
      "logType": "DATA_READ"
      "exemptedMembers": [ PRINCIPAL,]
    },
    {
      "logType": "DATA_WRITE"
      "exemptedMembers": [ PRINCIPAL,]
    },
  ]
},

SERVICE ist ein Dienstname (zum Beispiel "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 ist eine Liste von 0 bis 3 Objekten, von denen jedes eine Art von Audit-Loginformationen konfiguriert. Wenn Sie eine Art in der Liste weglassen, wird diese Art von Informationen nicht für den Dienst aktiviert.

PRINCIPAL ist ein Nutzer, für den keine Audit-Logs für den Datenzugriff erfasst werden. Mit dem Typ Binding werden verschiedene Arten von Hauptkonten beschrieben, einschließlich Nutzer und Gruppen. Diese können jedoch nicht zum Konfigurieren von Audit-Logs zum Datenzugriff verwendet werden.

Das folgende Beispiel zeigt eine Audit-Log-Konfiguration im JSON- und YAML-Format. Das YAML-Format ist die Standardeinstellung bei Verwendung der Google Cloud CLI.

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

Alle Audit-Logs zum Datenzugriff aktivieren

Mit dem folgenden auditConfigs-Abschnitt können Sie Audit-Logs zum Datenzugriff für alle Dienste und Hauptkonten aktivieren:

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

Durch die folgende Konfiguration werden Audit-Logs zum Datenzugriff für Cloud SQL aktiviert. In den Protokollen werden nur die Schreibvorgänge von benutzerdefinierten 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 zum 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. Sie können aus mehreren Methoden wählen:

  • Die Resource Manager API bietet folgende Methoden:

    projects.getIamPolicy
    projects.setIamPolicy
    organizations.getIamPolicy
    organizations.setIamPolicy
    
  • Die Google Cloud-Befehlszeile hat die folgenden Resource Manager-Befehle:

    gcloud projects get-iam-policy
    gcloud projects set-iam-policy
    gcloud resource-manager folders get-iam-policy
    gcloud resource-manager folders 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 nicht den 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, sofern 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

Die Aktualisierungsmaske setIamPolicy.

In diesem Abschnitt wird erläutert, wie wichtig der Parameter updateMask in der Methode setIamPolicy ist, und Sie erfahren, warum Sie mit dem gcloud-Befehl set-iam-policy vorsichtig vorgehen müssen, damit Ihr Cloud-Projekt oder Ihre Organisation nicht versehentlich beschädigt wird.

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 Auswirkung, 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 Hauptkonten den Zugriff auf Ihr Cloud-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.