Kubernetes mimarisindeki resource’lar üzerinde audit log’ları kolaylıkla etkinleştirilebilir. Özellikle onpremise ortamda kurulan yalın Kubernetes cluster’ları üzerinde bu konfigürasyonların yapılması tavsiye edilir.
Audit log’ları Kubernetes üzerinde etkinleştirmek için aşağıdaki adımlar sırasıyla uygulanmalıdır.
Öncelikle /etc/kubernetes/ dizininde prod-audit.yaml isimli policy definition file’ını oluşturalım.
kind: Policy
rules:
- level: Metadata
namespaces: ["prod"]
verbs: ["delete"]
resources:
- group: ""
resources: ["secrets"]
Ardından kubeapi-server manifesti üzerinde aşağıdaki konfigürasyonları ekleyelim:
Öncelikle policy dosyası,log lokasyonu ve log’ların tutulma süresine ilişkin config’leri ekleyelim.
- --audit-policy-file=/etc/kubernetes/prod-audit.yaml
- --audit-log-path=/var/log/prod-secrets.log
- --audit-log-maxage=30
Aynı definition file üzerine policy lokasyonu ve log-path’ini içeren volume ve volume mount konfigürasyonlarını yapalım.
Volume konfigürasyonları:
- name: audit
hostPath:
path: /etc/kubernetes/prod-audit.yaml
type: File
- name: audit-log
hostPath:
path: /var/log/prod-secrets.log
type: FileOrCreate
Volume Mount konfigürasyonları:
- mountPath: /etc/kubernetes/prod-audit.yaml
name: audit
readOnly: true
- mountPath: /var/log/prod-secrets.log
name: audit-log
readOnly: false
Bu işlemlerin ardından kubeapi-server manifesti üzerinde yapılan değişiklikleri kaydedip, kube-apiserver’ı yeniden başlatmanız yeterli olacaktır. Artık kubeapi-server’ınız tüm audit işlemlerini belirtilen lokasyona loglayıp 30 gün burada tutacaktır.