So exportieren Sie Kubernetes-Audit-Logs

So exportieren Sie Kubernetes-Audit-Logs

SOC Prime Team
SOC Prime Team linkedin icon Folgen

Wo Kubernetes-Audit-Protokolle gespeichert werden, hängt davon ab, wer Ihre Steuerungsebene betreibt. In einem selbstverwalteten Cluster sind sie eine JSON-lines-Datei auf dem Steuerungsebenenknoten, unter dem Pfad, auf den –audit-log-path verweist. Auf EKS gehen sie zu CloudWatch Logs, auf AKS zu einem Log Analytics-Arbeitsbereich oder Speicherkonto und auf GKE zu Cloud-Audit-Protokollen. Eine Sache gilt überall: Audit-Protokollierung muss eingeschaltet sein. In selbstverwalteten Clustern und EKS ist sie ausgeschaltet, bis sie jemand aktiviert.

Das Audit-Log verzeichnet jede Anfrage an die Kubernetes-API: wer kubectl exec in welchen Pod ausgeführt hat, wer welches Secret gelesen hat, wer sich selbst als Cluster-Admin gebunden hat. Prime Core hat 93 Erkennungsregeln für Kubernetes-Audit-Daten, die 220 MITRE ATT&CK-Techniken zugeordnet sind. Unter ihnen: Ausführung in laufende Container (T1609), Bereitstellung von bösartigen Containern (T1610) und Lesen von Anmeldeinformationen über die Container-API (T1552.007).

Kostenlos starten

Bevor Sie anfangen

Ist es aktiviert?

PlattformWo überprüft werden
Selbstverwaltet (kubeadm und ähnliche)–audit-policy-file und –audit-log-path auf dem API-Server; mit kubeadm, in /etc/kubernetes/manifests/kube-apiserver.yaml
EKSCluster → Beobachtbarkeit → Steuerungsebene-Protokollierung, „Audit“-Protokolltyp
AKSDiagnostikeinstellungen am Cluster, Kategorien kube-audit oder kube-audit-admin
GKEStandardmäßig für Admin-Aktivität aktiviert; Datenzugriffsprotokollierung für Kubernetes ist opt-in

Wenn es nicht eingeschaltet war, gibt es nichts aus der Vergangenheit zu exportieren, und der Rest dieses Leitfadens ist für das nächste Mal.

Details hängen von der Richtlinie ab. Auf Metadatenebene sehen Sie, wer was an welchem Objekt getan hat. Auf Anfrage- oder Anforderungsantwortebene sehen Sie auch die Inhalte, zum Beispiel die Pod-Spezifikation, die privilegiert: true angefordert hat. Wissen Sie, welche Sie haben, bevor Sie suchen.

Erwarten Sie Volumen. Controller und Dienstekonten kommunizieren ständig mit der API. Auf AKS lässt kube-audit-admin Lese-und Listen-Aufrufe weg, was die Größe vernünftig hält, aber auch Geheimnisse verbirgt.

Exportieren Sie es

Selbstverwalteter Cluster, auf einem Steuerungsebenenknoten:

# überprüfen Sie zuerst den Pfad

sudo grep -- '--audit-log-path' /etc/kubernetes/manifests/kube-apiserver.yaml


sudo cat /var/log/kubernetes/audit/audit.log > k8s_audit.jsonl

Drehbare Dateien (von –audit-log-maxbackup) befinden sich daneben mit einem Zeitstempel im Namen. Schließen Sie sie ein, wenn das Fenster zurückreicht.

EKS, aus CloudWatch Logs:

aws logs filter-log-events --log-group-name /aws/eks/my-cluster/cluster 

--log-stream-name-prefix kube-apiserver-audit

--start-time $(date -d '2026-10-19T00:00:00Z' +%s000) --end-time $(date -d '2026-10-20T00:00:00Z' +%s000)

--output json | jq -c '.events[].message | fromjson' > eks_audit_1019.jsonl

Jedes CloudWatch-Ereignis umschließt den Audit-Eintrag als Zeichenfolge; fromjson entpackt es. Die date -d Syntax ist GNU; auf macOS berechnen Sie die Millisekunden-Zeitstempel auf andere Weise.

AKS, aus Log Analytics (ressourcenspezifische Tabellen):

az monitor log-analytics query -w <workspace-id> 

--analytics-query "AKSAuditAdmin | where TimeGenerated between (datetime(2026-10-19) .. datetime(2026-10-20))"

--output json > aks_audit_1019.json

GKE, aus Cloud Audit Logs:

gcloud logging read 'resource.type="k8s_cluster" AND logName:"cloudaudit.googleapis.com" AND timestamp>="2026-10-19T00:00:00Z" AND timestamp<"2026-10-20T00:00:00Z"' 

--project=my-project --format=json | jq -c '.[]' > gke_audit_1019.jsonl

Was zu suchen ist

AnforderungWarum es wichtig ist
Erstellen auf pods/exec (objectRef.subresource: exec)Jemand hat eine Shell in einem laufenden Container geöffnet
Erstellen einer ClusterRoleBinding zu cluster-adminBerechtigungsausweitung zur vollständigen Kontrolle
Abrufen oder Auflisten von Secrets durch eine ungewöhnliche IdentitätErnten von Anmeldeinformationen
Pods erstellt mit privilegiert, hostPath oder hostNetworkEin Schritt zur Flucht auf den Knoten
user.username: system:anonymous mit einer 2xx-AntwortAnonymer Zugang, der nicht funktionieren sollte
Ausbrüche von 403 von einem DienstkontoEin gestohlener Token, der seine Berechtigungen fühlt

Hochladen, bereinigen und überprüfen in LogTotal

  1. Hochladen. Öffnen logtotal.com und die .jsonl-Datei ablegen.
  2. Bereinigen. [what gets masked: usernames, service account names, source IPs, namespaces, object names]. Look it over before you continue.
  3. Überprüfen.

Wenn es schiefgeht

SymptomWahrscheinliche UrsacheFix
Kein Audit-File auf der SteuerungsebeneAPI-Server hat keine Audit-Richtlinie konfiguriertErwartet; richten Sie es für die Zukunft ein
EKS-Protokollgruppe oder Audit-Streams fehlenDer „Audit“-Protokolltyp der Steuerungsebene ist nicht aktiviertAktivieren Sie es für die Zukunft
Jede Zeile ist eine lange maskierte ZeichenfolgeCloudWatch-EinpackungMit fromjson entpacken, wie oben
Sie können sehen, wer einen Pod geändert hat, aber nicht wieRichtlinie ist auf MetadatenebeneErhöhen Sie die Ebene für sensible Ressourcen
Keine Secret-Lesevorgänge in AKS-Datenkube-audit-admin schließt Abruf- und Listenoperationen ausSammeln Sie kube-audit, wenn Sie sie benötigen

FAQ

Sind Container-Protokolle nicht ausreichend?

Nein. Container-Protokolle zeigen, was eine Anwendung gedruckt hat. Das Audit-Log zeigt, was Personen und Dienstkonten am Cluster gemacht haben. Unterschiedliche Fragen, unterschiedliche Logs.

Kann ich die Audit-Datei auf einem verwalteten Cluster lesen?

Nein. Auf EKS, AKS und GKE haben Sie keinen Zugriff auf die Steuerungsebene-Knoten. Der Logging-Dienst des Anbieters ist der einzige Weg.

Treten Sie der Detection as Code-Plattform von SOC Prime bei um die Sichtbarkeit der für Ihr Unternehmen relevantesten Bedrohungen zu verbessern. Um Ihnen den Einstieg zu erleichtern und unmittelbaren Mehrwert zu erzielen, buchen Sie jetzt ein Treffen mit den Experten von SOC Prime.