Share
Embed
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
-
Amazon EKSのネットワークポリシー 実装のプラクティス ~AWSでk8s運用を行ううえで押さえておくポイント~ $ kubectl apply -f netpol/ networkpolicy.networking.k8s.io/default-deny
created networkpolicy.networking.k8s.io/allow-dns created $ _ モブエンジニア(@mob_engineer)/2026年11月 -
対象者と得られる学び 書き方はk8sとほぼ同じです。差は周辺の設定と運用に出ます。 対象者 得られる学び Amazon EKSの ネットワークを知りたい方 EKSのネットワークポリシーは k8sとほぼ同じ 他のコンテナサービスと
比較したい方 AWSで動かすうえでは マニフェストとデプロイ管理が肝 2 -
お伝えすること/お伝えしないこと 今回はEKSとVPC CNIの標準機能に絞ってお話しします。 お伝えすること お伝えしないこと • Amazon EKSについて • 他クラウドのk8sとの比較
• ネットワークポリシーの概要 • サードパーティの深掘り紹介 • 運用を行ううえでのプラクティス • その他(サービスメッシュ、L7制御など) 3 -
自己紹介 ペンネーム: モブエンジニア(@mob_engineer) 業務内容: 某SI企業のSRE/PL 好きな技術領域: クラウド(AWS、Azure、OCI) コンテナ(k8s)、ネットワーク(仮想) オブザーバビリティ運用(Dynatrace) 趣味:
コミュニティ/カンファレンス運営 (最近は少ないが)登壇/ブログ執筆 一言: 社外コミュニティを広めながら楽しんでいるエンジニアです! 4 -
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 -
まずは用語をざっくり この先に出てくる言葉を先にそろえておきます。 Pod アプリが動く いちばん小さな単位 ノード Podを載せて動かす サーバー(EC2) CNI eBPF
Podに通信の配線を してくれる係 サーバーの中で通信を すばやく判定する仕組み 引用情報:Kubernetes Documentation/Amazon EKS User Guide アイコン:AWS Architecture Icons VPC AWS上に作る 自分専用のネットワーク IMDS サーバーの権限を 受け取る窓口 6 -
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 -
直近のアップデート この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 -
ネットワークポリシーについて 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 -
たとえるなら「マンション」 クラスタをマンションにたとえると分かりやすいです。 たとえ マンション=クラスタ 部屋A (Pod) 部屋B (Pod) 部屋C (Pod)
部屋D (Pod) 入口の警備員(CNI) 部屋 実際の仕組み Pod 入っていい人リスト NetworkPolicy 入口の警備員 CNI(VPC CNI) マンションの管理規約 ClusterNetworkPolicy 管理人室の合鍵置き場 IMDS 引用情報:登壇者によるたとえ 10 -
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 -
なぜ考える必要があるのか 何もしなければクラスタ内はどこへでも届きます。 芋づる式に広がる 1つのPodが 乗っ取られると DBまで届きます。 合鍵に届く サーバーの権限を 盗まれるおそれが あります。
最初はオフ ルール機能は 初期状態でオフです。 AWSの公式ガイドでも通信を絞ることが勧められています。 引用情報:EKS Best Practices Guide(Network security) 12 -
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 -
AWS特有の設定② 効かない場所 書いても効かない場所があります。 EC2 Linuxのみ FargateやWindowsでは 効きません。 ポートを揃える Serviceとアプリの 番号を合わせます。
IPv4とIPv6 クラスタで使っている 片方だけ効きます。 メインの配線 後から足した 配線は対象外です。 書ける数の上限 同じ宛先に書ける 組み合わせは24まで。 単体Podに注意 Deploymentなどで管理 されたPodが前提です。 引用情報:Amazon EKS User Guide(Limit Pod traffic, Considerations) 14 -
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 -
AWS特有の設定④ 全体ルール 全体の規約を各部屋のルールより先に確認します。 Admin層(全体の規約) 絶対に守るルール NetworkPolicy 部屋ごとのルール Baseline層(初期設定) 部屋で上書きできる 最後は止める
どれにも当たらない場合 上書き不可 さらに絞れる まだ試作段階のAPI AWS独自のv1alpha1です。 今後変わる可能性があります。 ドメイン指定はAuto Mode 「このドメインだけ通す」は Auto Modeで使えます。 引用情報:Amazon EKS User Guide/Kubernetes SIG Network 16 -
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 -
業務上でのプラクティス① デプロイ管理 ルールも設定も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 -
業務上でのプラクティス② 最初に入れるもの 最初に入れる4つを決めておくと安心です。 1.まず全部止める 部屋ごとに入りも出も止めます。 3.合鍵置き場を閉じる 全体の規約で1つだけ置きます。 2.DNSだけ通す 名前解決ができないと何も動きません。 4.ラベルを決める
部屋に「本番」などの札を付けます。 引用情報:EKS Best Practices Guide/AWS Containers Blog 19 -
ポリシー管理における課題 止めすぎも開けすぎも気づきにくいのが悩みです。 課題 起きること 打ち手 起動直後のすき 少しの間は全部通る きびしめモード ラベルのばらつき 穴が開く、止まる
名前のルールと自動検査 見えにくい どこで止まったか不明 ログと見える化 外向きの宛先 IPが変わって追えない SGかドメイン指定 APIが試作段階 将来書き直しが必要 全体ルールは最小限 役割分担 誰が直すかあいまい 全体は基盤チーム 引用情報:Amazon EKS User Guide/EKS Best Practices Guide 20 -
参考サイト(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 -
参考サイト(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