Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Best Practices for Implementing Network Policie...

モブエンジニア
November 13, 2026
1

Best Practices for Implementing Network Policies in Amazon EKS

2026/11/16 JAWS-UGコンテナ支部 #31 ゆるLT大会
https://jawsug-container.connpass.com/event/400814/

モブエンジニア

November 13, 2026

Transcript

23 slides
  1. お伝えすること/お伝えしないこと 今回はEKSとVPC CNIの標準機能に絞ってお話しします。 お伝えすること お伝えしないこと • Amazon EKSについて • 他クラウドのk8sとの比較

    • ネットワークポリシーの概要 • サードパーティの深掘り紹介 • 運用を行ううえでのプラクティス • その他(サービスメッシュ、L7制御など) 3
  2. 自己紹介 ペンネーム: モブエンジニア(@mob_engineer) 業務内容: 某SI企業のSRE/PL 好きな技術領域: クラウド(AWS、Azure、OCI) コンテナ(k8s)、ネットワーク(仮想) オブザーバビリティ運用(Dynatrace) 趣味:

    コミュニティ/カンファレンス運営 (最近は少ないが)登壇/ブログ執筆 一言: 社外コミュニティを広めながら楽しんでいるエンジニアです! 4
  3. Amazon EKSについて k8sの司令塔部分をAWSが運用してくれます。 1.33~1.36 AWS Cloud Region AWS管理 今サポート中のバージョン お客様のVPC

    14+12か月 1バージョンの面倒見期間 司令塔 ノード Fargate Pod IP Auto Mode / Hybrid Nodes 等 VPC CNI PodがVPCのIPを持つ 引用情報:Amazon EKS User Guide(Kubernetes version lifecycle) アイコン:AWS Architecture Icons 5
  4. まずは用語をざっくり この先に出てくる言葉を先にそろえておきます。 Pod アプリが動く いちばん小さな単位 ノード Podを載せて動かす サーバー(EC2) CNI eBPF

    Podに通信の配線を してくれる係 サーバーの中で通信を すばやく判定する仕組み 引用情報:Kubernetes Documentation/Amazon EKS User Guide アイコン:AWS Architecture Icons VPC AWS上に作る 自分専用のネットワーク IMDS サーバーの権限を 受け取る窓口 6
  5. ECS/ROSAとの比較 細かく制御したいならEKSかROSAが向いています。 観点 Amazon EKS Amazon ECS ROSA k8sの書き方 ◎

    そのまま × 独自の書き方 ◎ そのまま アプリ間の通信制御 ◎ NetworkPolicy ◦ タスク単位SG ◎ NetworkPolicy 全体ルールの強制 ◦ ClusterNetworkPolicy △ SG・VPC分割 ◎ ANP/BANP ドメイン名で制御 △ Auto Modeのみ △ Network Firewall ◎ EgressFirewall SGとの連携 ◦ SG for Pods ◎ タスクにSG △ ノード単位 運用の手間 △ CNIの更新 ◎ ほぼAWS任せ ◎標準で十分 ◦条件付き △制約あり・外部で補う ×なし(登壇者の評価) 引用情報:各サービスの公式ドキュメント(参考サイトに記載) アイコン:AWS Architecture Icons ◦ Red HatとAWS 7
  6. 直近のアップデート この1年はネットワーク制御と可視化の追加が続いています。 2025.11 通信の様子を見える化する機能が登場 2025.12 全体ルールとドメイン名で書けるルールを追加 2026.04 IAMでクラスタの公開範囲を縛れるように 2026.06 Network

    Firewallでコンテナ単位のルールが書けるように 2026.07 認証用の窓口をVPCの中に閉じられるように 2026.10 Auto ModeでGateway API(入口の設定)が使えるように 引用情報:AWS What's New(各アナウンス、参考サイトに記載) 8
  7. ネットワークポリシーについて Pod同士の通信を通すか止めるかを決めるルールです。 何もしないと全部通る $ cat default-deny.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy

    metadata: name: default-deny spec: podSelector: {} policyTypes: [Ingress, Egress] ルールがなければ全部届きます。 通す相手を書いていく 書いた相手以外は止まります。 止めるのはCNI CNIが対応していないと効きません。 引用情報:Kubernetes Documentation(Network Policies) 9
  8. たとえるなら「マンション」 クラスタをマンションにたとえると分かりやすいです。 たとえ マンション=クラスタ 部屋A (Pod) 部屋B (Pod) 部屋C (Pod)

    部屋D (Pod) 入口の警備員(CNI) 部屋 実際の仕組み Pod 入っていい人リスト NetworkPolicy 入口の警備員 CNI(VPC CNI) マンションの管理規約 ClusterNetworkPolicy 管理人室の合鍵置き場 IMDS 引用情報:登壇者によるたとえ 10
  9. EKSでの実装:VPC CNIとeBPF 書いたルールはVPC CNIが各サーバーに配ります。 コントロールプレーン NetworkPolicy ルールを書く コントローラー ルールを配る係 PolicyEndpoint

    配布用のメモ(自動) ノード(EC2のサーバー) VPC CNI 各ノードにいる通信の係 eBPF 通信をその場で通す/止める Pod A Pod B 引用情報:AWS Containers Blog(VPC CNI network policies) アイコン:AWS Architecture Icons CloudWatch Logs 判定ログ (任意) Pod C 11
  10. なぜ考える必要があるのか 何もしなければクラスタ内はどこへでも届きます。 芋づる式に広がる 1つのPodが 乗っ取られると DBまで届きます。 合鍵に届く サーバーの権限を 盗まれるおそれが あります。

    最初はオフ ルール機能は 初期状態でオフです。 AWSの公式ガイドでも通信を絞ることが勧められています。 引用情報:EKS Best Practices Guide(Network security) 12
  11. AWS特有の設定① スイッチを入れる まずスイッチをオンにします。初期状態はオフです。 $ aws eks update-addon ¥ --cluster-name prod

    ¥ --addon-name vpc-cni ¥ --configuration-values ¥ '{"enableNetworkPolicy":"true"}' ゆるめ(standard) 起動直後は全部通り 少しあとで絞られます。 きびしめ(strict) VPC CNI v1.21以上が必要です。 モードはVPC CNIの設定で切り替えます。 起動直後から全部止め 必要な通信だけ通します。 引用情報:Amazon EKS User Guide(Restrict Pod network traffic) 13
  12. AWS特有の設定② 効かない場所 書いても効かない場所があります。 EC2 Linuxのみ FargateやWindowsでは 効きません。 ポートを揃える Serviceとアプリの 番号を合わせます。

    IPv4とIPv6 クラスタで使っている 片方だけ効きます。 メインの配線 後から足した 配線は対象外です。 書ける数の上限 同じ宛先に書ける 組み合わせは24まで。 単体Podに注意 Deploymentなどで管理 されたPodが前提です。 引用情報:Amazon EKS User Guide(Limit Pod traffic, Considerations) 14
  13. AWS特有の設定③ AWSの機能との関係 AWSの機能と役割が重なる所を整理します。 IMDS サーバーの権限を使うPodだけ通します。 SG for Pods RDSなどAWSのサービス向けはSGが便利です。 DNS

    Firewall 名前解決の段階で止まることがあります。 判定ログ 初期はオフです。オンにするとCPUを少し使います。 引用情報:Amazon EKS User Guide/EKS Best Practices Guide アイコン:AWS Architecture Icons 15
  14. AWS特有の設定④ 全体ルール 全体の規約を各部屋のルールより先に確認します。 Admin層(全体の規約) 絶対に守るルール NetworkPolicy 部屋ごとのルール Baseline層(初期設定) 部屋で上書きできる 最後は止める

    どれにも当たらない場合 上書き不可 さらに絞れる まだ試作段階のAPI AWS独自のv1alpha1です。 今後変わる可能性があります。 ドメイン指定はAuto Mode 「このドメインだけ通す」は Auto Modeで使えます。 引用情報:Amazon EKS User Guide/Kubernetes SIG Network 16
  15. AWS特有の設定⑤ 合鍵置き場を閉じる 全員に守ってほしいルールは全体の規約に書きます。 apiVersion: networking.k8s.aws/v1alpha1 kind: ClusterNetworkPolicy metadata: { name:

    block-imds } spec: tier: Admin priority: 10 subject: { namespaces: {} } egress: - action: Deny to: [{networks: [169.254.169.254/32]}] 部屋側で覆せない 各部屋のルールで 許可しても届きません。 先に移行しておく 合鍵に頼るPodを 洗い出しておきます。 引用情報:AWS Containers Blog(DNS and admin network policies) 17
  16. 業務上でのプラクティス① デプロイ管理 ルールも設定もGitに置いて自動で配ります。 AWS Cloud 各チーム Region Git 同期 ポリシー

    アドオン設定 EKS Capabilities ノード 判定ログ 全体の規約 CI 検査と疎通テスト IaCで適用 Argo CD VPC 適用 EKS API 各部屋のルール VPC CNIアドオン eBPFで判定 引用情報:Amazon EKS User Guide(EKS Capabilities) アイコン:AWS Architecture Icons 通信の可視化 18
  17. ポリシー管理における課題 止めすぎも開けすぎも気づきにくいのが悩みです。 課題 起きること 打ち手 起動直後のすき 少しの間は全部通る きびしめモード ラベルのばらつき 穴が開く、止まる

    名前のルールと自動検査 見えにくい どこで止まったか不明 ログと見える化 外向きの宛先 IPが変わって追えない SGかドメイン指定 APIが試作段階 将来書き直しが必要 全体ルールは最小限 役割分担 誰が直すかあいまい 全体は基盤チーム 引用情報:Amazon EKS User Guide/EKS Best Practices Guide 20
  18. 参考サイト(1/2) Limit Pod traffic with Kubernetes network policies docs.aws.amazon.com/eks/latest/userguide/cni-network-policy.h… Restrict

    Pod network traffic with Kubernetes network policies docs.aws.amazon.com/eks/latest/userguide/cni-network-policy-c… Troubleshooting Kubernetes network policies docs.aws.amazon.com/eks/latest/userguide/network-policies-tro… Use Network Policies with EKS Auto Mode docs.aws.amazon.com/eks/latest/userguide/auto-net-pol.html EKS Best Practices Guide(Network security) docs.aws.amazon.com/eks/latest/best-practices/network-securit… Amazon EKS introduces enhanced network security policies aws.amazon.com/about-aws/whats-new/2025/12/amazon-eks-enhance… Enhance Amazon EKS network security posture with DNS and admin network policies aws.amazon.com/blogs/containers/enhance-amazon-eks-network-se… 22
  19. 参考サイト(2/2) Understand the Kubernetes version lifecycle on EKS docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.… AWS

    Network Firewall container attribute-based inspection aws.amazon.com/about-aws/whats-new/2026/06/aws-network-firewa… Network security best practices for Amazon ECS docs.aws.amazon.com/AmazonECS/latest/developerguide/security-… ROSA Network policy APIs docs.openshift.com/rosa/networking/network_security/network-p… ClusterNetworkPolicy v1alpha2(Kubernetes SIG Network) network-policy-api.sigs.k8s.io/blog/2025/10/09/api-update-for… Kubernetes Network Policies kubernetes.io/docs/concepts/services-networking/network-polic… AWS Architecture Icons aws.amazon.com/architecture/icons/ 23

More Decks by モブエンジニア