見出し画像

Kubernetes のマニフェスト、ちゃんと安全? Kubesec でチェックしよう

Kubernetes を運用していると、セキュリティ対策が気になりますよね。マニフェスト(YAML ファイル)を作成するとき、「本当にこの設定で大丈夫かな?」と思うこともあるはず。そんなときに便利なのが Kubesec です。

kubesec scan を使えば、Kubernetes のマニフェストをスキャンして、セキュリティリスクを評価できます。RBAC の設定やコンテナの実行ユーザーなど、見落としがちなポイントもチェックしてくれるので、運用の安心感が違います。


Kubesec でマニフェストをスキャンする

使い方はとてもシンプル。例えば deployment.yaml をスキャンするなら、次のようにコマンドを実行するだけです。

kubesec scan deployment.yaml

標準入力を使うことも可能なので、パイプで流し込むこともできます。

cat deployment.yaml | kubesec scan -

これで、Kubesec が YAML を解析し、セキュリティ評価を JSON 形式で返してくれます。


スキャン結果の見方

実際に kubesec scan を実行すると、こんな感じの結果が返ってきます。

[
  {
    "object": "Deployment",
    "score": 5,
    "scoring": [
      {
        "key": "containers[].securityContext.runAsNonRoot",
        "value": false,
        "scored": true,
        "advise": [
          "Set securityContext.runAsNonRoot to true"
        ]
      },
      {
        "key": "containers[].securityContext.capabilities.drop",
        "value": [],
        "scored": true,
        "advise": [
          "Drop all unnecessary capabilities"
        ]
      }
    ]
  }
]

ポイントは3つ。

(1) score:セキュリティスコア(高いほど安全)
(2) scoring:具体的なチェック内容
(3) advise:推奨される修正方法

例えば、この例では runAsNonRoot が false になっているので、「ルートユーザーを避けるべきだよ!」とアドバイスされています。こういったポイントを見直して、設定を改善していくのが kubesec scan の活用方法です。


どんなセキュリティ項目をチェックするの?

Kubesec は、以下のようなセキュリティベストプラクティスをチェックします。

  • runAsNonRoot → true(ルートユーザーを避ける)

  • readOnlyRootFilesystem → true(ルートファイルシステムを読み取り専用にする)

  • capabilities.drop → ALL(不要なケーパビリティを削除)

  • privileged → false(特権コンテナを避ける)

これらの設定を適切に行うことで、コンテナのセキュリティリスクを減らせます。


スコアの目安は?

kubesec scan のスコアは 0~10 で評価されます。

  • 0~3危険⚠(すぐに修正すべき!)

  • 4~7注意💡(改善の余地あり)

  • 8~10良好✅(問題なし)

スコアが低い場合は、advise を参考に設定を見直しましょう。


スコアが低いマニフェストだけをチェックするには?

「とりあえず、スコアが低いものだけ知りたい!」というときは、jq を使うと便利です。

kubesec scan deployment.yaml | jq '.[] | select(.score < 5)'

これで、スコアが 5 未満のマニフェストだけを抽出できます。


Kubesec を CI/CD に組み込んで、セキュリティチェックを自動化しよう!

Kubesec はローカルで使うだけでなく、CI/CD パイプラインに組み込む ことで、セキュリティチェックを自動化できます。例えば、GitHub Actions で kubesec scan を実行し、スコアが低かったらデプロイをブロックする、なんて使い方もできます。

開発のスピードを落とさずに、セキュリティを強化できるので、Kubernetes を運用しているならぜひ活用してみてください!


まとめ

  • kubesec scan <yaml> で Kubernetes のマニフェストをスキャン

  • score が高いほど安全

  • advise を参考にセキュリティ設定を改善

  • jq を活用してスコアが低いマニフェストを抽出

  • CI/CD に組み込めば、セキュリティチェックを自動化できる

セキュリティは「問題が起きてから対策する」のではなく、「最初からしっかり守る」のが大事。kubesec scan を活用して、安全な Kubernetes 運用をしていきましょう! 🚀

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