Kubernetesのセキュリティ設計入門|RBAC・Pod Security・ネットワークポリシーの実践

Kubernetesのセキュリティ設計入門|RBAC・Pod Security・ネットワークポリシーの実践
「KubernetesのセキュリティってどこまでやればいいのI?」——KubernetesのRBAC(アクセス制御)・Pod Security Standards・NetworkPolicyを使ったセキュリティ設計の基礎を解説します。
💡 Kubernetesはデフォルトでは「同じクラスター内のPod同士が自由に通信できる」という危険な状態です。本番環境では必ずRBAC・Pod Security・NetworkPolicyの3つを設定する必要があります。
1. RBAC(ロールベースアクセス制御)
KubernetesのRBACはServiceAccount・Role・RoleBindingの3つの概念で構成されます。「開発者はdevelopmentネームスペースのDeploymentをget/list/watchできる」「SREは全ネームスペースのPodをget/listできる」という細かいアクセス制御をRBACで実現します。
2. Pod Security Standards
# ネームスペースにrestricted Pod Security Standardsを適用
kubectl label namespace production \
pod-security.kubernetes.io/enforce=restricted \
pod-security.kubernetes.io/enforce-version=latest
# restrictedでは以下が禁止される:
# - privilegedコンテナの実行
# - hostNetworkの使用
# - rootユーザーでの実行(runAsNonRoot: true が必要)
# - 危険なSysCtlsの設定Pod Security StandardsにはPrivileged(制限なし)・Baseline(基本的な制限)・Restricted(最も厳格)の3レベルがあります。本番環境ではRestrictedを適用することを推奨します。
3. NetworkPolicyでPod間通信を制限
- デフォルトのDeny-Allポリシー:まず全ての通信を禁止するNetworkPolicyを設定してから、必要な通信のみを許可するホワイトリスト方式が推奨
- フロントエンド→バックエンドのみ許可:「frontendラベルのPodからbackendポートへの通信のみ許可」というポリシーでマイクロサービス間の通信を制限する
- DB Podへのアクセス制限:「app-serverラベルのPodからのみDBの5432ポートへのアクセスを許可」という設定でDB Podを保護する
4. イメージの脆弱性スキャン
本番環境にデプロイするコンテナイメージは、CI/CDパイプライン内で脆弱性スキャンを実行することを推奨します。TrivyはOSSの軽量なコンテナイメージスキャナーで、GitHub ActionsでPR時に自動スキャンを実行できます。HIGH/CRITICAL の脆弱性があるイメージのデプロイをブロックするポリシーが理想です。
- 本番KubernetesはRBAC・Pod Security Standards(Restricted)・NetworkPolicyの3つを必ず設定する
- NetworkPolicyはDeny-Allから始めて必要な通信のみをホワイトリストで許可する設計が最も安全
- CI/CDでTrivyによるコンテナイメージの脆弱性スキャンを実施してHIGH/CRITICALをブロックする
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。



