審計
Kubernetes 審計(Audit)提供了安全相關的時序操作記錄,支持日誌和 webhook 兩種格式,並可以通過審計策略自定義事件類型。
審計日誌
通過配置 kube-apiserver 的下列參數開啓審計日誌
audit-log-path:審計日誌路徑
audit-log-maxage:舊日誌最長保留天數
audit-log-maxbackup:舊日誌文件最多保留個數
audit-log-maxsize:日誌文件最大大小(單位 MB),超過後自動做輪轉(默認爲 100MB)
每條審計記錄包括兩行
請求行包括:唯一 ID 和請求的元數據(如源 IP、用戶名、請求資源等)
響應行包括:唯一 ID(與請求 ID 一致)和響應的元數據(如 HTTP 狀態碼)
比如,admin 用戶查詢默認 namespace 的 Pod 列表的審計日誌格式爲
2017-03-21T03:57:09.106841886-04:00 AUDIT: id="c939d2a7-1c37-4ef1-b2f7-4ba9b1e43b53" ip="127.0.0.1" method="GET" user="admin" groups="\"system:masters\",\"system:authenticated\""as="<self>"asgroups="<lookup>"namespace="default"uri="/api/v1/namespaces/default/pods"
2017-03-21T03:57:09.108403639-04:00 AUDIT: id="c939d2a7-1c37-4ef1-b2f7-4ba9b1e43b53" response="200"審計策略
v1.7 + 支持實驗性的高級審計特性,可以自定義審計策略(選擇記錄哪些事件)和審計存儲後端(日誌和 webhook)等。開啓方法爲
kube-apiserver ... --feature-gates=AdvancedAuditing=true注意開啓 AdvancedAuditing 後,日誌的格式有一些修改,如新增了 stage 字段(包括 RequestReceived,ResponseStarted ,ResponseComplete,Panic 等)。
審計策略
審計策略選擇記錄哪些事件,設置方法爲
其中,設計策略的配置格式爲
在生產環境中,推薦參考 GCE 審計策略 配置。
審計存儲後端
審計存儲後端支持兩種方式
日誌,配置
--audit-log-path開啓,格式爲
webhook,配置
--audit-webhook-config-file=/etc/kubernetes/audit-webhook-kubeconfig --audit-webhook-mode=batch開啓,其中 audit-webhook-mode 支持 batch 和 blocking 兩種格式,而 webhook 配置文件格式爲
所有的事件以 JSON 格式 POST 給 webhook server,如
Last updated