Amazon EKS セキュリティグループの考慮事項 - Amazon EKS

Amazon EKS セキュリティグループの考慮事項

以下のセクションでは、Kubernetes のバージョンと Amazon EKS プラットフォームのバージョンに応じて、クラスター、コントロールプレーン、およびクラスターのワーカーノードのセキュリティグループに対して必要最小限のセキュリティグループ設定および推奨されるセキュリティグループ設定について説明します。

クラスターセキュリティグループ (Kubernetes 1.14 および eks.3 プラットフォームバージョンを実行している Amazon EKS クラスターから利用可能)

Kubernetes バージョン 1.14およびプラットフォームバージョン eks.3 以降の Amazon EKS クラスターは、クラスター作成の一環としてクラスターセキュリティグループを作成します(または、クラスターがこの Kubernetes バージョンおよびプラットフォームバージョンにアップグレードされた場合)。このセキュリティグループは、コントロールプレーンとマネージド型ノードグループからのすべてのトラフィックが相互に自由に流れるように設計されています。クラスターセキュリティグループをコントロールプレーンのクロスアカウント Elastic Network Interface およびマネージド型ノードグループインスタンスに割り当てることにより、この通信を許可するために複雑なセキュリティグループルールを設定する必要がありません。このセキュリティグループが割り当てられているインスタンスまたはネットワークインターフェイスは、このセキュリティグループを使用して他のリソースと自由に通信できます。

クラスターのクラスターセキュリティグループは、クラスターの [ネットワーキング] セクションの下にある AWS マネジメントコンソール で確認するか、次の AWS CLI コマンドで確認できます。

aws eks describe-cluster --name cluster_name --query cluster.resourcesVpcConfig.clusterSecurityGroupId

クラスターで Kubernetes バージョン 1.14 および プラットフォームバージョン eks.3 以降が実行されている場合は、クラスターセキュリティグループを既存および将来的なすべてのワーカーノードグループに追加することをお勧めします。詳細については、Amazon VPC ユーザーガイド の「VPC のセキュリティグループ」を参照してください。Amazon EKS マネージド型ノードグループは、クラスターセキュリティグループを使用するように自動的に設定されます。

プロトコル ポート範囲 送信元 送信先
推奨インバウンドトラフィック

すべて

すべて

Self
推奨アウトバウンドトラフィック

すべて

すべて

0.0.0.0/0

コントロールプレーンおよびワーカーノードのセキュリティグループ (Kubernetes バージョン 1.14 および プラットフォームバージョン eks.3 以前の Amazon EKS クラスター対応)

Kubernetes バージョン 1.14 以前の Amazon EKS クラスターおよび プラットフォームバージョン eks.3 では、コントロールプレーンとワーカーノード間の通信は、手動でコントロールプレーンのセキュリティグループを作成し、クラスターの作成時にそのセキュリティグループを指定することによって設定されます。クラスターの作成時に、このセキュリティグループは、クラスターのクロスアカウント Elastic Network Interface にアタッチされます。

クラスターのコントロールプレーンセキュリティグループは、[ネットワーキング] セクション([追加セキュリティグループ] と表示されている)の下にある AWS マネジメントコンソール か、次の AWS CLI コマンドで確認できます。

aws eks describe-cluster --name cluster_name --query cluster.resourcesVpcConfig.securityGroupIds

Amazon EKS の開始方法 ウォークスルーの AWS CloudFormation テンプレートを使用してワーカーノードを起動すると、AWS CloudFormation によりワーカーノードとの通信を許可するようにコントロールプレーンのセキュリティグループが変更されます。Amazon EKS では、各コントロールプレーンに専用のセキュリティグループ(クラスターごとに 1 つ)を使用することを強くお勧めします。コントロールプレーンセキュリティグループを他の Amazon EKS クラスターまたはリソースと共有している場合、それらのリソースへの接続をブロックまたは中断することがあります。

ワーカーノードのセキュリティグループとワークノードへのコントロールプレーン通信のセキュリティグループは、ワーカーノードの特権付きのポートとの通信を行わないように設定されています。アプリケーションでコントロールプレーンまたはワーカーノードからの追加のインバウンドまたはアウトバウンドアクセスが必要な場合は、これらのルールをクラスターに関連付けられているセキュリティグループに追加する必要があります。詳細については、Amazon VPC ユーザーガイドの「VPC のセキュリティグループ」を参照してください。

注記

特権付きのポートでプロキシ機能を許可したり、CNCF 適合テストを自分で実行するには、コントロールプレーンとワーカーノードのセキュリティグループを編集する必要があります。ワーカーノード側のセキュリティグループは、コントロールプレーンからのポート 0-65535 のインバウンドアクセスを許可する必要があり、コントロールプレーン側は、ポート 0-65535 のワーカーノードへのアウトバウンドアクセスを許可する必要があります。

コントロールプレーンセキュリティグループ
プロトコル ポート範囲 送信元 送信先
最小インバウンドトラフィック

TCP

443

すべてのワーカーノードセキュリティグループ

クラスターエンドポイントのプライベートアクセスが有効になっている場合: API サーバークライアントトラフィックを生成する任意のセキュリティグループ (クラスターの VPC 内の踏み台ホスト上での kubectl コマンドなど)

推奨インバウンドトラフィック

TCP

443

すべてのワーカーノードセキュリティグループ

クラスターエンドポイントのプライベートアクセスが有効になっている場合: API サーバークライアントトラフィックを生成する任意のセキュリティグループ (クラスターの VPC 内の踏み台ホスト上での kubectl コマンドなど)

最小アウトバウンドトラフィック

TCP

10250

すべてのワーカーノードセキュリティグループ

推奨アウトバウンドトラフィック

TCP

1025-65535

すべてのワーカーノードセキュリティグループ

ワーカーノードセキュリティグループ
プロトコル ポート範囲 送信元 送信先
最小インバウンドトラフィック (他のワーカーノード)

ワーカーノードでワーカー間通信に使用されるプロトコル

ワーカーノードでワーカー間通信に使用されるポート

すべてのワーカーノードセキュリティグループ

最小インバウンドトラフィック (コントロールプレーン)

TCP

10250

コントロールプレーンセキュリティグループ

推奨インバウンドトラフィック

すべて

TCP

すべて

443, 1025-65535

すべてのワーカーノードセキュリティグループ

コントロールプレーンセキュリティグループ

最小アウトバウンドトラフィック *

TCP

443

コントロールプレーンセキュリティグループ

推奨アウトバウンドトラフィック

すべて

すべて

0.0.0.0/0

* ワーカーノードには、クラスターの詳細分析 と起動時のノード登録に対する Amazon EKS API に対するアウトバウンドのインターネットアクセスも必要です。コンテナイメージをプルするには、 Amazon S3 および Amazon ECR API にアクセスする必要があります (およびその他 DockerHub などのコンテナレジストリなど) 。詳細については、AWS General Reference の「AWS IP アドレスの範囲」を参照してください。

ワーカーノードに複数のセキュリティグループを関連付ける場合は、セキュリティグループの 1 つに次のタグを適用する必要があります。ワーカーノードにセキュリティグループを 1 つのみ関連付ける場合、タグはオプションです。タグ付けの詳細については、「コンソールでのタグの処理」を参照してください。

キー

kubernetes.io/cluster/<cluster-name>

owned