プロファイル適用性: レベル1
Kubernetesでモダンなマイクロサービスベースのアプリケーションを実行する際、どのコンポーネントが互いに通信できるかを制御したいことがよくあります。Azure
Kubernetes Service (AKS) クラスター内のポッド間のトラフィックの流れには、最小特権の原則を適用するべきです。Kubernetesのネットワークポリシー機能を使用すると、クラスター内のポッド間のインバウンドおよびアウトバウンドトラフィックに関するルールを定義できます。
デフォルトでは、AKS Cluster内のすべてのポッドは制限なくトラフィックを送受信できます。セキュリティを向上させるために、トラフィックの流れを制御するルールを定義することができます。例えば、バックエンドアプリケーションは必要なフロントエンドサービスにのみ公開されることがよくあります。また、データベースコンポーネントは、それに接続するアプリケーション層からのみアクセス可能です。
ネットワークポリシーは、Pod間の通信に対するアクセスポリシーを定義するKubernetesの仕様です。ネットワークポリシーを使用すると、トラフィックの送受信に関する順序付けられたルールセットを定義し、1つ以上のラベルセレクタに一致するPodのコレクションに適用します。これらのネットワークポリシールールはYAMLマニフェストとして定義されます。ネットワークポリシーは、デプロイメントやサービスを作成するためのより広範なマニフェストの一部として含めることができます。
注意初期設定では、ネットワークポリシーは無効になっています。
|
影響
ネットワークポリシーはネットワークポリシーアドオンを必要とします。このアドオンはネットワークポリシーを使用してクラスターを作成する際に自動的に含まれますが、既存のクラスターの場合はネットワークポリシーを有効にする前に追加する必要があります。
ネットワークポリシーの有効化/無効化は、クラスタのアップグレードを行うのと同様に、すべてのクラスタノードのローリングアップデートを引き起こします。この操作は長時間実行され、完了するまでクラスタ上の他の操作
(削除を含む) をブロックします。
ネットワークポリシーを使用する場合、クラスターには少なくとも2つの
n1-standard-1以上のタイプのノードが必要です。ネットワークポリシー適用を実行するための推奨最小サイズのクラスターは3つのn1-standard-1インスタンスです。ネットワークポリシー適用を有効にすると、ノードの追加リソースが消費されます。具体的には、
kube-systemプロセスのメモリ使用量が約128MB増加し、約300ミリコアのCPUが必要になります。監査
次の項目がnullでなく、適切なグループIDが設定されていることを確認してください:
export CLUSTER_NAME=<your cluster name>
az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --query
"networkProfile.networkPolicy"
修復
Calicoや他のネットワークポリシーエンジンを利用して、トラフィックをセグメント化および分離します。
