“A core aspect of broadly used platforms is that
they are efficient only if they are built to be multitenant ”
「広く使われるプラットフォームの中核的な特徴は、
マルチテナントとして構築されているときだけ効率的 になることで
す。」
–– Camille Fournier, Platform Engineering
Amebaのテナント設計の限界(2021)
一部サービスのセキュリティ要件「 全レイヤーにおける完全分離 」を満たせない
1. 認証認可 ✅
❏ IAM Role再分離
2. コンピューティング ✅
❏ Pod Topology Spread Constraintsなど導入
3. ストレージ ✅
❏ IAM Policy設計
4. ネットワーク ❌ ⇦ ボトルネック
❏ Pod to Pod: 2021年当時、EKS上StableなNetwork Policyソリューションがない
❏ Pod to AWS: 2021年当時、Security Groups for Pod機能がIstioと衝突があったため、使用不可
Kubernetesレイヤーでの実装
Networkの制御
❏ ネットワーク ❌ ⇦ ボトルネック
○ Pod to Pod: 2021年当時、EKS上StableなNetwork Policyソリューションがない
○ Pod to AWS: 2021年当時、Security Groups for Pod機能がIstioと衝突があったため、使用不可
❏ 2023年以降いずれも改善された ✅
○ Pod to Pod: EKS vpccniにL4のNetwork Policy が実装
○ Pod to AWS: Security Groups for Pod 再検証した結果、衝突現象が解消された
❏ DB/CacheのSGでPod SGのみを許可する
○ Network PolicyがL7まで対応できたら、Security Groups for Podが不要になる