説明
AKS のネットワークポリシーは、Pod 間通信を必要な範囲に制限するために使用します。ポリシーを適用するネットワーク構成や、ワークロードの NetworkPolicy がなければ、意図した通信制限が適用されない可能性があります。
Ansible の network_profile.network_policy には、インストール済みのコレクションと AKS のネットワーク構成でサポートされる値を指定する必要があります。ポリシーエンジンを選ぶだけですべての Pod 通信が自動的に制限されるわけではありません。
想定される影響
- Pod 間通信が必要以上に開かれていると、侵害後の内部移動が容易になる可能性があります。
- サポート対象外の設定は、クラスターの作成や変更を失敗させる可能性があります。
対処方法
- インストール済みの
azure.azcollectionとネットワークプラグインがサポートするポリシー構成を選んでください。 - 実際の
NetworkPolicyで必要な通信を許可し、許可と拒否の結果をテストしてください。 - 既存クラスターで変更が可能か、サービスが中断する可能性があるかを確認してから適用してください。
例
以下はネットワークポリシーのフィールドに注目した抜粋です。aks_kubernetes_version にはサポート対象のバージョンを指定し、認証、ノード、ネットワークの設定を別途用意してください。短いモジュール名を使用するには、対象のコレクションを解決できる環境が必要です。
変更前
yaml
- name: AKS 클러스터 생성
azure_rm_aks:
name: myAKS
location: eastus
resource_group: myResourceGroup
dns_prefix: akstest
kubernetes_version: "{{ aks_kubernetes_version }}"
network_profile:
network_policy: istio
agent_pool_profiles:
- name: default
count: 5
vm_size: Standard_D2_v2
istio はこのモジュールの network_policy の選択肢ではなく、有効な設定として使用できません。
変更後
yaml
- name: AKS 클러스터 생성
azure_rm_aks:
name: myAKS
location: eastus
resource_group: myResourceGroup
dns_prefix: akstest
kubernetes_version: "{{ aks_kubernetes_version }}"
network_profile:
network_policy: calico
agent_pool_profiles:
- name: default
count: 5
vm_size: Standard_D2_v2
calico はモジュールがサポートする選択肢です。ネットワークプラグインとの互換性を確認し、通信制限を適用する実際の NetworkPolicy をデプロイしてください。