설명
서비스 포트를 전체 주소에 허용하는 Azure NSG 규칙은 의도보다 넓은 접근을 허용할 수 있습니다. 실제 접근 범위는 NSG 연결, 규칙 우선순위와 네트워크 경로에 따라 달라집니다. 공개 웹 서비스에 필요한 접근과 관리용·내부용 접근을 구분하세요.
잠재적 영향
외부 접근이 불필요한 서비스에 의도하지 않은 클라이언트의 연결 시도가 도달할 수 있습니다. 서비스의 기능과 인증 상태에 따라 무단 사용이나 정보 노출로 이어질 수 있습니다.
해결 방법
불필요한 허용 규칙을 삭제하거나 출발지를 필요한 클라이언트 범위로 제한하세요. NSG가 연결된 리소스에서 유효한 규칙과 새 연결의 허용·차단을 확인하세요. 규칙을 바꿔도 기존 연결이 즉시 끊기지는 않습니다. Ansible의 purge_rules는 기본값이 false이므로 목록에서 뺀 규칙이 실제로 삭제되었는지도 확인하세요.
예시
TCP 23에 대한 접근이 필요 없는 경우의 예시입니다. NSG를 대상 서브넷이나 네트워크 인터페이스에 연결하는 설정은 별도로 필요합니다.
변경 전
yaml
- name: foo
azure_rm_securitygroup:
resource_group: myResourceGroup
name: mysecgroup
rules:
- name: example
priority: 100
direction: Inbound
access: Allow
protocol: TCP
source_port_range: "*"
destination_port_range: "23"
source_address_prefix: "0.0.0.0/0"
destination_address_prefix: "*"
모든 IPv4 주소에서 들어오는 TCP 23 트래픽을 허용합니다.
변경 후
yaml
- name: foo
azure_rm_securitygroup:
resource_group: myResourceGroup
name: mysecgroup
rules:
- name: example
priority: 100
direction: Inbound
access: Deny
protocol: TCP
source_port_range: "*"
destination_port_range: "23"
source_address_prefix: "*"
destination_address_prefix: "*"
해당 규칙에 일치하는 TCP 23의 새 연결을 거부합니다.