Szenarien für das Exportieren mit Cloud Logging: Compliance-Anforderungen

In diesem Szenario wird gezeigt, wie Sie Logs von Cloud Logging nach Cloud Storage exportieren, um die Compliance-Anforderungen Ihrer Organisation zu erfüllen. Unternehmen müssen viele Anforderungen beim Erstellen und Speichern von Protokolldateien erfüllen. Wenn beispielsweise die Compliance mit Sarbanes Oxley (SOX) wichtig ist, sollten Sie Protokolle für Nutzer, Datenbanken und Konsolenaktivitäten verwalten. Weitere Informationen zur standardmäßigen und konfigurierbaren Logaufbewahrungsdauer finden Sie unter Kontingente und Limits für Cloud Logging.

In diesem Szenario werden die exportierten Logs an einen von Ihnen konfigurierten Cloud Storage-Bucket gesendet. Sie erteilen dabei Berechtigungen, die den Zugriff auf die Logs entsprechend beschränken. Sie können mithilfe der Objektlebenszyklus-Verwaltung in Cloud Storage die Logs in Nearline Storage- oder Coldline Storage-Speicherklassen verschieben und nach Ablauf der erforderlichen Aufbewahrungsdauer löschen, um die langfristigen Speicherkosten zu reduzieren.

In diesem Szenario wird eine gängige n-stufige Webarchitektur auf Google Cloud mit virtuellen Maschinen (VMs), Datenbanken und einem unterstützenden Speichersystem vorausgesetzt. Für diese Umgebung werden die folgenden Logtypen exportiert: alle Audit-Logs, VM-Logs, Speicherlogs und Datenbanklogs. Sie können dabei die Typen der Logs ändern, die exportiert werden, und dafür Logging-Filter im Beispiel anpassen.

Dieses Szenario ist Bestandteil der Reihe Entwurfsmuster zum Exportieren mit Cloud Logging.

Logging-Export einrichten

Das folgende Diagramm zeigt die Schritte zur Aktivierung von Logging-Exporten in Cloud Storage.

Logging-Support aktivieren

Logging-Export-Bucket in Cloud Storage einrichten

Führen Sie die Anleitung zum Einrichten eines Cloud Storage-Buckets aus, der die exportierten Protokolle hostet. Wählen Sie für die Standardspeicherklasse "Regional" aus, es sei denn, Sie benötigen die Speicherklasse für mehrere Regionen, für Nearline oder Coldline.

Objektlebenszyklus-Verwaltung für den Cloud Storage-Bucket konfigurieren

In diesem Szenario wird für alle Logs von einem Aufbewahrungszeitraum von 7 Jahren ausgegangen. Zur Minimierung der Speicherkosten können Sie in Cloud Storage Regeln für den Objektlebenszyklus hinzufügen, um Logs nach einer bestimmten Anzahl an Tagen in Nearline Storage- oder Coldline Storage-Speicherklassen zu verschieben und anschließend die Logs zu löschen, wenn sie nicht länger aufbewahrt werden müssen.

Best Practice: Durch Verschieben von Logs nach Nearline oder Coldline und anschließendes Löschen lassen sich die laufenden Betriebskosten für die Pflege von Logs besser steuern.

Führen Sie die Anleitung zum Erstellen von Lebenszyklusregeln aus. Der folgende Screenshot zeigt einen kaskadierenden Regelsatz, der die Speicherklasse nach 60 Tagen in Nearline und nach 120 Tagen in Coldline ändert. Die Logs werden dann nach 2555 Tagen gelöscht, was ungefähr sieben Jahren entspricht.

Kaskadierungsregeln

Audit-Logging für alle Dienste aktivieren

Audit-Logs für den Datenzugriff sind außer für BigQuery standardmäßig deaktiviert. Um alle Audit-Logs zu aktivieren, folgen Sie der Anleitung zur Aktualisierung der Richtlinie der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) mit der in der Dokumentation der Audit-Richtlinie aufgeführten Konfiguration. Dazu sind folgende Schritte erforderlich:

  • Aktuelle IAM-Richtlinie als Datei herunterladen
  • JSON- oder YAML-Objekt der Audit-Log-Richtlinie zur aktuellen Richtliniendatei hinzufügen
  • Google Cloud-Projekt mit der geänderten Richtliniendatei aktualisieren

Das folgende Beispiel zeigt ein JSON-Objekt, mit dem alle Audit-Logs für alle Dienste aktiviert werden:

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

Logging-Export konfigurieren

Nachdem Sie zusammengefasste Exporte oder den Logexport eingerichtet haben, müssen Sie die Logging-Filter für den Export von Audit-Logs, VM-Logs, Speicherlogs und Datenbanklogs einstellen. Der nachstehende Logging-Filter umfasst Audit-Logs für Administratoraktivitäten und den Datenzugriff sowie Logs für bestimmte Ressourcentypen:

logName:"/logs/cloudaudit.googleapis.com" OR
resource.type:gce OR
resource.type=gcs_bucket OR
resource.type=cloudsql_database OR
resource.type=bigquery_resource

Verwenden Sie im Befehlszeilentool gcloud den gcloud logging sinks create-Befehl oder den organizations.sinks.create-API-Aufruf, um eine Senke mit den entsprechenden Filtern zu erstellen. Im folgenden Beispiel wird mit dem Befehl gcloud eine Senke mit dem Namen gcp_logging_sink_gcs für die Organisation erstellt. Die Senke enthält alle untergeordneten Projekte und legt Filter zur Auswahl einzelner Audit-Logs fest.

gcloud logging sinks create gcp_logging_sink_gcs \
    storage.googleapis.com/gcp-logging-export-000100011000 \
    --log-filter='logName: "/logs/cloudaudit.googleapis.com" OR \
    resource.type:\"gce\" OR \
    resource.type=\"gcs_bucket\" OR   \
    resource.type=\"cloudsql_database\" OR  \
    resource.type=\"bigquery_resource\"' \
    --include-children   \
    --organization=324989855333

Die entsprechende Ausgabe sieht etwa so aus:

Created [https://logging.googleapis.com/v2/organizations/324989855333/sinks/gcp_logging_sink_gcs].
Please remember to grant `serviceAccount:gcp-logging-sink-gcs@logging-o324989855333.iam.gserviceaccount.com` full-control access to the bucket.
More information about sinks can be found at /logging/docs/export/configure_export

Der vom API-Aufruf zurückgegebene serviceAccount-Eintrag enthält die Identität gcp-logging-sink-gcs@logging-o324989855333.iam.gserviceaccount.com. Diese Identität stellt ein Google Cloud-Dienstkonto dar, das für den Export erstellt wurde. Damit Logeinträge aus der Senke exportiert werden können, müssen Sie dieser Identität Schreibzugriff auf das Ziel erteilen. Weitere Informationen finden Sie im nächsten Abschnitt sowie in der Dokumentation Einem Dienstkonto Rollen für bestimmte Ressourcen zuweisen.

IAM-Richtlinienberechtigungen für den Cloud Storage-Bucket festlegen

Durch Hinzufügen des Dienstkontos gcp-logging-sink-gcs@logging-o324989855333.iam.gserviceaccount.com zum Bucket gcp-logging-export-000100011000 mit Storage Object Creator-Berechtigungen gewähren Sie dem Dienstkonto die Berechtigung zum Schreiben in den Bucket. Ohne diese Berechtigungen schlägt der Export aus der Senke fehl.

So fügen Sie dem Bucket gcp-logging-export Berechtigungen hinzu:

  1. Öffnen Sie in der Cloud Console den Storage-Browser:

    ZUM STORAGE-BROWSER

  2. Wählen Sie den Bucket gcp-logging-export aus.

  3. Klicken Sie auf Infofeld ansehen und wählen Sie die Storage Object Creator-Berechtigungen aus.

    IAM-Richtlinienberechtigungen – Storage-Objekt-Ersteller

Nachdem Sie den Logging-Export mithilfe des vorherigen Filters erstellt haben, werden die Logdateien in die Cloud Storage-Buckets im konfigurierten Projekt übernommen.

Best Practice: Sie können je nach Ihren Anforderungen eine Richtlinie mit Mindest-Berechtigungen implementieren. Konfigurieren Sie die Bucket-Berechtigungen auf der Grundlage bestimmter Google Cloud-Nutzerkonten, Google Groups-Konten oder Google Cloud-Dienstkonten. Mit IAM-Berechtigungen können Sie Zugriff auf den Cloud Storage-Bucket sowie einen Massenzugriff auf die Objekte eines Buckets gewähren.

Für einen Satz von Beispiel-Berechtigungen sind folgende Schritte erforderlich:

  • Entfernen Sie alle nicht erforderlichen Nutzer aus den Berechtigungen für Cloud Storage-Bucket.
  • Geben Sie dem Cloud Storage-Administrator die uneingeschränkte Kontrolle.
  • Gewähren Sie dem Exportnutzer Schreibberechtigungen für die Logging-Exportdateien.
  • Gewähren Sie anderen einzelnen Nutzern Lesezugriff auf die Google Cloud-Logging-Exporte.

Sie können die IAM-Berechtigungen für den Bucket direkt in der Cloud Console, über das gsutil-Befehlszeilentool oder über die IAM API aktualisieren. Im folgenden Beispiel werden Berechtigungen und Abbildungen dargestellt, die einem Cloud Storage-Bucket in der Cloud Console zugeordnet sind.

Rolle: Storage-Administrator

  • IAM-Beschreibung: Vollständige Kontrolle über Cloud Storage-Ressourcen
  • Verwendung: Mit dieser Rolle können Sie Administratoren Zugriff auf Cloud Storage-Ressourcen gewähren, ohne die Berechtigung zur Änderung der in Cloud Storage gespeicherten Inhalte erteilen zu müssen.
  • Beispielkonto:

    storage-admin@example.com

    Rolle: Storage-Administrator

Rolle: Storage-Objekt-Administrator

  • IAM-Beschreibung: Vollständige Kontrolle über Cloud Storage-Objekte
  • Verwendung: Mit dieser Rolle können Sie Administratoren Zugriff auf Cloud Storage-Dateiobjekte gewähren, ohne die Berechtigung zur Änderung der Cloud Storage-Ressourcenkonfiguration erteilen zu müssen.
  • Beispielkonto:

    storage-object-admin@example.com: user1@example.com, user2@example.com

    Rolle: Storage-Objekt-Administrator

Rolle: Storage-Objekt-Betrachter

  • IAM-Beschreibung: Lesezugriff auf Cloud Storage-Objekte
  • Nutzung: Mit dieser Rolle können Sie Nutzern Lesezugriff auf die Google Cloud-Logs gewähren.
  • Beispielkonto:

    storage-viewer@example.com: user3@example.com

    Rolle: Storage-Objekt-Betrachter

Best Practice: Wenn Sie Google Workspace oder Google Groups für Privatnutzer verwenden, können Sie eine Google-Gruppe wie gcp-logging-export-viewers@example.com mit Berechtigungen für Storage-Objekt-Betrachter hinzufügen. Sie haben dann die Möglichkeit, der Gruppe gcp-logging-export-viewers@example.com Nutzer hinzuzufügen oder Nutzer daraus zu entfernen, ohne die Cloud Storage-Bucket-Berechtigungen bei jeder Änderung der Leseberechtigungen von Nutzern bearbeiten zu müssen.

Exportierte Logs verwenden

Nachdem Sie den Logging-Export mithilfe des obigen Filters erstellt haben, werden die Logdateien in den Cloud Storage-Bucket im konfigurierten Projekt übernommen. Für jedes Log wird ein eigener Ordner im Bucket erstellt, der in einer hierarchischen Struktur anhand des Datums aufgeschlüsselt wird. Sie können auf die Logs über die Cloud Console, das gsutil-Befehlszeilentool oder die IAM API zugreifen. Die folgende Abbildung zeigt das Beispiel einer Ordnerstruktur in der Cloud Console.

Beispiel für Ordnerstruktur

Jede Logdatei besteht aus JSON-Daten in den Logeintragsformaten textPayload, protoPayload und jsonPayload. Die Logdateien im Cloud Storage-Bucket unterliegen im Zeitablauf dem Cloud Storage-Lebenszyklusprozess, in dem zuerst die Logs nach Nearline Storage und dann nach Coldline Storage verschoben und schließlich gemäß Ihrer Konfiguration gelöscht werden.

Externen Zugriff gewähren

Es empfiehlt sich, bestimmten Nutzern Zugriff auf exportierte Protokolle zu gewähren, z. B. Sicherheitsanalysten, Ihrem DevOps-Team und Auditoren.

Strategien für Logspeicherorte

Es gibt verschiedene Möglichkeiten, um in Cloud Storage Zugriff auf Logs zu gewähren.

  • Kopien der Logs erstellen, die freigegeben werden sollen.

    Erstellen Sie manuell oder programmgesteuert eine Kopie einer einzelnen oder mehrerer Logdateien und speichern Sie die Kopien in einem eigenen Cloud Storage-Bucket. Verwenden Sie dann die separaten Bucket-Berechtigungen, um die Logs je nach Bedarf für bestimmte Nutzer freizugeben.

    Vorteile: Sie können die Datenmenge, die freigegeben wird, auf die kopierten Daten beschränken.

    Nachteile: Sie müssen die separaten Datasets und Berechtigungen erstellen, freigeben und verwalten. Dies kann zu höheren Kosten führen.

  • Lesezugriff auf alle Protokolle gewähren.

    Sie können manuell oder programmgesteuert Betrachter-Berechtigungen für den Logging-Export-Bucket in Cloud Storage festlegen, die Zugriff auf alle Logexporte gewähren.

    Vorteile: Der Zugriff ist einfach zu gewähren.

    Nachteile: Sie müssen Zugriff auf alle Logs gewähren und nicht nur auf bestimmte Logdateien.

Strategien für die Nutzerzugriffssteuerung

Mit Cloud Storage-Bucket-Berechtigungen können Sie Logging-Exporte des Cloud Storage-Buckets für bestimmte Google-Konten oder Google-Gruppen freigeben.

  • Eine Google-Gruppe verwenden.

    Erstellen Sie eine Google-Gruppe wie auditors@example.com mit Lesezugriff auf den Cloud Storage-Bucket des Logging-Exports. Anschließend können Sie die Liste der Google-Konten entsprechend definieren. Fügen Sie dazu der Google-Gruppe Auditoren hinzu oder entfernen Sie sie daraus.

    Vorteile: Zugriffsberechtigungen lassen sich über eine Gruppe einfach verwalten und es gibt einen eindeutigen Zweck für den Nutzerzugriff.

    Nachteile: Die Mitglieder der Gruppe müssen angezeigt werden, um zu ermitteln, wer zugriffsberechtigt ist.

  • Einzelne Google-Konten verwenden.

    Gewähren Sie jedem Nutzer, für den dies erforderlich ist, über ein individuelles Google-Konto Zugriff auf den Logging-Export des Cloud Storage-Buckets.

    Vorteile: Die einzelnen Nutzer lassen sich einfach manuell oder programmgesteuert hinzufügen.

    Nachteile: Audit-Nutzer können nicht von anderen Betrachtern unterschieden werden.

Nächste Schritte