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:
Zeigen Sie die in Ihren Clustern ausgeführten Kubernetes-API-Server an:
kubectl get pods --all-namespaces -l component=kube-apiserver
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
Rufen Sie in der Google Cloud Console im Menü Logging die Seite Logs auf.
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.
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"
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.