🔐 Amazon EKS セキュリティ完全図解

高級マンションで理解する!3層防御の仕組みを徹底ビジュアル化

📌 結論:EKSを守る3つのセキュリティ機能

第1層
🔒
ノード間暗号化
通信データを暗号化
「盗聴」を防止

🏠 住人の電話を暗号化
盗み聞きされても安心
第2層
📋
ポッドセキュリティ
Podの権限を制御
「危険な入居者」を阻止

🏠 厳格な入居審査
怪しい人は入居拒否
第3層
🚪
ネットワークポリシー
Pod間の通信を制御
「不正移動」を防止

🏠 部屋間の通行ルール
許可なく他の部屋へ行けない

🏢 EKSクラスター = 高級タワーマンション

🏢 EKSクラスター(タワーマンション)
🖥️ ノードA
(5階)
🔒
📦
Pod 1
frontend
🔒
📦
Pod 2
api
🖥️ ノードB
(3階)
🔒
📦
Pod 3
backend
🔒
🗄️
Pod 4
database
🖥️
ノード = 各フロア
📦
Pod = 各部屋
🔒
暗号化 = 盗聴防止

🔒 ノード間暗号化の仕組み

🎯 目的: ノード間の通信を暗号化して「盗聴」を防止

🖥️ ノードA(5階)
📦
📦
暗号化トンネル
🔒
🔒
TLS / Nitro暗号化
🖥️ ノードB(3階)
📦
🗄️
📄 平文データ
"password123"
➡️ 🔐 ➡️
🔒 暗号化データ
"x8K#mP@..."

🏠 マンションのたとえ:
3階と5階の住人が電話するとき、廊下で誰かが盗み聞きしても
「@#$%^&*...」 ← 暗号化されているから内容がわからない!

📋 ポッドセキュリティの仕組み

🎯 目的: 危険な権限を持つPodのデプロイを阻止

📦
Pod作成リクエスト
「入居希望者」
➡️
🛂
Pod Security Admission
✓ root権限チェック
✓ 特権モードチェック
✓ ホストネットワークチェック
✓ 危険なCapabilityチェック
➡️
⚖️
審査結果
⬇️ 合格
✅ デプロイ許可
「入居OK!」
⬇️ 不合格
❌ デプロイ拒否
「入居NG!」

📊 Pod Security Standards(PSS)の3レベル

🔓
Privileged
制限なし(非推奨)
  • ❌ root実行 → 許可
  • ❌ 特権モード → 許可
  • ❌ ホストネットワーク → 許可
⚠️ 使用非推奨
🔐
Baseline
基本的な制限
  • ⚠️ root実行 → 許可
  • ✅ 特権モード → 禁止
  • ✅ ホストネットワーク → 禁止
📝 開発環境向け
🔒
Restricted
最も厳格な制限
  • ✅ root実行 → 禁止
  • ✅ 特権モード → 禁止
  • ✅ ホストネットワーク → 禁止
🏆 本番環境推奨

🚪 ネットワークポリシーの仕組み

🎯 目的: Pod間の通信を制御して不正アクセスを防止

📱 frontend
➡️ ✅ 許可 ➡️
⚙️ backend
⚙️ backend
➡️ ✅ 許可 ➡️
🗄️ database
📱 frontend
➡️ ❌ 拒否 ➡️
🗄️ database
😈 攻撃者Pod
➡️ ❌ 拒否 ➡️
🗄️ database

🏠 マンションのたとえ:
101号室(frontend)→ 102号室(backend)→ 管理人室(database)の順でしか行けない
101号室から直接管理人室に行くことは 禁止!

⚔️ 攻撃シナリオと3層防御

😈 攻撃者がPodを侵害した場合、どう防ぐ?

😈
攻撃者
脆弱性を突いて侵入
➡️
📦💀
侵害されたPod
frontendが乗っ取られた
➡️
🛡️
3層防御で阻止!
🔒

ノード間暗号化

🛡️ 防御効果:
通信を傍受しても
暗号化されているため
内容を読めない

📋

ポッドセキュリティ

🛡️ 防御効果:
特権エスカレーションを試みても
制限されているため
root権限を取得できない

🚪

ネットワークポリシー

🛡️ 防御効果:
他のPodへ横移動しようとしても
通信が許可されていないため
アクセスできない

🎯 3層防御の全体像

🔒 第1層:ノード間暗号化
📋 第2層:ポッドセキュリティ
🚪 第3層:ネットワークポリシー
📦
あなたのPod
(守られている!)
🔒 外側:通信の暗号化
📋 中間:権限の制限
🚪 内側:通信の制御

📊 3つのセキュリティ機能 比較表

比較項目 🔒 ノード間暗号化 📋 ポッドセキュリティ 🚪 ネットワークポリシー
🎯 守るもの 📡 通信データ ⚙️ Podの権限 🛤️ 通信経路
😈 防ぐ脅威 盗聴・傍受 特権エスカレーション 横移動・不正アクセス
🏠 マンションのたとえ 電話の暗号化 入居審査 通行ルール
⚙️ 設定レベル インフラ層 Namespace/Pod層 Pod/Label層
📦 デフォルト Nitro: 有効 ✅ 無効(要設定) 全許可(要設定)
🔧 追加コンポーネント 不要(Nitro) 不要(K8s組み込み) CNI必要
(Calico/Cilium)

📝 導入の流れ

1
🔒 ノード間暗号化を確認
Nitroインスタンス(c5, m5, r5など)を使用 → 自動有効!
⬇️
2
📋 ポッドセキュリティを設定
まず warn モードで影響確認 → 問題なければ enforce に変更
⬇️
3
🚪 ネットワークポリシーを設定
CNI(Calico等)を導入 → 必要な通信のみ許可するポリシーを作成
⬇️
🛡️ 3層防御の完成!
多層防御(Defense in Depth)でEKSクラスターを保護

❓ よくある質問

🤔 3つのうち1つだけ導入すればいい?
いいえ!3つすべてを組み合わせましょう。
各機能は「代替」ではなく「補完」関係です。1つが突破されても、他の層で攻撃を止められます。
これが「多層防御(Defense in Depth)」の考え方です。
🤔 PodSecurityPolicy(PSP)はもう使えない?
はい、PSPはKubernetes 1.25で削除されました。
現在はPod Security Standards(PSS)とPod Security Admission(PSA)を使用します。
PSSは Privileged / Baseline / Restricted の3レベルでシンプルに管理できます。
🤔 ネットワークポリシーはデフォルトで有効?
いいえ、デフォルトは「すべて許可」です。
明示的にNetworkPolicyを作成しないと、どのPodからでも他のPodにアクセス可能です。
また、EKSデフォルトのVPC CNIはネットワークポリシー未対応なので、Calicoなどの導入が必要です。

🎓 まとめ

🔒
ノード間暗号化
通信を暗号化
「盗聴」を防止
Nitroで自動有効
📋
ポッドセキュリティ
権限を制限
「危険なPod」を阻止
PSS/PSAで設定
🚪
ネットワークポリシー
通信を制御
「横移動」を防止
CNIで実現
🏢 高級マンション(EKS)の完璧なセキュリティ:

🔒 住人の電話は暗号化(ノード間暗号化)
📋 怪しい人は入居拒否(ポッドセキュリティ)
🚪 部屋間の移動はルールあり(ネットワークポリシー)

3層すべてを導入して、堅牢なEKS環境を構築しよう!🛡️

Created by SSuzuki1063

AWS SAP Learning Resources