Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

クラスター API サーバーエンドポイントへのネットワークアクセスを制御する

フォーカスモード
クラスター API サーバーエンドポイントへのネットワークアクセスを制御する - アマゾン EKS

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

本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

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

本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

このトピックはアマゾン EKS クラスターの Kubernetes API サーバーエンドポイントのプライベートアクセスを有効にし、インターネットからのパブリックアクセスを制限または完全に無効にするのに役立ちます。

新しいクラスターを作成すると、アマゾン EKS によってマネージド型の Kubernetes API サーバーのエンドポイントが作成されます。ユーザーはこのエンドポイントを、(kubectl などの Kubernetes 管理ツールを通じて クラスターとの通信に使用します。デフォルトではこの API サーバーエンドポイントはインターネットに公開されます。API サーバーへのアクセスの保護にはAWS アイデンティティとアクセス管理 (IAM と、ネイティブの Kubernetes ロールベースアクセスコントロール (RBAC が組み合わせて使用されます。このエンドポイントはクラスターパブリックエンドポイントと呼ばれます。また、クラスタープライベートエンドポイントもあります。クラスタープライベートエンドポイントの詳細についてはセクション クラスタープライベートエンドポイント を参照してください。

IPv6 クラスターエンドポイント形式

EKS は2024 年 10 月以降に作成された新しい IPv6 クラスターに対して、次の形式で一意のデュアルスタックエンドポイントを作成します。IPv6 クラスターはクラスターの IP ファミリー (ipFamily) 設定で IPv6 を選択するクラスターです。

AWS

EKS クラスターパブリック/プライベートエンドポイント: eks-cluster.region.api.aws

AWS GovCloud (US)

EKS クラスターパブリック/プライベートエンドポイント: eks-cluster.region.api.aws

Amazon Web Services in China

EKS クラスターパブリック/プライベートエンドポイント: eks-cluster.region.api.amazonwebservices.com.rproxy.goskope.com.cn

EKS クラスターパブリック/プライベートエンドポイント: eks-cluster.region.api.aws

注記

デュアルスタッククラスターエンドポイントは2024 年 10 月に導入されました。IPv6 クラスターの詳細については「クラスター、Pods、サービスに対する IPv6 アドレスの説明」を参照してください。2024 年 10 月より前に作成されたクラスターは代わりに次のエンドポイント形式を使用します。

IPv4 クラスターエンドポイント形式

EKS はクラスターの IP ファミリー (ipFamily 設定で IPv4 を選択したクラスターごとに、次の形式で一意のエンドポイントを作成します:

AWS

EKS クラスターパブリック/プライベートエンドポイント eks-cluster.region.eks.amazonaws.com

AWS GovCloud (US)

EKS クラスターパブリック/プライベートエンドポイント eks-cluster.region.eks.amazonaws.com

Amazon Web Services in China

EKS クラスターパブリック/プライベートエンドポイント eks-cluster.region.api.amazonwebservices.com.rproxy.goskope.com.cn

EKS クラスターパブリック/プライベートエンドポイント eks-cluster.region.eks.amazonaws.com

注記

2024 年 10 月以前、IPv6 クラスターはこのエンドポイント形式も使用していました。これらのクラスターではパブリックエンドポイントとプライベートエンドポイントの両方において、このエンドポイントから解決できるのは IPv4 アドレスのみです。

クラスタープライベートエンドポイント

Kubernetes API サーバーへのプライベートアクセスを有効にすると、ノードと API サーバー間のすべての通信が VPC 内で行われるようにできます。インターネットから API サーバーにアクセスできる IP アドレスを制限したり、API サーバーへのインターネットアクセスを完全に無効にしたりできます。

注記

このエンドポイントは Kubernetes API サーバー用であり、AWS API と通信するための従来の AWS プライベートリンク エンドポイントではないため、アマゾン VPC コンソールにはエンドポイントとして表示されません。

クラスターでエンドポイントへのプライベートアクセスを有効にすると、アマゾン EKS によって自動的に ルート 53 のプライベートホストゾーンが作成され、クラスターの VPC に関連付けられます。このプライベートホストゾーンは アマゾン EKS によって管理され、アカウントの ルート 53 リソースには表示されません。プライベートホストゾーンが API サーバーに正しくトラフィックをルーティングするためにはVPC で enableDnsHostnamesenableDnsSupporttrue に設定され、VPC 用に設定された DHCP オプションで、ドメイン名サーバーリストに AmazonProvidedDNS が含まれている必要があります。詳細についてはアマゾン VPC ユーザーガイドの「VPC の DNS サポートを表示および更新する」を参照してください。

API サーバーエンドポイントのアクセス要件は新しいクラスターを作成するときに定義できます。また、クラスターの API サーバーエンドポイントのアクセスは随時更新できます。

クラスターエンドポイントのアクセスの変更

既存クラスターのエンドポイントのアクセスを変更するにはこのセクションの手順に従ってください。次の表はサポートされている API サーバーエンドポイントのアクセスの組み合わせとそれらに関連付けられている動作を示しています。

エンドポイントのパブリックアクセス エンドポイントのプライベートアクセス 行動

有効

無効

  • これは新しい アマゾン EKS クラスターのデフォルトの動作です。

  • クラスターの VPC 内から発信された Kubernetes API リクエスト (ノードからコントロールプレーンへの通信など) は VPC を離れますが、アマゾン のネットワークは離れません。

  • クラスター API サーバーにはインターネットからアクセスできます。必要に応じて、パブリックエンドポイントにアクセスできる CIDR ブロックを制限できます。特定の CIDR ブロックへのアクセスを制限する場合はプライベートエンドポイントも有効にするか、指定する CIDR ブロックに、ノードと Fargate Pods (使用している場合 がパブリックエンドポイントにアクセスするアドレスが含まれていることを確認することをお勧めします。

有効

有効

  • クラスターの VPC (ノードからコントロールプレーンへの通信など) 内の Kubernetes API リクエストはプライベート VPC エンドポイントを使用します。

  • クラスター API サーバーにはインターネットからアクセスできます。必要に応じて、パブリックエンドポイントにアクセスできる CIDR ブロックを制限できます。

  • アマゾン EKS クラスターでハイブリッドノードを使用している場合はパブリックとプライベートの両方のクラスターエンドポイントアクセスを有効にすることはお勧めしません。ハイブリッドノードは VPC の外部で実行されているため、クラスターエンドポイントはパブリック IP アドレスに解決されます。ハイブリッドノードを持つクラスターにはパブリックまたはプライベートのいずれかのクラスターエンドポイントアクセスを使用することをお勧めします。

無効

有効

  • クラスター API サーバーへのすべてのトラフィックはクラスターの VPC または接続されたネットワーク内から送信する必要があります。

  • インターネットから API サーバーへのパブリックアクセスは存在しません。kubectl コマンドはすべて、VPC または接続されたネットワーク内から実行する必要があります。接続オプションについてはプライベート専用 API サーバーへのアクセスを参照してください。

  • クラスターの API サーバーエンドポイントはパブリック DNS サーバーによって VPC のプライベート IP アドレスに解決されます。これまではエンドポイントは VPC 内からしか解決できませんでした。

    エンドポイントが既存のクラスターの VPC 内のプライベート IP アドレスに解決されない場合は次の操作を実行できます:

    • パブリックアクセスを有効にし、再度無効にします。この操作はクラスターに対して 1 回行うだけで済みます。それ以降、エンドポイントはプライベート IP アドレスに解決されます。

    • クラスターを更新します。

AWS Management Console または AWS CLI を使用して、クラスター API サーバーのエンドポイントアクセスを変更できます。

エンドポイントアクセスの設定 - AWS コンソール

  1. アマゾン EKS コンソールを開きます。

  2. クラスター名を選択すると、そのクラスターの情報を表示されます。

  3. [Networking] (ネットワーキング) タブを開き、[Update] (更新)を 選択してください。

  4. [プライベートアクセス] の場合はクラスターの Kubernetes API サーバーエンドポイントに対するプライベートアクセスを有効にするか無効にするかを選択してください。プライベートアクセスを有効にした場合、クラスターの VPC 内から送信される Kubernetes API リクエストはプライベート VPC エンドポイントを使用します。パブリックアクセスを無効にするにはプライベートアクセスを有効にする必要があります。

  5. [パブリックアクセス] の場合はクラスターの Kubernetes API サーバーエンドポイントに対するパブリックアクセスを有効にするか無効にするかを選択してください。パブリックアクセスを無効にすると、クラスターの Kubernetes API サーバーはクラスター VPC 内からのみリクエストを受信できます。

  6. (オプション) [パブリックアクセス] で有効化を行うと、インターネットからパブリックエンドポイントと通信するためのアドレスを指定できるようになります。[詳細設定] を選択してください。「203.0.113.5/32」などの CIDR ブロックを入力します。ブロックに予約済みアドレスを含めることはできません。[ソースの追加] を選択すると、追加のブロックを入力できます。指定できる CIDR ブロックには最大数があります。詳細については「Amazon EKS と Fargate Service Quotas を表示して管理する」を参照してください。ブロックをまったく指定しない場合、パブリック API サーバーエンドポイントはすべて (0.0.0.0/0) の IP アドレスからリクエストを受信します。CIDR ブロックを使用してパブリックエンドポイントへのアクセスを制限する場合は同時にプライベートエンドポイントアクセスも有効化することをお勧めします。これにより、ノードと (存在している場合は Fargate Pods がクラスターと通信できるようになります。プライベートエンドポイントが有効になっていない場合はパブリックアクセスエンドポイントの CIDR ソースに、VPC からの出力ソースを含める必要があります。例えば、プライベートサブネットに NAT ゲートウェイを介してインターネットと通信するノードがある場合、パブリックエンドポイントで許可された CIDR ブロックの一部として、NAT ゲートウェイのアウトバウンド IP アドレスを追加する必要があります。

  7. [更新] を選択して終了します。

エンドポイントアクセスの設定 - AWS CLI

AWS CLI バージョン 1.27.160 以降を使用して、次のステップを実行してください。現在のバージョンはaws --version で確認できます。AWS CLI をインストールまたはアップグレードするには「AWS CLI のインストール」を参照してください。

  1. 次の AWS CLI コマンドを使用してクラスター API サーバーエンドポイントのアクセスを更新します。クラスター名と必要なエンドポイントアクセス値を置き換えます。endpointPublicAccess=true を設定した場合は(オプションで) 1 つの CIDR ブロック、または publicAccessCidrs の CIDR ブロックのカンマ区切りリストを入力できます。ブロックに予約済みアドレスを含めることはできません。CIDR ブロックを指定すると、パブリック API サーバーエンドポイントはリストされたブロックからのリクエストのみを受信します。指定できる CIDR ブロックには最大数があります。詳細については「Amazon EKS と Fargate Service Quotas を表示して管理する」を参照してください。CIDR ブロックを使用してパブリックエンドポイントへのアクセスを制限する場合は同時にプライベートエンドポイントアクセスも有効化することをお勧めします。これにより、ノードと (存在している場合は Fargate Pods がクラスターと通信できるようになります。プライベートエンドポイントが有効になっていない場合はパブリックアクセスエンドポイントの CIDR ソースに、VPC からの出力ソースを含める必要があります。例えば、プライベートサブネットに NAT ゲートウェイを介してインターネットと通信するノードがある場合、パブリックエンドポイントで許可された CIDR ブロックの一部として、NAT ゲートウェイのアウトバウンド IP アドレスを追加する必要があります。CIDR ブロックを指定しない場合、パブリック API サーバーエンドポイントはすべての (0.0.0.0/0) IP アドレスからリクエストを受信します。

    注記

    次のコマンドはAPI サーバーエンドポイントの 1 つの IP アドレスからのプライベートアクセスとパブリックアクセスを有効にします。203.0.113.5/32 は単一の CIDR ブロック、またはネットワークアクセスを制限する CIDR ブロックのカンマ区切りリストに置き換えます。

    aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --resources-vpc-config endpointPublicAccess=true,publicAccessCidrs="203.0.113.5/32",endpointPrivateAccess=true

    出力例は次のとおりです。

    { "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "InProgress", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }
  2. 次のコマンドでエンドポイントアクセス更新のステータスをモニタリングします。この際、以前のコマンドで返ったクラスター名と更新 ID を使用します。ステータスが Successful と表示されたら、更新は完了です。

    aws eks describe-update \ --region region-code \ --name my-cluster \ --update-id e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000

    出力例は次のとおりです。

    { "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "Successful", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }

プライベート専用 API サーバーへのアクセス

クラスターの Kubernetes API サーバーエンドポイントに対するパブリックアクセスを無効にした場合はVPC または 接続されたネットワーク内からのみ API サーバーにアクセスできます。Kubernetes API サーバーエンドポイントにアクセスする方法はいくつかあります:

接続されたネットワーク

AWS トランジットゲートウェイまたはその他の接続オプションを使用してネットワークを VPC に接続し、接続されたネットワークのコンピュータを使用します。接続されたネットワークからのポート 443 でのイングレストラフィックを許可するためのルールが、アマゾン EKS コントロールプレーンセキュリティグループに含まれていることを確認する必要があります。

アマゾン EC2 踏み台ホスト

アマゾン EC2 インスタンスをクラスターの VPC のパブリックサブネットで起動し、SSH 経由でそのインスタンスにログインして kubectl コマンドが実行できます。詳細についてはAWS での Linux 踏み台ホストを参照してください。踏み台ホストからのポート 443 でのイングレストラフィックを許可するためのルールが、アマゾン EKS コントロールプレーンセキュリティグループに含まれていることを確認する必要があります。詳細については「クラスターの Amazon EKS セキュリティグループ要件を表示する」を参照してください。

踏み台ホスト用に kubectl を設定するときにはクラスターの RBAC 設定に既にマッピングされている AWS 認証情報を使用するか、踏み台が使用する IAM プリンシパル を RBAC 設定に追加してから、エンドポイントのパブリックアクセスを削除します。詳細についてはIAM ユーザーおよびロールに Kubernetes APIs へのアクセスを付与するおよび許可されていないか、アクセスが拒否されました (kubectl)を参照してください。

AWS クラウド9 IDE

AWS クラウド9 はブラウザだけでコードを記述、実行、およびデバッグできるクラウドベースの統合開発環境 (IDE) です。クラスターの VPC に AWS クラウド9 IDE を作成し、その IDE を使用してクラスターと通信できます。詳細については「AWS クラウド9 で環境を作成する」を参照してください。アマゾン EKS コントロールプレーンセキュリティグループに、IDE セキュリティグループからのポート 443 でのイングレストラフィックを許可するためのルールが、含まれていることを確認する必要があります。詳細については「クラスターの Amazon EKS セキュリティグループ要件を表示する」を参照してください。

AWS クラウド9 IDE 用に kubectl を設定するときにはクラスターの RBAC 設定に既にマッピングされている AWS 認証情報を使用するか、IDE が使用する IAM プリンシパルを RBAC 設定に追加してから、エンドポイントのパブリックアクセスを削除してください。詳細についてはIAM ユーザーおよびロールに Kubernetes APIs へのアクセスを付与するおよび許可されていないか、アクセスが拒否されました (kubectl)を参照してください。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.