Azure NSG 서비스 포트의 접근 범위 점검

관리용·내부용 서비스 포트는 필요한 클라이언트에만 허용하세요.

설명

서비스 포트를 전체 주소에 허용하는 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의 새 연결을 거부합니다.

참조