Kubernetes 監査ログの世代数設定の確認

ログ量と保存要件に合わせて、ローテーション後のファイル数を決めてください。

説明

kube-apiserver の --audit-log-maxbackup は、保存する古い監査ログファイルの最大数を指定します。0 はファイル数の制限なしを意味し、省略時は実行バージョンのデフォルト値が使われます。小さい正の値と頻繁なローテーションが重なると、実際の保存期間が短くなる場合があります。

想定される影響

  • 頻繁なローテーションにより、必要な過去の記録が早く削除される場合があります。
  • ログ量を考慮せずファイル数だけを決めると、保存目標を満たせない場合があります。

対処方法

  • ログ量、ファイルサイズ、必要な保存期間に合わせて --audit-log-maxbackup を設定してください。10 ファイルは例であり、十分な保存日数を自動的に保証する値ではありません。
  • 監査ポリシーとファイル保存先を有効にし、maxage、外部収集、容量も合わせて管理してください。ローテーション後に実際に残る記録を確認してください。

例

v1.30.0 の引数を比較する既存の抜粋です。監査ポリシー、--audit-log-path、必要なマウントと他の API サーバー設定は省略しています。

変更前

yaml
apiVersion: v1
kind: Pod
metadata:
  name: kube-apiserver
spec:
  containers:
    - name: kube-apiserver
      image: registry.k8s.io/kube-apiserver:v1.30.0
      command:
        - kube-apiserver
      args:
        - --audit-log-maxbackup=5

古いログファイルを最大 5 個保持します。ログ量が多いと、必要な記録が早く削除される場合があります。

変更後

yaml
apiVersion: v1
kind: Pod
metadata:
  name: kube-apiserver
spec:
  containers:
    - name: kube-apiserver
      image: registry.k8s.io/kube-apiserver:v1.30.0
      command:
        - kube-apiserver
      args:
        - --audit-log-maxbackup=10

古いログファイルを最大 10 個保持します。常に 10 個あることや、一定日数以上の保存を保証するものではありません。

参考資料