Kubernetes Audit Logs

By | November 28, 2021

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.

Leave a Reply

Your email address will not be published. Required fields are marked *