クラウドキャリアフリーランス
技術記事 2026/8/5

EKSのOIDCエンドポイントがPrivateLink対応 — IRSA検証をインターネット経由なしで完結させる設計

EKSクラスターのOIDCディスカバリ/JWKSエンドポイントがAWS PrivateLinkに対応しました。IRSAが使う通信を3つのパスに分解し、新しいoidc-eksエンドポイントが閉じるのはどの経路で、STS呼び出しやトークン検証はなぜ別扱いなのかを設計判断として整理します。

  • #Amazon EKS
  • #AWS PrivateLink
  • #IRSA
  • #Kubernetes
  • #セキュリティ

2026年7月27日、Amazon EKS がクラスターのOIDCディスカバリエンドポイントとJWKSの取得を AWS PrivateLink 経由で行えるようになったと発表しました。IRSA(IAM Roles for Service Accounts=KubernetesのサービスアカウントにIAMロールを紐づける仕組み)を使う閉域VPCでは、この経路のためだけにインターネット出口を残している構成が珍しくありませんでした。

この記事は、IRSAが使う通信を3つのパスに分解したうえで、新しい oidc-eks エンドポイントが閉じるのはどれで、閉じないのはどれかを整理します。対象は閉域網・フルプライベートVPCのEKS設計を担う読者です。なお、コントロールプレーンから外向きに出る通信の経路制御は別の機能であり、本記事の対象外です。

IRSAが使う通信は3つのパスに分かれている

EKSクラスターは、クラスターごとのOIDC issuer URL 上に OpenID Connect のディスカバリ文書と JWKS(JSON Web Key Set=トークンの署名を検証するための公開鍵の集合)を公開しています。IRSAはこのエンドポイントでクラスターの公開署名鍵を配布し、IRSAを設定するツールやトークンを検証する実装が、ここから鍵を取得します。

混同しやすいのは、「OIDCエンドポイントに誰がアクセスするのか」が一種類ではない点です。公式ドキュメントの記述に沿って分けると次の3つになります。

パス呼ぶ主体経路プライベート化の手段
① ディスカバリ文書・JWKSの取得VPC内のツール(eksctl、Terraform、AWS CLI、自作トークンバリデータ)VPC → クラスターのissuerホスト名oidc-eks インターフェースエンドポイント(今回追加)
sts:AssumeRoleWithWebIdentity の呼び出しワークロード(Pod)VPC → AWS STSSTSのインターフェースエンドポイント+リージョンSTSエンドポイントの設定
③ トークン検証時のJWKS取得AWS STSAWS内部利用者の設定対象外

③について公式ドキュメントは、ワークロードが AssumeRoleWithWebIdentity を呼んだとき、AWS STS はクラスターのJWKSを利用者のVPCやこのエンドポイントを通さずAWS内部から取得すると明記しています。このエンドポイントを作っても、VPC内でOIDCのDNSを上書きしても、トークン検証の挙動は変わりません。

この切り分けがないと、「IRSAが動かない原因はOIDCエンドポイントへの到達性だ」という誤った仮説から調査を始めることになります。今回追加されたのは①だけです。

周辺: エンドポイントは用途ごとにサービス名が違う

EKS関連のインターフェースエンドポイントは1つではなく、用途ごとに分かれています。

サービス名用途
com.amazonaws.region-code.eksEKS API
com.amazonaws.region-code.eks-fipsFIPS準拠のEKS API
com.amazonaws.region-code.eks-authEKS Auth API(EKS Pod Identity)
com.amazonaws.region-code.oidc-eksクラスターのOIDCディスカバリ/JWKS(今回追加)

EKS APIのエンドポイントで到達できるのはEKSのAPIアクションで、Kubernetes API そのものには使えません(こちらは別のプライベートエンドポイントを持ちます)。

設計上あわせて把握しておきたいのが eks-auth です。EKS Pod Identity は EKS Auth API から資格情報を取得する方式で、OIDCディスカバリ文書を引きません。Pod Identityに寄せた構成では①のパスがそもそも発生せず、代わりに eks-auth のエンドポイントが必要になります。

何が変わったか — oidc-eks エンドポイントとDNSの解決

サービス名 com.amazonaws.region-code.oidc-eks のインターフェースVPCエンドポイントを作ると、VPC内からOIDCディスカバリ文書とJWKSにプライベートに到達できます。公式が挙げる想定用途は、クラスターのIAM OIDCアイデンティティプロバイダを作成する場面(eksctl、Terraform、AWS CLI)と、VPC内で自作のトークンバリデータを動かす場面です。従来この到達にはインターネットアクセス、またはDNSの回避策が必要でした。

対象リージョンは、What’s Newの発表が「EKSが利用可能な全リージョン」、ユーザーガイドの記述が「ほとんどのAWSリージョン」となっています。設計に組み込む前に、対象リージョンでの提供状況を公式ドキュメントで確認してください。

料金は追加費用なしで、標準のAWS PrivateLink料金が適用されます。課金の軸はアベイラビリティーゾーンごとのエンドポイントの時間課金と、通過したデータの処理料金です。単価はリージョンで異なります。

issuerホスト名とprivate DNS

クラスターのOIDC issuerホスト名はクラスターのIPファミリで決まります。既定であるIPv4クラスターは oidc.eks.region-code.amazonaws.com、IPv6クラスターはデュアルスタックの oidc-eks.region-code.api.aws を使います。中国リージョンのデュアルスタックホスト名は oidc-eks.region-code.api.amazonwebservices.com.cn です。

インターフェースエンドポイントはこの両方のホスト名を登録します。private DNS(既定で有効)が効いていれば、どちらのホスト名もエンドポイントに解決され、トークンのissuer URLを辿ってディスカバリ文書とJWKSを取得するクライアントは、IPファミリがどちらでもプライベートに到達します。

private DNS を機能させるには、VPCの属性 enableDnsHostnamesenableDnsSupport が有効である必要があります。Route 53 Resolverのルールやプライベートホストゾーン、オンプレミスDNSへの転送で既に同じホスト名を扱っている環境では、解決順序が意図どおりになるかを適用前に確認しておきましょう。

VPC内のツールからOIDCディスカバリ文書とJWKSを取得する経路の比較図。従来はNAT経由、新方式はoidc-eksインターフェースVPCエンドポイント経由
図1: 変わるのはVPC内からのOIDC/JWKS取得経路だけ

実務での注意点

エンドポイントポリシーが使えない

このエンドポイントはVPCエンドポイントポリシーに対応せず、既定のフルアクセスポリシーだけを受け付けます。OIDCディスカバリ文書とJWKSは匿名で配信されるためです。これはOpenID Connect仕様の要求であり、検証側が資格情報を提示せずに公開鍵を取得するというIRSAの仕組みそのものです。リクエストにIAMプリンシパルもアクションも乗らないため、ポリシーには評価する対象がありません。誰が到達できるかは、エンドポイントのネットワークインターフェースに付けるセキュリティグループと、サブネットのルーティングで制御します。

プライベート接続は認可の境界ではない

PrivateLink経由にしても、そのトラフィックがAWSネットワーク内に留まるだけで、誰がIAMロールを引き受けられるかは制御されません。配信されるデータは公開鍵そのものです。IRSAの認可を強制するのは引き受け先ロールの信頼ポリシーで、評価されるのはワークロードが sts:AssumeRoleWithWebIdentity を呼んだ時点です。どのワークロードがロールを引き受けられるかは、信頼ポリシーの audsub の条件で絞ります。

STSの経路は別に閉じる

上の②です。多くのAWS SDKのv1系はグローバルSTSエンドポイント(sts.amazonaws.com)を既定で使い、これはSTSのVPCエンドポイントを通りません。出口のないクラスターでIRSAを使うには、STSのVPCエンドポイントを作り、SDKがリージョンSTSエンドポイント(sts.region-code.amazonaws.com)を使うよう設定する必要があります。

既存の手段との使い分け

今回のエンドポイントは、①の経路のために出口を残していた構成を、出口なしへ寄せる材料になります。一方、すでにegressが許可されていて他の用途でも出口が必要なら、エンドポイントを増やさない判断もあります。IRSA自体をPod Identityへ移すなら①のパスは消えます。3つは排他ではなく、移行期に oidc-eks を置きつつ段階移行する構成も取れます。

閉域EKSでIRSA検証パスを内製化する際の判断軸の図。3つの問いと、oidc-eksを置く・NATを維持する・Pod Identityに寄せるの3つの選択肢
図2: 閉域EKSでIRSA検証パスをどう内製化するか

まとめ

  • OIDCディスカバリ文書とJWKSを com.amazonaws.region-code.oidc-eks のインターフェースVPCエンドポイント経由で取得できるようになりました。追加費用はなく標準のPrivateLink料金が適用されます。
  • 閉じるのはVPC内のツールからの取得経路だけです。ワークロードの AssumeRoleWithWebIdentity 呼び出しはSTSのエンドポイント設定の担当で、AWS STSによる検証はAWS内部の経路で行われます。
  • エンドポイントポリシーには対応せず、プライベート接続自体は認可の境界になりません。到達制御はセキュリティグループとサブネット、認可はロールの信頼ポリシーで行います。

出典

For Freelancers

AWSフリーランス案件、お探しですか?

案件探しから単価交渉・契約手続き・参画後のフォローまで、専任コンサルタントが伴走します。 お名前とメールだけで、まずは無料でご相談いただけます。

案件を探す