Audit-Logging

Auf dieser Seite wird beschrieben, wie Sie auf Kubernetes API-Audit-Logs zugreifen.

Übersicht

Jeder GKE On-Prem-Cluster verfügt über Kubernetes-Audit-Logging, in dem eine chronologische Aufzeichnung der Aufrufe des Kubernetes API-Servers des Clusters gespeichert wird. Audit-Logs sind nützlich, um verdächtige API-Anfragen zu untersuchen oder Statistiken zu erfassen.

Datenträgerbasiertes Audit-Logging

Standardmäßig werden Audit-Logs von jedem API-Server auf einem nichtflüchtigen Speicher gespeichert, sodass VM-Neustarts / -Upgrades nicht zum Verschwinden der Logs führen. GKE On-Prem speichert bis zu 10 GB Audit-Logs.

Cloud-Audit-Logging

Wenn Cloud Audit Logging aktiviert ist, werden die Audit-Logs für die Administratoraktivität von allen API-Servern unter Verwendung des während der Installation festgelegten Projekts und Standorts an Google Cloud gesendet.

Auf Kubernetes-Audit-Logs zugreifen

Datenträgerbasiertes Audit-Logging

Sie können nur über den Admin-Cluster auf Audit-Logs zugreifen:

  1. Zeigen Sie die in Ihren Clustern ausgeführten Kubernetes-API-Server an:

    kubectl get pods --all-namespaces -l component=kube-apiserver
    
  2. Laden Sie die Audit-Logs des API-Servers herunter:

    kubectl cp -n [NAMESPACE] [APISERVER_POD_NAME]:/var/log/kube-audit/kube-apiserver-audit.log /tmp/kubeaudit.log
    

    Mit diesem Befehl wird die neueste Logdatei abgerufen, die bis zu 1 GB Daten für den Administratorcluster und bis zu 850 GB für Nutzercluster enthalten kann.

    Ältere Audit-Datensätze werden in separaten Dateien gespeichert. So rufen Sie diese Dateien auf:

    kubectl exec -n [NAMESPACE] [APISERVER_POD_NAME] -- ls /var/log/kube-audit -la
    

    Der Dateiname jedes Audit-Logs enthält einen Zeitstempel, der angibt, wann die Datei rotiert wurde. Eine Datei enthält Audit-Logs bis zu diesem Zeitpunkt.

Cloud-Audit-Logging

Console

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

    Zur Seite "Logs"

  2. Klicken Sie oberhalb der gerade erwähnten Drop-down-Menüs 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/cloudaudit.googleapis.com%2Factivity"
    protoPayload.serviceName="anthosaudit.googleapis.com"
    
  4. Klicken Sie auf Filter senden, um alle Audit-Logs von GKE On-Prem-Clustern 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/cloudaudit.googleapis.com%2Factivity" \
    AND resource.type="k8s_cluster" \
    AND protoPayload.serviceName="anthosaudit.googleapis.com" ' \
    --limit 2 \
    --freshness 300d

Dabei ist [PROJECT_ID] 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/cloudaudit.googleapis.com%2Factivity hat und protoPayload.serviceName gleich anthosaudit.googleapis.com ist.

Audit-Richtlinie

Das Audit-Logging-Verhalten wird durch eine statisch konfigurierte Audit-Logging-Richtlinie von Kubernetes bestimmt. Diese Richtlinie kann derzeit nicht geändert werden.