Kubernetes-Audit-Logging verwenden

In diesem Dokument wird beschrieben, wie Sie Cloud-Audit-Logs für GKE on Bare Metal verwenden. GKE on Bare Metal verwendet Kubernetes-Audit-Logging, das eine chronologische Aufzeichnung der Aufrufe an den Kubernetes API-Server eines Clusters speichert. Audit-Logs sind nützlich, um verdächtige API-Anfragen zu untersuchen und Statistiken zu erfassen. Informationen zum Audit-Logging für die GKE On-Prem API finden Sie unter Cloud API-Audit-Logging.

Informationen zu Cloud-Audit-Logs

Audit-Logs werden in Cloud-Audit-Logs Ihres Google Cloud-Projekts geschrieben. Das Schreiben in Cloud-Audit-Logs hat mehrere Vorteile gegenüber dem Schreiben auf Laufwerke oder dem Erfassen von Logs in einem lokalen Logging-System:

  • Audit-Logs für alle GKE-Cluster können zentralisiert werden.
  • In Cloud-Audit-Logs geschriebene Logeinträge sind unveränderlich.
  • Cloud-Audit-Logeinträge werden 400 Tage lang aufbewahrt.
  • Das Feature „Cloud-Audit-Logs“ ist im Preis der GDCV für Bare Metal enthalten.
  • Sie können GKE on Bare Metal so konfigurieren, dass Logs auf ein Laufwerk oder in Cloud-Audit-Logs geschrieben werden.

Audit-Logging auf Laufwerken

Wenn Cloud-Audit-Logs explizit deaktiviert sind, werden Audit-Logs in GKE on Bare Metal in einen nichtflüchtigen Speicher geschrieben, damit Clusterneustarts und ‐upgrades nicht zum Verschwinden der Logs führen. GKE on Bare Metal speichert bis zu 1 GiB an Audit-Logeinträgen.

Melden Sie sich bei den Steuerungsebenenknoten an, um auf die laufwerkbasierten Audit-Logs zuzugreifen. Die Logs befinden sich im Verzeichnis /var/log/apiserver/.

Cloud-Audit-Logs

Audit-Logeinträge zur Administratoraktivität von allen Kubernetes API-Servern werden unter Verwendung des Projekts und des Speicherorts, den Sie beim Erstellen eines Nutzerclusters angeben, an Google Cloud gesendet. Zum Zwischenspeichern und Schreiben von Logeinträgen in Cloud-Audit-Logs stellt GKE on Bare Metal ein audit-proxy-Daemon-Set bereit, das auf den Knoten der Steuerungsebene ausgeführt wird.

Beschränkungen

Für Cloud-Audit-Logs für GKE on Bare Metal gelten die 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über erweiterten Netzwerkausfällen nicht resilient. Wenn die Logeinträge nicht in Google Cloud exportiert werden können, werden sie in einem 10-GiB-Laufwerkzwischenspeicher gespeichert. Wenn dieser Puffer gefüllt wird, werden die ältesten Einträge gelöscht.

Dienstkonto für Cloud-Audit-Logs erstellen

Bevor Sie Cloud Logging und Cloud Monitoring mit GKE on Bare Metal verwenden können, müssen Sie Folgendes konfigurieren:

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

    Klicken Sie in der Google Cloud Console 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

Auf Cloud-Audit-Logs zugreifen

Console

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

    Zu „Log-Explorer“

    Wenn die Seite Legacy-Loganzeige geöffnet wird, wählen Sie im Drop-down-Menü Upgrade die Option Upgrade auf den neuen Log-Explorer durchführen aus.

  2. Klicken Sie auf Abfrage, um auf das Feld zum Senden von Abfragen zuzugreifen.

  3. Geben Sie in das Feld die folgende Abfrage ein:

    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 Abfrage ausführen, um alle Audit-Logs aus GKE on Bare-Metal-Clustern aufzurufen, die für die Anmeldung bei 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/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity hat und protoPayload.serviceName gleich anthosgke.googleapis.com ist.

Audit-Richtlinie

In der Audit-Richtlinie von Kubernetes ist definiert, welche Ereignisse als Logeinträge erfasst werden. Außerdem wird angegeben, welche Daten die Logeinträge enthalten sollen. Das Ändern dieser Richtlinie zum Ändern des Verhaltens von Cloud-Audit-Logs wird nicht unterstützt.