![見出し画像](https://assets.st-note.com/production/uploads/images/172381101/rectangle_large_type_2_3eded75715cebb9777ab8bc9cf03cc67.png?width=1200)
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 運用をしていきましょう! 🚀