Kubernetes

Kubernetes セキュリティベストプラクティス 2026 - 全層防御と自動化

ⓘ本ページはプロモーションが含まれています

Contents

スポンサードリンク

📋 目次

  1. 全体像とチェックリスト
  2. 4C フレームワークで考える「全層防御」
  3. Configuration(設定)
  4. Credential(認証情報)
  5. Container(コンテナイメージ)
  6. Communication(通信)
  7. RBAC と最小権限の実装
  8. ネットワークセキュリティ:NetworkPolicy & Service Mesh の統合
  9. シークレット管理・サプライチェーン保護
  10. ランタイム監視とポリシーエンジン
  11. CI/CD パイプラインに組み込む自動チェックリスト
  12. まとめ & 実装チェックリスト

全体像とチェックリスト

項目 確認ポイント 推奨ツール/設定例
設定 (Configuration) API Server の安全オプションが有効か --anonymous-auth=false--authorization-mode=RBAC,Node
認証情報 (Credential) Secrets が暗号化・自動ローテーションされているか Etcd 暗号化 + KMS、CronJob で定期更新
コンテナイメージ ビルド時に脆弱性スキャンと署名が行われているか Trivy + Cosign (GitHub Actions / GitLab CI)
通信 (Communication) Pod 間は最小権限の NetworkPolicy と mTLS で保護されているか デフォルト deny → 必要な allow、Istio strict‑mtls
RBAC ClusterRole/Role が最小権限でバインドされ、監査ログが出力されるか RoleBinding + audit‑policy
シークレット管理 外部 KMS で Etcd 暗号化、Vault 等と連携したローテーションができているか GCP/AWS/KMS + CronJob/Vault
ランタイム監視 不審なプロセス・リソース作成を検知し阻止できるか Falco + OPA Gatekeeper / Kyverno
CI/CD ガード プルリクエスト時に全ポリシーが自動テストされ、合格しないとマージできないか kube‑score・conftest 連携 GitHub Actions

チェックリストは Git リポジトリの SECURITY_CHECKLIST.md として管理し、CI の「Security Gate」ジョブで必ず参照


4C フレームワークで考える全層防御

1️⃣ Configuration – 設定の安全化

Why

設定ミスは攻撃者が最初に突き止めやすい入口です。CNCF の 2023 年サーベイ(※参考: CNCF Survey 2023)でも、設定不備がインシデントの約30%を占めると報告されています。

What to Do

  • API Server の安全オプションをコード化(GitOps)し、CI で lint → apply を自動化。
  • デフォルトは 最小権限(RBAC)に統一。

実装例(Helm values.yaml)

解説(初心者向け)

--anonymous-auth=false は「認証されていないユーザーが API にアクセスできなくする」設定です。
--authorization-mode=RBAC,Node は「ロールベースの権限管理」と「ノードレベルの権限」を同時に有効化し、最小権限を徹底します。


2️⃣ Credential – 認証情報の保護と自動ローテーション

Why

Etcd が平文で保存されていると、クラスター内部からでもすべてのシークレットが取得可能です(Kubernetes 公式ドキュメント参照)。

What to Do

手順 内容
暗号化 Etcd データを外部 KMS(AWS KMS、GCP Cloud KMS、Azure Key Vault)で暗号化
自動ローテーション CronJob / Argo Workflow でシークレットを定期的に再生成・更新

実装例 – GCP KMS と Etcd 暗号化

実装例 – Secrets ローテーション CronJob

ポイントkubectl create secret … --dry-run=client -o yaml | kubectl apply -f - によって、既存シークレットを上書きしながら安全に更新できます。


3️⃣ Container – コンテナイメージのスキャンとサプライチェーン対策

Why

サプライチェーン攻撃は「未署名・脆弱性があるイメージ」から始まるケースが多数です(Aikido の 2024 年レポート参照)。

What to Do

アクション ツール例
脆弱性スキャン Trivy、Snyk
イメージ署名 Cosign(Sigstore)
CI で自動化 GitHub Actions / GitLab CI / Azure Pipelines

実装例 – GitHub Actions ワークフロー

解説(初心者向け)

  • Trivy は Docker イメージをスキャンし、脆弱性情報を SARIF 形式で出力します。GitHub の「Security」タブに結果が自動表示されます。
  • Cosign はイメージに対して暗号署名を付与し、デプロイ先で cosign verify によって真正性と改ざん防止を検証できます。

4️⃣ Communication – ネットワーク通信のゼロトラスト実装

Why

内部横移動(Lateral Movement)攻撃は「許可されたまま全 Pod が自由に通信できる」ことが原因です。CNCF の 2023 年ネットワーク調査 でも、デフォルト allow が残っているクラスターは依然として多数です。

What to Do

  1. NetworkPolicy で「デフォルト deny」 を設定
  2. 必要な通信だけをラベルベースで allow
  3. Istio(または Linkerd)で mTLS を strict に し、暗号化と相互認証を実装

実装例 – デフォルト deny + allow ポリシー

Istio で mTLS を strict に設定

AuthorizationPolicy(サービス間の許可リスト)

解説(初心者向け)

  • NetworkPolicy は「どの Pod がどこへ送信できるか」をレイヤー 3/4 で制御します。podSelector: {} が空の場合はすべての Pod が対象です。
  • Istio の PeerAuthentication は「通信が暗号化され、相手の証明書を検証する」ことを強制し、NetworkPolicy だけでは実現できない 相互認証 を提供します。
  • AuthorizationPolicy は「どのサービスアカウント(principal)がどのサービスにアクセスできるか」をレイヤー 7(HTTP/gRPC)で制御します。

RBAC と最小権限の実装

基本方針

項目 ベストプラクティス
ロール設計 ClusterRole はクラスタ全体に必要な権限だけ、Role は Namespace 単位で最小化
バインディング 必要最小の Subject(User / Group / ServiceAccount)にだけ結び付ける
監査ログ audit-policy.yaml で RBAC 関連 API を必ず記録する
CI テスト conftestkube-score で Role/RoleBinding の過剰権限を検出

実装例 – Namespace 別の最小権限ロール

ポイント解説

  • Roleproduction Namespace にだけ作用し、Pod の読み取り権限だけを付与。
  • SubjectGroup を指定することで、個々のユーザー管理が不要になり、チーム単位での権限付与が楽になります。

監査ポリシー例

Tip:このポリシーを kube-apiserver の起動オプション --audit-policy-file=/etc/kubernetes/audit-policy.yaml に設定すると、RBAC 変更がすべてログに残ります。


ネットワークセキュリティ: NetworkPolicy & Service Mesh の統合

1. デフォルト deny ポリシーの適用(全クラスター共通)

2. ラベルベースで許可対象を絞るパターン例

3. Service Mesh (Istio) でのゼロトラスト実装(上記参照)

  • PeerAuthentication:全通信を mTLS に強制
  • AuthorizationPolicy:サービスアカウント単位でアクセス許可

ベストプラクティスまとめ
1. NetworkPolicyネットワークレイヤー の「誰がどこへ行けるか」
2. Istio PeerAuthenticationトランスポート層 の暗号化と相互認証
3. Istio AuthorizationPolicyアプリケーション層 の細粒度アクセス制御

この 3 層を 同時に適用 すると、ネットワークレイヤーで不正な通信はすべて遮断され、残ったトラフィックも暗号化・認証された安全なものだけになります。


シークレット管理・サプライチェーン保護

KMS 統合と Etcd 暗号化(GCP 例)

encryptionconfig.yaml の抜粋は前述の Configuration セクションをご参照ください。

外部シークレットストアと CronJob/Vault の連携例

ポイント:Vault の kv エンジンから取得した最新パスワードを直接 Kubernetes Secret に上書きするだけで、シークレットのローテーションが自動化できます。

サプライチェーン全体の防御フロー

  1. コードリポジトリ → PR 時点で kube-scoreconftest が manifest を検証
  2. CI ビルド → Trivy で脆弱性スキャン、合格したイメージだけをレジストリへプッシュ
  3. 署名 → Cosign によりイメージに署名し、デプロイ時に cosign verify で検証
  4. デプロイ → Argo CD / Flux がマニフェストの GitOps デプロイを実行、同時に RBAC/NetworkPolicy の適用も確認

ランタイム監視とポリシーエンジン

エンジン 主な役割 設定例
Falco カーネルレベルの syscalls で不審行動を検知 falco_rules.yaml(Privileged Container の検出)
OPA Gatekeeper Admission 時にポリシー違反を阻止 ConstraintTemplate + Constraint(必須ラベル)
Kyverno YAML ベースで簡単にポリシー記述・自動修正 ClusterPolicy(リソース上限の強制)

Falco カスタムルール例

OPA Gatekeeper ConstraintTemplate(必須ラベル)

Kyverno リソース上限ポリシー

実装ヒント:Falco は DaemonSet で全ノードに展開し、Kubernetes の Event と連携させると Grafana ダッシュボードで可視化できます。Gatekeeper/Kyverno は GitOps リポジトリ内の policies/ ディレクトリに配置し、CI がプルリクエスト時に conftest test で検証すると一貫性が保たれます。


CI/CD パイプラインに組み込む自動チェックリスト

チェックリストの形態例(SECURITY_CHECKLIST.md

GitHub Actions での「Security Gate」ジョブ例

効果:プルリクエストがマージされる前にすべてのセキュリティ基準を自動的に検証し、違反があれば即座にブロックします。


まとめ & 実装チェックリスト

キーポイント(箇条書き)

  • 設定は GitOps 化 → --anonymous-auth=falseRBAC を必須化
  • 認証情報は外部 KMS による Etcd 暗号化+CronJob/Vault で自動ローテーション
  • イメージは Trivy スキャン + Cosign 署名を CI に組み込み、未署名・脆弱なイメージのデプロイを防止
  • 通信NetworkPolicy のデフォルト deny → 必要最小許可 + Istio strict‑mtls + AuthorizationPolicy でゼロトラスト実現
  • RBACは Role/ClusterRole を最小権限に絞り、監査ログと CI テストを併用
  • シークレット管理は KMS 暗号化+Vault 等外部ストアでの自動ローテーション
  • ランタイム監視は Falco(行動検知)+ OPA Gatekeeper / Kyverno(ポリシー適用)で二層防御
  • CI/CD ガードkube-scoreconftest、チェックリストを組み合わせてプルリクエスト時に自動阻止

実装チェックリスト(最終確認)

次のステップ:上記チェックリストをプロジェクトのリポジトリに追加し、CI パイプラインへ組み込むだけで「2026 年版 Kubernetes ベストプラクティス」の実装が完了します。継続的なレビューとツールバージョン更新(例:Trivy の CVE データベース)を忘れずに行い、常に最新の脅威情報に対応してください。


本稿は 2026 年時点で公表されている CNCF・CIS・NIST 等の公式ガイドラインや、広く実績が確認できるオープンソースツールをベースに作成しています。特定ベンダーの調査結果(例: CrowdStrike 2026 年調査)については出典不明な情報は除外し、一般的に信頼できる情報源へ置き換えました。

スポンサードリンク

-Kubernetes
-, , , , , , , , , ,