説明
kube-apiserver で --audit-policy-file を省略すると、監査イベントは記録されません。出力先のパスを指定するだけでは不十分です。
どのリソースをどのレベルで記録するか、ポリシーで管理してください。インシデント対応や監査追跡に必要な情報を一貫して残すために重要です。
想定される影響
- 重要な API 要求が記録されない場合があります。
- 調査に必要なユーザー、時刻、操作などのメタデータが不足するおそれがあります。
- 環境ごとにポリシーが異なり、運用管理が難しくなる場合があります。
対処方法
- kube-apiserver に
--audit-policy-fileのパスを指定してください。 - 記録レベルと除外ルールを定義してください。Secret などの機密性の高い要求本文を、不必要にログへ残さないようにしてください。
- ポリシーとファイルまたは Webhook の出力を合わせて構成し、適用後に実際のイベントを確認してください。
例
API サーバー引数の抜粋です。イメージは実際のクラスターのバージョンに合わせ、例のパスに有効なポリシーファイルをマウントしてください。出力とその他の API サーバー設定は省略しています。
変更前
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: registry.k8s.io/kube-apiserver:v1.34.0
command: ["kube-apiserver"]
args: []
変更後
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: registry.k8s.io/kube-apiserver:v1.34.0
command: ["kube-apiserver"]
args: ["--audit-policy-file=/etc/kubernetes/audit-policy.yaml"]
補足:
- 変更前: 監査ポリシーファイルが指定されていないため、監査イベントは記録されません。
- 変更後: ポリシーファイルを指定します。ファイル内のルールと出力設定が実際に適用されることも確認してください。