🎯 レッスンの目的__HTMLTAG_66___
- ✅ Kubernetes RBAC (ロール、クラスターロール、バインディング)
- ✅ ポッドのセキュリティ標準 (特権、ベースライン、制限付き)
- ✅ サービスアカウントのベストプラクティス__HTMLTAG_73___
- ✅ 監査ログ構成
- ✅ セキュリティ強化チェックリスト
パート 1: KUBERNETES RBAC
コードブロック_0
コードブロック_1
コードブロック_2
パート 2: サービスアカウントのベストプラクティス__HTMLTAG_84___
コードブロック_3
パート 3: ポッドのセキュリティ標準
| レベル | 説明 | ユースケース |
|---|---|---|
| 特権 | 制限なし | システムレベル(CNI、ストレージドライバー) |
| ベースライン_ | 既知のエスカレーションを防止 | ほとんどのワークロードのデフォルト_ |
| 制限付き | 厳格化、すべてのベストプラクティス | 機密性の高いワークロード_ |
コードブロック_4
コードブロック_5
パート 4: 監査ログ
コードブロック_6
コードブロック_7
パート 5: セキュリティ強化チェックリスト
| # | アイテム | ステータス |
|---|---|---|
| 1 | RBAC が有効、アプリのクラスター管理者なし | ☐ |
| 2 | ポッドセキュリティ標準の適用 | ☐ |
| 3 | ServiceAccount トークンの自動マウントが無効になっています | ☐ |
| 4 | ネットワーク ポリシーのデフォルトすべて拒否 | ☐ |
| 5 | 監査ログ有効 | ☐ |
| 6 | 保存時の etcd 暗号化 | ☐ |
| 7 | プライベート ネットワーク上の API サーバーのみ | ☐ |
| 8 | Kubelet 認証/認証が有効 | ☐ |
| 9 | 署名/スキャンされたコンテナイメージ | ☐ |
| 10_ | Vault 内の秘密 (単純な K8 秘密ではない) | ☐ |
💡 重要なポイント
- RBAC: 最小限の権限 — 必要な動詞/リソースのみを付与
- _ServiceAccount: ワークロードごとに、トークンの自動マウントを無効にします
- PSS: 本番環境の名前空間に対して制限を適用
- _監査: ログ シークレット アクセス、RBAC 変更、ポッド実行
- SecurityContext: runAsNonRoot、dropAll 機能、readOnlyRootFilesystem
🎯 演習
_演習 1: RBAC のセットアップ__HTMLTAG_259___
- 異なる権限を持つ開発者/運用ロールを作成
- _kubectl --as=developer
によるアクセスのテスト
- 監査ログを有効にし、シークレット アクセスがログに記録されていることを確認__HTMLTAG_266___
演習 2: ポッドのセキュリティ
- 制限付き PSS を使用したラベル名前空間
- 特権ポッドをデプロイ → 拒否を確認
- 制限レベルに準拠するようにポッドを修正
📚 次の投稿
_レッスン 37: Kyverno ポリシー エンジン では、クラスターにコードとしてのポリシーを実装します。