見出し画像

Kubernetes監査ログ、「level: None」を活用して不要なログをなくしコスト削減!

Kubernetesの監査ログ、どれくらい記録していますか?

「全部ログを残しておけば安心」と思って、必要のないリクエストまで記録してしまうと、ログの量が爆発的に増え、ストレージコストがかさむ ことに…。
かといって、重要な操作まで記録しないのはリスクが高い ですよね。

そこで活用したいのが level: None です。
うまく使えば、本当に必要なログだけを残して、不要なログを削減し、コストを抑えることが可能 になります。

ただし、設定を間違えると「すべてのログが消えてしまう」という落とし穴も。
では、level: None の仕組みと、効果的な使い方を見ていきましょう!


level: None だけを書くと何が起こる?

監査ポリシーで level: None を設定すると、そのルールにマッチしたリクエストのログは記録されません
つまり、監査ログの量を減らしたいときに使える便利なオプションです。

しかし、もし level: None だけ を設定したらどうなるでしょうか?

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
  - level: None

この場合、明示的に指定されたルールがないすべてのリソースとすべてのリクエストが対象になります
つまり、クラスタ内のすべてのリソース・すべてのAPIリクエストに対して、ログが一切記録されなくなる ということです。

「監査ポリシーを設定したのに、ログが全然出てこない…」
そんなときは level: None だけになっていないか、まず確認してみましょう。


監査ポリシーは「上から順に評価」される

Kubernetesの監査ポリシーは 上から順番に評価され、最初にマッチしたルールが適用 される仕組みになっています。

例えば、次のようなポリシーを考えてみましょう。

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
  - level: Metadata
    resources:
      - group: ""
        resources: ["secrets"]
  - level: None

この場合、どういう動きになるかというと…

(1) Secretsの操作 → level: Metadata にマッチするので、メタデータだけ記録される
(2) その他の操作 → level: None にマッチするので、すべてのログが記録されなくなる

つまり、「Secretの操作だけログを残し、それ以外は全部カットする」 という設定になります。

逆に、もし level: None を一番上に書いてしまうと、すべての操作が最初のルールにマッチし、それ以降のルールは無視されてしまう ので注意しましょう。


不要なログを削減しつつ、重要な操作だけ記録するには?

では、どのように level: None を活用すれば、コストを削減しつつ必要な監査ログを残せるのでしょうか?

全リクエストを記録する必要がある場合 → level: None を使わず、Metadata や RequestResponse を設定する
特定のリソース(例: Secret)だけログを記録したい場合 → 記録するルールを先に書き、最後に level: None を書く
不要なログを減らしたい場合 → 重要な操作のみ明示的に記録し、残りは level: None にする

例えば、「Secretの操作だけ記録し、それ以外のログは記録しない」場合は、以下のように設定します。

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
  - level: Metadata
    resources:
      - group: ""
        resources: ["secrets"]
  - level: None

このように設定すれば、監査ログの負荷を減らしつつ、重要な操作はしっかり記録 できます。

ただし、どの操作のログを残すべきかは、クラスタのセキュリティポリシーや運用ルールによって変わる ので、事前にしっかり考えて設計しましょう。


まとめ:監査ログを最適化して、無駄なコストをカットしよう!

監査ログは運用上とても重要ですが、何も考えずにすべてを記録すると、不要なログが増えてストレージコストが膨らんでしまいます

だからこそ、level: None を適切に活用することで、「必要なログだけを記録し、不要なログをカットする」 という設計が重要。

💡 ポイント

  • level: None だけを書くと、すべてのログが記録されなくなるので注意!

  • 監査ポリシーは上から順に評価され、最初にマッチしたルールが適用される

  • 記録すべきリソースを先に定義し、最後に level: None を書くことで、不要なログを減らせる

適切な設定をすれば、監査ログの負荷を減らしながら、重要な情報はしっかり記録することが可能 です。
ぜひ、自分の環境に合わせた監査ポリシーを設計して、無駄なコストを削減してみてください!

いいなと思ったら応援しよう!