はじめに
マルチクラスタ環境が一般化する中で、従来の「境界型セキュリティ」は通用しなくなっています。 そこで重要になるのがゼロトラストセキュリティです。
ゼロトラストの基本原則はシンプルです:
- すべての通信を信用しない(Never Trust)
- 常に検証する(Always Verify)
本記事では、Kubernetesマルチクラスタ環境においてゼロトラストを実現する設計を解説します。
1. マルチクラスタ環境におけるセキュリティ課題
- クラスタ間通信の信頼性
- 認証の分散管理(IAM / ServiceAccount)
- ネットワーク境界の曖昧化
- 攻撃面の拡大(Attack Surface)
単一クラスタよりも横方向の攻撃(Lateral Movement)が発生しやすくなります。
2. ゼロトラストの基本構成(Kubernetes版)
Identity(認証) ↓ Policy(認可) ↓ Encryption(通信保護) ↓ Observability(監査)
この4層で設計します。
3. Identity設計(認証基盤)
① Workload Identity(最重要)
- ServiceAccountをIDとして扱う
- クラスタ間でIDを統一
例:SPIFFE/SPIRE
spiffe://cluster.local/ns/default/sa/my-service
Pod単位で一意なIDを付与します。
② 外部IdP統合
- OIDC(Azure AD / Okta)
- IAM Identity Center
4. Service Meshによる通信制御
ゼロトラストの中核はService Meshです。
主要機能
- mTLS(双方向TLS)
- トラフィック制御
- 認証・認可
構成(Istio例)
Pod → Sidecar Proxy → mTLS → Sidecar Proxy → Pod
mTLS強制設定
apiVersion: security.istio.io/v1beta1 kind: PeerAuthentication spec: mtls: mode: STRICT
5. クラスタ間通信(Multi-Cluster Mesh)
接続モデル
- Single Control Plane
- Multi Control Plane
通信イメージ
Cluster A ← mTLS → Cluster B
すべての通信を暗号化・認証します。
6. 認可(Authorization)設計
Istio AuthorizationPolicy
apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy spec: rules: - from: - source: principals: ["spiffe://cluster/ns/default/sa/frontend"]
「誰がどこにアクセスできるか」を明示的に制御します。
7. ネットワークセグメンテーション
① Kubernetes NetworkPolicy
kind: NetworkPolicy spec: podSelector: ingress: - from: - podSelector: matchLabels: role: backend
② クラスタ間の制御
- VPC分離
- PrivateLink / VPN
ネットワークレイヤでもゼロトラストを実装します。
8. Secretsと証明書管理
ベストプラクティス
- HashiCorp Vault / AWS Secrets Manager
- 証明書の短期ローテーション
Istioの証明書自動更新
- 自動発行
- 短命証明書(数時間〜数日)
9. 可観測性と監査
ログ・トレース
- CloudWatch / Loki
- Jaeger / X-Ray
メトリクス
- Prometheus
- Grafana
ゼロトラストでは「検知」が重要です。
10. 実務アーキテクチャ例
[User] ↓ [WAF / API Gateway] ↓ [Service Mesh(mTLS)] ↓ [Multi Cluster] ↓ [DB / Backend]
- 外部通信 → WAF
- 内部通信 → mTLS
- 認証 → OIDC
11. ベストプラクティスまとめ
- すべての通信を暗号化(mTLS)
- IDベースのアクセス制御(SPIFFE)
- 最小権限(Least Privilege)
- ネットワーク境界に依存しない設計
まとめ
- マルチクラスタでは境界型セキュリティは破綻する
- ゼロトラストはIdentity中心の設計
- Service Meshが中核技術
- 監査・可観測性まで含めて設計する
ゼロトラストは単なるセキュリティではなく、分散システムの前提条件です。