このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
Kubernetes ネットワークポリシーによりpodトラフィックを制限する
デフォルトでは、Kubernetes の IP アドレス、ポート、クラスター内の Pods 間の接続、または Pods と他のネットワークのリソースの接続に制限はありません。Kubernetes ネットワークポリシーを使用して、お客様の Pods 間で送受信されるネットワークトラフィックを制限できます。詳細については、「Kubernetes のドキュメント」の「ネットワークポリシー
クラスターの Amazon VPC CNI plugin for Kubernetes のバージョンが 1.13
以前の場合、Kubernetes ネットワークポリシーをクラスターに適用するには、サードパーティーソリューションを実装する必要があります。バージョン 1.14
以降のプラグインでは、ネットワークポリシーを実装できるため、サードパーティソリューションを使用する必要はありません。このトピックでは、サードパーティのアドオンを使用せずにクラスターの Kubernetes ネットワークポリシーを使用するようにクラスターを構成する方法を説明します。
Amazon VPC CNI plugin for Kubernetes のネットワークポリシーは、次の設定でサポートされています。
-
バージョン
1.25
以降の Amazon EKS クラスター。 -
クラスターのバージョン 1.14 以降の Amazon VPC CNI plugin for Kubernetes。
-
IPv4
またはIPv6
アドレス用に設定されたクラスター。 -
Pods 用のセキュリティグループでネットワークポリシーを使用できます。ネットワークポリシーを使用すると、クラスター内の通信をすべて制御できます。Pods 用のセキュリティグループを使用すると、Pod 内のアプリケーションから AWS のサービスへのアクセスを制御できます。
-
カスタムネットワークおよびプレフィクス委任でネットワークポリシーを使用できます。
考慮事項
-
Amazon VPC CNI plugin for Kubernetes を含むクラスターに Amazon VPC CNI plugin for Kubernetes ネットワークポリシーを適用する場合、Amazon EC2 Linux ノードにのみポリシーを適用できます。Fargate または Windows ノードにはポリシーを適用できません。
-
クラスターが現在サードパーティーソリューションを使用して Kubernetes ネットワークポリシーを管理している場合、同じポリシーを Amazon VPC CNI plugin for Kubernetes で使用できます。ただし、同じポリシーを管理しないように、既存のソリューションを削除する必要があります。
-
同じPodに複数のネットワークポリシーを適用できます。同じPodを選択するポリシーが 2 つ以上設定されている場合、すべてのポリシーがPodに適用されます。
-
ネットワークポリシーの各
ingress:
またはegress:
セレクターの各プロトコルにおけるポートの一意の組み合わせの最大数は 24 です。 -
どの Kubernetes サービスでも、サービスポートはコンテナポートと同じでなければなりません。名前付きポートを使用している場合は、サービス仕様でも同じ名前を使用してください。
-
ネットワークポリシー機能では、
policyendpoints.networking.k8s.aws
と呼ばれるPolicyEndpoint
カスタムリソース定義 (CRD) が作成され、必要になります。カスタムリソースのPolicyEndpoint
オブジェクトは Amazon EKS によって管理されます。これらのリソースを変更または削除しないでください。 -
インスタンスロールの IAM 認証情報を使用するポッドを実行するか、EC2 IMDS に接続するポッドを実行する場合は、EC2 IMDS へのアクセスをブロックするネットワークポリシーがないか慎重に確認してください。EC2 IMDS へのアクセスを許可するネットワークポリシーを追加する必要がある場合があります。詳細については、「Amazon EC2 ユーザーガイド」の「インスタンスメタデータとユーザーデータ」を参照してください。
サービスアカウントの IAM ロールを使用するポッドが、EC2 IMDS にアクセスすることはありません。
-
Amazon VPC CNI plugin for Kubernetes は、各ポッドの追加のネットワークインターフェイスにはネットワークポリシーを適用せず、各ポッドのプライマリインターフェイス (
eth0
) のみにネットワークポリシーを適用します。これは以下のアーキテクチャに影響します。-
ENABLE_V4_EGRESS
変数がtrue
に設定されたIPv6
ポッド。この変数により、IPv4
エグレス機能が IPv6 ポッドをクラスター外のエンドポイントなどのIPv4
エンドポイントに接続できるようになります。IPv4
エグレス機能は、ローカルループバック IPv4 アドレスを持つ追加のネットワークインターフェースを作成することで機能します。 -
Multus などのチェーンネットワークプラグインを使用する場合。これらのプラグインは各ポッドにネットワークインターフェースを追加するため、ネットワークポリシーはチェーンネットワークプラグインには適用されません。
-