クラスター API サーバーエンドポイントへのネットワークアクセスを設定する - Amazon EKS

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

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

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

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

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

  1. Amazon EKS コンソールを開きます。

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

  3. [ネットワーキング] タブを選択し、[エンドポイントアクセスを管理] を選択します。

  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 サーバーエンドポイントは、IPv4 (0.0.0.0/0) と、さらにデュアルスタック IPv6 クラスターの IPv6 (::/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 アドレスからのリクエストと、さらにデュアルスタック IPv6 クラスターの IPv6 (::/0) も受信します。

    注記

    次のコマンドは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": [] } }

📝 GitHub でこのページを編集する