설명
AKS의 네트워크 정책은 파드 간 통신을 필요한 범위로 제한하는 데 사용됩니다. 정책을 적용하는 네트워크 구성이 없거나 워크로드의 NetworkPolicy가 정의되지 않으면 의도한 통신 제한이 적용되지 않을 수 있습니다.
Ansible의 network_profile.network_policy는 설치된 컬렉션과 AKS 네트워크 구성에서 지원하는 값을 사용해야 합니다. 정책 엔진을 선택하는 것만으로 모든 파드 통신이 자동으로 제한되지는 않습니다.
잠재적 영향
- 파드 간 통신이 필요 이상으로 열려 침해 후 내부 이동이 쉬워질 수 있습니다.
- 지원하지 않는 설정은 클러스터 생성이나 변경을 실패하게 할 수 있습니다.
해결 방법
- 설치된
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를 배포해야 통신 제한을 적용할 수 있습니다.