View a markdown version of this page

AWS プライベートリンクを使用して Amazon EKS にアクセスする - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

AWS プライベートリンクを使用して Amazon EKS にアクセスする

AWS プライベートリンク を使用して、VPC と Amazon Elastic Kubernetes Service 間にプライベート接続を作成できます。インターネットゲートウェイ、NAT デバイス、VPN 接続、AWS Direct Connect 接続のいずれかを使用せずに、VPC 内にあるかのように Amazon EKS にアクセスできます。VPC のインスタンスはパブリック IP アドレスがなくても Amazon EKS にアクセスできます。

AWS プライベートリンク が電源を供給するインターフェイスエンドポイントを作成することにより、このプライベート接続を確立します。インターフェイスエンドポイントに対して有効にする各サブネットにエンドポイントネットワークインターフェイスを作成します。これらはAmazon EKS 宛てのトラフィックのエントリポイントとして機能するリクエスタ管理型ネットワークインターフェイスです。

詳細については「AWS プライベートリンク ガイド」の「AWS プライベートリンク を介した AWS サービスへのアクセス」を参照してください。

[開始する前に]

始める前に、次のタスクを実行していることを確認してください。

考慮事項

  • サポートと制限: Amazon EKS のインターフェイスエンドポイントは、VPC からのすべての Amazon EKS API アクションへの安全なアクセスを可能にしますが、特定の制限があります。Kubernetes API へのアクセスはサポートされません。Kubernetes API は個別のプライベートエンドポイントがあるため、インターフェイスエンドポイントを介してのみアクセスできるように Amazon EKS を設定することはできません。サービスアカウント (IRSA) の IAM ロールで使用されるクラスター OIDC 検出と JWKS エンドポイントは、独自のサービス名とアクセスコントロール動作を持つ別のインターフェイスエンドポイントからも提供されます。AWS PrivateLink を使用してクラスター OIDC エンドポイントにアクセスする を参照してください。

  • 料金: Amazon EKS のインターフェイスエンドポイントを使用すると、標準の AWS PrivateLink 料金 (各アベイラビリティーゾーンでプロビジョニングされた各エンドポイントの時間単位の料金と、エンドポイントを経由するトラフィックのデータ処理料金) が発生します。詳細については、「AWS PrivateLink の料金」を参照してください。

  • セキュリティとアクセスコントロール: セキュリティを強化し、アクセスを制御するために、以下の追加設定を推奨します。VPC エンドポイントポリシーを使用し、インターフェイスエンドポイントを介して Amazon EKS へのアクセスを制御し、エンドポイントネットワークインターフェイスにセキュリティグループを関連付けてトラフィックを管理し、VPC フローログを使用してインターフェイスエンドポイントを行き来する IP トラフィックをキャプチャおよびモニタリングし、ログを Amazon CloudWatch または Amazon S3 に発行できるようにします。詳細については、「Control access to VPC endpoints using endpoint policies」および「Logging IP traffic using VPC Flow Logs」を参照してください。

  • 接続オプション: インターフェイスエンドポイントは、オンプレミスアクセス (AWS Direct Connect または AWS Site-to-Site VPN を使用してインターフェイスエンドポイントを持つ VPC にオンプレミスデータセンターを接続する) の使用または VPC 間接続 (AWS Transit Gateway または VPC ピアリングを使用して、インターフェイスエンドポイントを持つ VPC に他の VPC を接続し、トラフィックを AWS ネットワーク内に留める) を介して柔軟な接続オプションを実現します。

  • IP バージョンのサポート: 2024 年 8 月より前に作成されたエンドポイントは、eks.region.amazonaws.com を使用した IPv4 のみをサポートします。2024 年 8 月以降に作成された新規エンドポイントは、デュアルスタック IPv4 および IPv6 (eks.region.amazonaws.com や eks.region.api.aws など) をサポートしています。

  • リージョン別可用性: EKS API の AWS PrivateLink は、アジアパシフィック (マレーシア) (ap-southeast-5)、アジアパシフィック (タイ) (ap-southeast-7)、メキシコ (中部) (mx-central-1)、アジアパシフィック (台北) (ap-east-2) のリージョンでは使用できません。 AWSEKS-auth (EKS Pod Identity) の PrivateLink サポートは、アジアパシフィック (マレーシア) (ap-southeast-5) リージョンで利用できます。AWSクラスター OIDC エンドポイント (com.amazonaws.region-code.oidc-eks) の PrivateLink は、ほとんどの AWS リージョンで利用できます。

Amazon EKS 用のインターフェイスエンドポイントを作成します

Amazon VPC コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して、Amazon EKS のインターフェイスエンドポイントを作成できます。詳細については『AWS プライベートリンク ガイド』の「VPC エンドポイントを作成」を参照してください。

次のサービス名を使用して Amazon EKS のインターフェイスエンドポイントを作成します:

EKS API

  • com.amazonaws.region-code.eks

  • com.amazonaws.region-code.eks-fips (FIPS 準拠のエンドポイントの場合)

EKS Auth API (EKS Pod Identity)

  • com.amazonaws.region-code.eks-auth

EKS クラスター OIDC エンドポイント (IRSA 検出/JWKS)

  • com.amazonaws.region-code.oidc-eks

このエンドポイントには、EKS API エンドポイントとは異なるアクセスコントロール動作があります。詳細については、「AWS PrivateLink を使用してクラスター OIDC エンドポイントにアクセスする」を参照してください。

Amazon EKS インターフェイスエンドポイントのプライベート DNS 機能

Amazon EKS およびその他の AWS サービスのインターフェイスエンドポイントに対してデフォルトで有効になっているプライベート DNS 機能は、デフォルトのリージョン DNS 名を使用して安全でプライベートな API リクエストを容易にします。この機能により、API コールがプライベート AWS ネットワーク経由でインターフェイスエンドポイントを通じてルーティングされ、セキュリティおよびパフォーマンスが向上します。

Amazon EKS または他の AWS サービスのインターフェイスエンドポイントを作成すると、プライベート DNS 機能は自動的にアクティブ化されます。有効にするには、特定の属性を設定して VPC を正しく設定する必要があります。

  • enableDnsHostnames: VPC 内のインスタンスに DNS ホスト名を付けることができます。

  • enableDnsSupport: VPC 全体で DNS 解決を有効にします。

これらの設定を確認または変更する手順については、「VPC の DNS 属性の表示と更新」を参照してください。

DNS 名と IP アドレスタイプ

プライベート DNS 機能を有効にすると、特定の DNS 名を使用して Amazon EKS に接続でき、これらのオプションは時間の経過とともに進化します。

  • eks.region.amazonaws.com: 2024 年 8 月より前に IPv4 アドレスにのみ解決される従来の DNS 名。デュアルスタックに更新された既存のエンドポイントの場合、この名前は IPv4 アドレスおよび IPv6 アドレスの両方に解決されます。

  • eks.region.api.aws: 2024 年 8 月以降に作成された新規エンドポイントに利用できるこのデュアルスタック DNS 名は、IPv4 アドレスおよび IPv6 アドレスの両方に解決されます。

2024 年 8 月以降、新規のインターフェイスエンドポイントには 2 つの DNS 名があり、デュアルスタック IP アドレスタイプを選択できます。既存のエンドポイントの場合、デュアルスタックに更新すると、IPv4 および IPv6 の両方をサポートするように eks.region.amazonaws.com が変更されます。

プライベート DNS 機能の使用

設定が完了したら、プライベート DNS 機能をワークフローに統合して次の機能が実現されます。

  • API リクエスト: エンドポイントの設定に基づいて eks.region.amazonaws.com または eks.region.api.aws のいずれかのデフォルトリージョン DNS 名を使用し、Amazon EKS に API リクエストを行います。

  • アプリケーションの互換性: EKS API を呼び出す既存のアプリケーションは、この機能を活用するために変更する必要はありません。

  • AWS CLI とデュアルスタックの併用: デュアルスタックエンドポイントを AWS CLI と使用するには、「 AWS SDK とツールリファレンスガイド」の「デュアルスタックと FIPS エンドポイント」の設定を参照してください。

  • 自動ルーティング: Amazon EKS のデフォルトサービスエンドポイントへの呼び出しはインターフェイスエンドポイントを介して自動的に転送されるため、プライベートで安全な接続が保証されます。

AWS PrivateLink を使用してクラスター OIDC エンドポイントにアクセスする

各 Amazon EKS クラスターは、OIDC 発行者 URL でパブリック OpenID Connect (OIDC) 検出ドキュメントと JSON ウェブキーセット (JWKS) を発行します。サービスアカウント (IRSA) の IAM ロールは、このエンドポイントを使用してクラスターのパブリック署名キーを発行します。IRSA をセットアップしたり、トークンを検証したりするツールは、このエンドポイントからキーを直接取得します。

AWS PrivateLink を使用すると、インターネットへの出力なしで、VPC からこの OIDC エンドポイントにプライベートにアクセスできます。これは、クラスターの IAM OIDC ID プロバイダー (eksctl、Terraform、または AWS CLI) の作成や VPC 内での独自のトークン検証の実行など、VPC 内ツールが OIDC エンドポイントに到達する必要があるプライベート VPC または出力なし VPC に役立ちます。以前は、このエンドポイントに到達するにはインターネットアクセスまたは DNS 回避策が必要でした (GitHub の containers-roadmap#2038 を参照)。

以下のサービス名を使用して、クラスター OIDC エンドポイント用のインターフェイスエンドポイントを作成します:

  • com.amazonaws.region-code.oidc-eks

考慮事項

  • このエンドポイントは、VPC エンドポイントポリシーをサポートしていません。OIDC 検出ドキュメントと JWKS ドキュメントは匿名で提供されます。これは OpenID Connect 仕様で必須であり、IRSA の仕組みです。バリデータは認証情報を提示せずにパブリックキーを取得します。リクエストには IAM プリンシパルまたはアクションがないため、VPC エンドポイントポリシーには評価対象がありません。このエンドポイントは、デフォルトのフルアクセスポリシーのみを受け入れます。エンドポイントネットワークインターフェイスのセキュリティグループとサブネットルーティングを使用して、エンドポイントに到達できるユーザーを制御します。

  • プライベート接続は認可境界ではありません。AWS PrivateLink 経由で OIDC エンドポイントに到達すると、このトラフィックは AWS ネットワーク上に保持されます。それ自体は、IAM ロールを引き受けることができるユーザーを制御するものではありません。提供されるデータはパブリックキーマテリアルです。引き受けたロールの信頼ポリシーは、OIDC エンドポイントに到達するために使用されるネットワークパスではなく、IRSA 認可を適用します。この適用は、ワークロードが sts:AssumeRoleWithWebIdentity を呼び出すときに発生します。ロールの信頼ポリシーの aud および sub 条件でロールを引き受けることができるワークロードを制御します。「Kubernetes サービスアカウントに IAM ロールを割り当てる」を参照してください。

  • AWS STS は独自のパスでトークンを検証します。このエンドポイントは、AWS STS が IRSA トークンを検証する方法には影響しません。ワークロードが AssumeRoleWithWebIdentity を呼び出すと、STS は VPC やこのエンドポイントを通じてではなく、AWS 内からクラスターの JWKS を取得します。このエンドポイントを作成するか、VPC で OIDC DNS を上書きしても、トークンの検証は変更されません。また、ワークロードの AssumeRoleWithWebIdentity 呼び出しをプライベートのままにするには、AWS STS インターフェイスエンドポイントを作成し、リージョンの STS エンドポイントを個別に設定します。「サービスアカウントの AWS セキュリティトークンサービスエンドポイントを設定する」を参照してください。

  • 料金: 標準の AWS PrivateLink 料金が適用されます。「AWS PrivateLink の料金」を参照してください。

プライベート DNS 名とデュアルスタック名

各クラスターには、クラスターの IP ファミリーによって決定される OIDC 発行者のホスト名が 1 つあります。デフォルトである IPv4 クラスターは、oidc.eks.region-code.amazonaws.com を使用します。IPv6 クラスターは、IPv4 アドレスと IPv6 アドレスの両方に解決されるデュアルスタックホスト名 oidc-eks.region-code.api.aws を使用します。AWS 中国リージョンでは、デュアルスタックホスト名は oidc-eks---region-code---api.amazonwebservices.com.rproxy.govskope.ca.cn です。

インターフェイスエンドポイントは両方のホスト名を登録します。プライベート DNS が有効になっている場合 (デフォルト)、各ホスト名はインターフェイスエンドポイントに解決されます。したがって、クラスターの発行者 URL は、クラスターが oidc.eks.region-code.amazonaws.com ホスト名を使用するか、デュアルスタックホスト名を使用するかにかかわらず、エンドポイントに解決されます。トークンの発行者 URL に従って検出ドキュメントと JWKS を取得するクライアントは、いずれの場合もエンドポイントにプライベートに到達します。