Audit-Logging aktivieren

In diesem Dokument wird beschrieben, wie Cloud-Audit-Logs für Anthos-Cluster auf Bare Metal aktiviert und verwendet werden. Anthos-Cluster auf Bare-Metal verwendet Kubernetes-Audit-Logging, um eine chronologische Aufzeichnung der Aufrufe an den Kubernetes API-Server eines Clusters zu speichern. Audit-Logs sind nützlich, um verdächtige API-Anfragen zu untersuchen und Statistiken zu erfassen.

Wenn Cloud-Audit-Logs aktiviert sind, werden Audit-Logs in Cloud-Audit-Logs in Ihrem Google Cloud-Projekt geschrieben. Das Schreiben in Cloud-Audit-Logs hat mehrere Vorteile gegenüber dem Schreiben auf Laufwerke oder auch gegenüber dem Erfassen von Logs in einem lokalen Logging-System:

  • Audit-Logs für alle Anthos-Cluster können zentralisiert werden.
  • In Cloud-Audit-Logs geschriebene Logeinträge sind unveränderlich.
  • Cloud-Audit-Logeinträge werden 400 Tage lang aufbewahrt.
  • Die Funktion Cloud-Audit-Logs ist im Preis von Anthos enthalten.
  • Sie können Anthos-Cluster auf Bare Metal konfigurieren, um Logs auf Laufwerke oder in Cloud-Audit-Logs zu schreiben.

Audit-Logging auf Laufwerken

Standardmäßig werden Audit-Logs in Anthos-Cluster auf Bare Metal auf einem nichtflüchtigen Speicher geschrieben, damit VM-Neustarts und -Upgrades nicht zum Verschwinden der Logs führen. Anthos-Cluster auf Bare Metal speichern bis zu 1 GB Audit-Logeinträge.

Sie können auf die laufwerkbasierten Audit-Logs zugreifen, indem Sie sich bei Knoten der Steuerungsebene anmelden. Die Logs befinden sich im Verzeichnis /var/log/apiserver/.

Cloud-Audit-Logs

Wenn Cloud-Audit-Logs aktiviert sind, werden die Audit-Logeinträge zu Administratoraktivitäten von allen Kubernetes-API-Servern an Google Cloud gesendet. Diese Logeinträge werden unter dem Projektnamen und dem Standort des Clusters gespeichert. Für das Zwischenspeichern und Schreiben von Logeinträgen in Cloud-Audit-Logs stellt Anthos-Cluster auf Bare Metal einen audit-proxy-Pod im Administratorcluster bereit. Dieser Pod ist auch als Sidecar-Container in Nutzerclustern verfügbar.

Beschränkungen

Cloud-Audit-Logs für Anthos-Cluster auf Bare Metal-Servern ist eine Vorschau-Funktion mit den folgenden Einschränkungen:

  • Datenzugriffs-Logging wird nicht unterstützt.
  • Das Ändern der Audit-Richtlinie von Kubernetes wird nicht unterstützt.
  • Cloud-Audit-Logs sind gegen größere Netzwerkausfälle nicht resistent. Wenn die Logeinträge nicht in Google Cloud exportiert werden können, werden sie in einem 10-GB-Laufwerkzwischenspeicher gespeichert. Wenn dieser Zwischenspeicher voll ist, werden die nachfolgenden Einträge gelöscht.
  • Cloud-Audit-Logs können nur beim Erstellen neuer 1.8.0-Cluster aktiviert werden. Das Aktivieren von Cloud-Audit-Logs in vorhandenen Clustern durch ein Upgrade wird für die Featurevorschau nicht unterstützt.

Dienstkonto für Cloud-Audit-Logs erstellen

Bevor Sie Cloud Logging und Cloud Monitoring mit Anthos-Cluster auf Bare Metal aktivieren können, müssen Sie Folgendes konfigurieren:

  1. Erstellen Sie einen Cloud Monitoring-Arbeitsbereich im Google Cloud-Projekt, falls Sie noch keinen haben.

    Dies erfolgt in der Google Cloud Console. Klicken Sie auf die folgende Schaltfläche und folgen Sie dem Workflow.

    Zu Monitoring

  2. Klicken Sie auf die folgenden Schaltflächen, um die erforderlichen APIs zu aktivieren:

    Anthos Audit API aktivieren

    Stackdriver API aktivieren

    Monitoring API aktivieren

    Logging API aktivieren

  3. Weisen Sie dem Dienstkonto, das von den Stackdriver-Agents verwendet wird, die folgenden IAM-Rollen zu:

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

Cloud-Audit-Logs beim Erstellen eines Clusters aktivieren

Wenn Sie Cloud-Audit-Logs mit Anthos-Cluster auf Bare Metal verwenden möchten, folgen Sie der regulären Anleitung zum Erstellen von Clustern, aber nehmen Sie die folgende Änderung an der Clusterkonfigurationsdatei vor, bevor Sie die Datei mit dem bmctl create cluster-Befehl ausführen:

  1. Entfernen Sie die Kommentarzeichen des Felds disableCloudAuditLogging in der Clusterkonfigurationsdatei und achten Sie darauf, dass es auf false gesetzt ist, wie im folgenden Beispiel gezeigt:

    ...
    clusterOperations:
        # Cloud project for logs and metrics.
        projectID: `PROJECT_ID`
        # Cloud location for logs and metrics.
        location: us-central1
        # Enable Cloud Audit Logging if uncommented and set to false.
        disableCloudAuditLogging: false
    ...
    

    Der Rest des Clustererstellungsvorgangs ist identisch. Weitere Informationen und Links zu Anleitungen finden Sie unter Cluster erstellen: Übersicht.

Auf Cloud-Audit-Logs zugreifen

Console

  1. Rufen Sie in der Google Cloud Console im Menü Logging die Seite Logs auf.

    Zur Seite "Logs"

  2. Klicken Sie im Feld Nach Label oder Textsuche filtern auf den Abwärtspfeil, um das Drop-down-Menü zu öffnen. Wählen Sie im Menü den Eintrag In erweiterten Filter umwandeln aus.

  3. Füllen Sie das Textfeld mit dem folgenden Filter aus:

    resource.type="k8s_cluster"
    logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity"
    protoPayload.serviceName="anthosgke.googleapis.com"
    

    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

  4. Klicken Sie auf Filter senden, um alle Audit-Logs von Anthos-Clustern auf VMware anzuzeigen, die für die Anmeldung in diesem Projekt konfiguriert wurden.

gcloud

Listen Sie die ersten beiden Logeinträge im Administratoraktivitätslog des Projekts auf, die sich auf den Ressourcentyp k8s_cluster beziehen:

gcloud logging read \
    'logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" \
    AND resource.type="k8s_cluster" \
    AND protoPayload.serviceName="anthosgke.googleapis.com" ' \
    --limit 2 \
    --freshness 300d

Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

Es werden zwei Logeinträge ausgegeben. Beachten Sie, dass das Feld logName für jeden Logeintrag den Wert
projects/<var>PROJECT_ID</var>/logs/externalaudit.googleapis.com%2Factivity hat und protoPayload.serviceName gleich anthosgke.googleapis.com ist.

Audit-Richtlinie

Das Verhalten von Cloud-Audit-Logs wird durch eine statisch konfigurierte Audit-Logging-Richtlinie von Kubernetes bestimmt. Das Ändern dieser Richtlinie wird derzeit nicht unterstützt, wird aber in einer zukünftigen Version möglich sein.