네트워크 보안 그룹
Azure 네트워크 보안 그룹을 사용하여 Azure 가상 네트워크의 Azure 리소스 간의 네트워크 트래픽을 필터링할 수 있습니다. 네트워크 보안 그룹에는 여러 종류의 Azure 리소스에서 오는 인바운드 트래픽 또는 이러한 리소스로 나가는 아웃바운드 네트워크 트래픽을 허용하거나 거부하는 보안 규칙이 포함됩니다. 규칙마다 원본 및 대상, 포트, 프로토콜을 지정할 수 있습니다.
이 문서에서는 네트워크 보안 그룹 규칙의 속성, 적용되는 기본 보안 규칙 및 강화된 보안 규칙을 만들기 위해 수정할 수 있는 규칙 속성을 설명합니다.
보안 규칙
네트워크 보안 그룹은 Azure 구독 제한 내에서 필요한 개수 만큼 규칙을 포함합니다. 각 규칙은 다음 속성을 지정합니다.
속성 | 설명 |
---|---|
이름 | 네트워크 보안 그룹 내에서 고유한 이름입니다. 이름은 최대 80자까지 지정할 수 있습니다. 단어 문자로 시작해야 하며 단어 문자 또는 '_'로 끝나야 합니다. 이름에 단어 문자 또는 '.', '-', '_'가 포함될 수 있습니다. |
우선 순위 | 100~4096 사이의 숫자입니다. 낮은 번호의 우선 순위가 더 높기 때문에 규칙은 낮은 번호가 높은 번호보다 먼저 처리되는 우선 순위 순서로 처리됩니다. 트래픽이 규칙과 일치하면 처리가 중지됩니다. 따라서 우선 순위가 높은 규칙과 동일한 특성을 가진 우선 순위가 낮은 규칙(높은 번호)은 처리되지 않습니다. Azure 기본 보안 규칙은 사용자 지정 규칙이 항상 먼저 처리되도록 가장 낮은 우선 순위에 가장 높은 숫자를 부여합니다. |
원본 또는 대상 | 임의 또는 개별 IP 주소, CIDR(Classless Inter-Domain Routing) 블록(예: 10.0.0.0/24), 서비스 태그 또는 애플리케이션 보안 그룹입니다. Azure 리소스의 주소를 지정하는 경우 리소스에 할당된 개인 IP 주소를 지정하세요. 네트워크 보안 그룹은 Azure가 공용 IP 주소를 인바운드 트래픽용 개인 IP 주소로 변환한 후에, 그리고 Azure가 개인 IP 주소를 아웃바운드 트래픽용 공용 IP 주소로 변환하기 전에 처리됩니다. 범위, 서비스 태그 또는 애플리케이션 보안 그룹을 지정할 때 더 적은 수의 보안 규칙이 필요합니다. 규칙에서 여러 개별 IP 주소와 범위를 지정하는 기능(여러 서비스 태그 또는 애플리케이션 그룹을 지정할 수 없음)은 보강된 보안 규칙이라고 합니다. 보강된 보안 규칙은 Resource Manager 배포 모델을 통해 만들어진 네트워크 보안 그룹에서만 만들 수 있습니다. 클래식 배포 모델을 통해 만든 네트워크 보안 그룹에서는 여러 개의 IP 주소 및 IP 주소 범위를 지정할 수 없습니다. 원본이 서브넷 10.0.1.0/24(VM1이 있는 위치)를 가리키고 대상이 서브넷 10.0.2.0/24(VM2가 있는 위치)를 가리키는 경우 NSG의 목적은 VM2에 대한 네트워크 트래픽을 필터링하는 것이며 NSG는 VM2의 네트워크 인터페이스와 연결되어 있음을 나타냅니다. |
프로토콜 | TCP, UDP, ICMP, ESP, AH 또는 Any. ESP 및 AH 프로토콜은 현재 Azure Portal을 통해 사용할 수 없지만 ARM 템플릿을 통해 사용할 수 있습니다. |
방향 | 규칙이 인바운드 또는 아웃바운드 트래픽에 적용되는지 여부입니다. |
포트 범위 | 개별 포트나 포트의 범위를 지정할 수 있습니다. 예를 들어 80 또는 10000-10005과 같이 지정할 수 있습니다. 범위를 지정하면 더 적은 보안 규칙을 만들어도 됩니다. 보강된 보안 규칙은 Resource Manager 배포 모델을 통해 만들어진 네트워크 보안 그룹에서만 만들 수 있습니다. 클래식 배포 모델을 통해 만든 네트워크 보안 그룹에서는 동일한 보안 규칙에 여러 개의 포트 또는 포트 범위를 지정할 수 없습니다. |
작업 | 허용 또는 거부 |
보안 규칙은 5-튜플(원본, 원본 포트, 대상, 대상 포트, 프로토콜) 정보를 기반으로 평가 및 적용됩니다. 우선 순위와 방향이 같은 두 개의 보안 규칙을 만들 수 없습니다. 기존 연결에 대한 흐름 레코드가 만들어집니다. 통신은 흐름 레코드의 연결 상태에 따라 허용 또는 거부됩니다. 흐름 레코드는 네트워크 보안 그룹의 상태 저장을 허용합니다. 예를 들어 포트 80을 통해 모든 주소에 대한 아웃바운드 보안 규칙을 지정하는 경우 아웃바운드 트래픽에 대한 응답에 인바운드 보안 규칙을 지정하지 않아도 됩니다. 통신이 외부에서 시작된 경우 인바운드 보안 규칙을 지정하기만 하면 됩니다. 반대의 경우도 마찬가지입니다. 포트를 통해 인바운드 트래픽이 허용되는 경우 포트를 통해 트래픽에 응답하도록 아웃바운드 보안 규칙을 지정하지 않아도 됩니다.
연결을 허용한 보안 규칙을 제거해도 기존 연결이 중단되지 않을 수 있습니다. 네트워크 보안 그룹 규칙을 수정하면 새 연결에만 영향을 줍니다. 네트워크 보안 그룹에서 새 규칙을 만들거나 기존 규칙을 업데이트하는 경우 새 연결에만 적용됩니다. 기존 연결은 새 규칙으로 재평가되지 않습니다.
한 네트워크 보안 그룹에 만들 수 있는 보안 규칙 수에는 제한이 있습니다. 자세한 내용은 Azure 제한을 참조하세요.
기본 보안 규칙
Azure는 사용자가 만드는 각 네트워크 보안 그룹에 다음과 같은 기본 규칙을 만듭니다.
인바운드
AllowVNetInBound
우선 순위 | 원본 | 원본 포트 | 대상 | 대상 포트 | 프로토콜 | Access |
---|---|---|---|---|---|---|
65000 | VirtualNetwork | 0-65535 | VirtualNetwork | 0-65535 | 모두 | 허용 |
AllowAzureLoadBalancerInBound
우선 순위 | 원본 | 원본 포트 | 대상 | 대상 포트 | 프로토콜 | Access |
---|---|---|---|---|---|---|
65001 | AzureLoadBalancer | 0-65535 | 0.0.0.0/0 | 0-65535 | 모두 | 허용 |
DenyAllInbound
우선 순위 | 원본 | 원본 포트 | 대상 | 대상 포트 | 프로토콜 | Access |
---|---|---|---|---|---|---|
65500 | 0.0.0.0/0 | 0-65535 | 0.0.0.0/0 | 0-65535 | 모두 | 거부 |
아웃바운드
AllowVnetOutBound
우선 순위 | 원본 | 원본 포트 | 대상 | 대상 포트 | 프로토콜 | Access |
---|---|---|---|---|---|---|
65000 | VirtualNetwork | 0-65535 | VirtualNetwork | 0-65535 | 모두 | 허용 |
AllowInternetOutBound
우선 순위 | 원본 | 원본 포트 | 대상 | 대상 포트 | 프로토콜 | Access |
---|---|---|---|---|---|---|
65001 | 0.0.0.0/0 | 0-65535 | 인터넷 | 0-65535 | 모두 | 허용 |
DenyAllOutBound
우선 순위 | 원본 | 원본 포트 | 대상 | 대상 포트 | 프로토콜 | Access |
---|---|---|---|---|---|---|
65500 | 0.0.0.0/0 | 0-65535 | 0.0.0.0/0 | 0-65535 | 모두 | 거부 |
원본 및 대상 열에서 VirtualNetwork, AzureLoadBalancer 및 인터넷은 IP 주소가 아닌 서비스 태그입니다. 프로토콜 열에서 모두는 TCP, UDP 및 ICMP를 포함합니다. 규칙을 만들 때 TCP, UDP, ICMP 또는 모두를 지정할 수 있습니다. 소스 및 대상 열에서 0.0.0.0/0은 모든 주소를 나타냅니다. Azure Portal, Azure CLI 또는 PowerShell과 같은 클라이언트는 이 식에 * 또는 모두를 사용할 수 있습니다.
기본 규칙을 제거할 수 없지만 더 높은 우선 순위의 규칙을 만들어서 재정의할 수 있습니다.
보강된 보안 규칙
보강된 보안 규칙은 가상 네트워크에 대한 보안 정의를 간소화하여 더 적은 규칙으로 크고 복잡한 네트워크 보안 정책을 정의할 수 있도록 합니다. 여러 포트, 여러 명시적 IP 주소 및 범위를 이해하기 쉬운 단일 보안 규칙으로 결합할 수 있습니다. 규칙의 원본, 대상 및 포트 필드에서 보강된 규칙을 사용합니다. 보안 규칙 정의를 간단히 유지 관리하려면 보강된 보안 규칙을 서비스 태그 또는 애플리케이션 보안 그룹과 결합합니다. 한 규칙에서 지정할 수 있는 주소, 범위 및 포트 수가 제한됩니다. 자세한 내용은 Azure 제한을 참조하세요.
서비스 태그
서비스 태그는 지정된 Azure 서비스의 IP 주소 접두사 그룹을 나타냅니다. 네트워크 보안 규칙에 대한 빈번한 업데이트의 복잡성을 최소화하는 데 도움이 됩니다.
자세한 내용은 Azure 서비스 태그를 참조하세요. Storage 서비스 태그를 사용하여 네트워크 액세스를 제한하는 방법에 대한 예제는 PaaS 리소스에 대한 네트워크 액세스 제한을 참조하세요.
애플리케이션 보안 그룹
애플리케이션 보안 그룹을 사용하면 네트워크 보안을 애플리케이션 구조의 자연 확장으로 구성하여 가상 머신을 그룹화하고 해당 그룹에 따라 네트워크 보안 정책을 정의할 수 있습니다. 명시적 IP 주소를 수동으로 유지 관리하지 않고 대규모 보안 정책을 재사용할 수 있습니다. 자세한 내용은 애플리케이션 보안 그룹을 참조하세요.
Azure 플랫폼 고려 사항
호스트 노드의 가상 IP: DHCP, DNS, IMDS, 상태 모니터링과 같은 기본 인프라 서비스는 가상화된 호스트 IP 주소 168.63.129.16 및 169.254.169.254를 통해 제공됩니다. 이러한 IP 주소는 Microsoft에 속하며, 이 용도로 모든 지역에서 유일하게 사용되는 가상화된 IP 주소입니다. 기본적으로 이러한 서비스는 각 서비스에 특정한 서비스 태그로 대상이 지정되지 않는 한 구성된 네트워크 보안 그룹의 적용을 받지 않습니다. 이 기본 인프라 통신을 재정의하기 위해 네트워크 보안 그룹 규칙에서 AzurePlatformDNS, AzurePlatformIMDS, AzurePlatformLKM과 같은 서비스 태그를 사용하여 트래픽을 거부하는 보안 규칙을 만들 수 있습니다. 네트워크 트래픽 필터링을 진단하고 네트워크 라우팅을 진단하는 방법을 알아봅니다.
라이선싱(키 관리 서비스): 가상 머신에서 실행되는 Windows 이미지는 사용이 허가되어 있어야 합니다. 사용 허가를 위해 라이선스 요청이 이러한 쿼리를 처리하는 키 관리 서비스 호스트 서버로 전송됩니다. 요청은 1688 포트를 통해 아웃바운드로 수행됩니다. 기본 경로 0.0.0.0/0 구성을 사용한 배포에 대해 이 플랫폼 규칙은 사용하지 않도록 설정됩니다.
부하가 분산된 풀의 가상 머신: 적용되는 원본 포트와 주소 범위는 부하 분산 장치가 아닌 원래 컴퓨터에서 가져옵니다. 대상 포트와 주소 범위는 부하 분산 장치가 아닌 대상 컴퓨터에서 가져옵니다.
Azure 서비스 인스턴스: HDInsight, 애플리케이션 서비스 환경 및 Virtual Machine Scale Sets와 같은 몇 가지 Azure 서비스의 인스턴스는 가상 네트워크 서브넷에 배포됩니다. 가상 네트워크에 배포할 수 있는 서비스의 전체 목록은 Azure 서비스에 대한 가상 네트워크를 참조하세요. 서브넷에 네트워크 보안 그룹을 적용하기 전에 각 서비스의 포트 요구 사항을 숙지합니다. 서비스에 필요한 포트를 거부하면 서비스가 제대로 작동하지 않습니다.
아웃바운드 전자 메일 보내기: 인증된 SMTP 릴레이 서비스(일반적으로 587 TCP 포트를 통해 연결되지만 종종 다른 방법도 사용)를 활용하여 Azure Virtual Machines에서 전자 메일을 보내는 것이 좋습니다. SMTP 릴레이 서비스는 타사 전자 메일 공급자에서 메시지를 거부할 가능성을 최소화하기 위해 보낸 사람 신뢰도를 특수화합니다. 이러한 SMTP 릴레이 서비스는 Exchange Online Protection 및 SendGrid를 포함하지만 여기에 제한되지 않습니다. SMTP 릴레이 서비스는 구독 유형에 관계 없이 Azure에서 제한되지 않고 사용할 수 있습니다.
2017년 11월 15일까지 Azure 구독을 만든 경우 SMTP 릴레이 서비스를 사용할 수 있을 뿐만 아니라 TCP 포트 25를 통해 직접 전자 메일을 보낼 수 있습니다. 2017년 11월 15일 이후에 구독을 만든 경우 포트 25를 통해 직접 전자 메일을 보낼 수 없습니다. 포트 25를 통한 아웃바운드 통신 동작은 다음과 같이 구독 형식에 따라 다릅니다.
기업계약: 표준 기업계약 구독에 배포된 VM의 경우 TCP 포트 25의 아웃바운드 SMTP 연결이 차단되지 않습니다. 그러나 외부 도메인은 VM에서 들어오는 이메일을 수락한다는 보장이 없습니다. 외부 도메인에서 이메일을 거부하거나 필터링하는 경우 외부 도메인의 이메일 서비스 공급자에게 문의하여 문제를 해결해야 합니다. 이러한 문제는 Azure 지원에서 다루지 않습니다.
Enterprise 개발/테스트 구독의 경우 기본적으로 포트 25가 차단됩니다. 이 차단을 제거하는 것이 가능합니다. 차단을 제거하도록 요청하려면 Azure Portal의 Azure Virtual Network 리소스에 대한 진단 및 해결 설정 페이지의 이메일을 보낼 수 없음(SMTP-포트 25) 섹션으로 이동하여 진단을 실행합니다. 그러면 정규화된 엔터프라이즈 개발/테스트 구독이 자동으로 제외됩니다.
이 차단에서 구독을 제외하고 VM이 중지되었다가 다시 시작되면 해당 구독의 모든 VM은 제외됩니다. 예외는 요청된 구독에만 적용되고 인터넷으로 직접 라우팅되는 VM 트래픽에만 적용됩니다.
종량제: 모든 리소스에서 아웃바운드 포트 25 통신이 차단되었습니다. 요청이 승인되지 않았기 때문에 제한 제거를 요청할 수 없습니다. 가상 머신에서 이메일을 보내야 하는 경우 SMTP 릴레이 서비스를 사용해야 합니다.
MSDN, Azure Pass, Azure in Open, Education 및 평가판: 모든 리소스에서 아웃바운드 포트 25 통신이 차단되었습니다. 요청이 승인되지 않았기 때문에 제한 제거를 요청할 수 없습니다. 가상 머신에서 이메일을 보내야 하는 경우 SMTP 릴레이 서비스를 사용해야 합니다.
클라우드 서비스 공급자: 모든 리소스에서 아웃바운드 포트 25 통신이 차단되었습니다. 요청이 승인되지 않았기 때문에 제한 제거를 요청할 수 없습니다. 가상 머신에서 이메일을 보내야 하는 경우 SMTP 릴레이 서비스를 사용해야 합니다.
다음 단계
- 가상 네트워크에 배포하고 네트워크 보안 그룹이 연결된 Azure 리소스에 대한 자세한 내용은 Azure 서비스용 가상 네트워크 통합을 참조하세요
- 네트워크 보안 그룹을 사용하여 트래픽을 평가하는 방법에 대한 자세한 내용은 네트워크 보안 그룹의 작동 방법을 참조하세요.
- 네트워크 보안 그룹을 만들어 본 경험이 전혀 없는 경우 빠른 자습서를 완료하여 직접 경험해 볼 수 있습니다.
- 네트워크 보안 그룹에 익숙하고 네트워크 보안 그룹을 관리해야 하는 경우 네트워크 보안 그룹 관리를 참조하세요.
- 통신에 문제가 있고 네트워크 보안 그룹 문제를 해결해야 하는 경우 가상 머신 네트워크 트래픽 필터 문제 진단을 참조하세요.
- 네트워크 보안 그룹 흐름 로그를 사용하여 연결된 네트워크 보안 그룹이 있는 리소스와 주고 받는 네트워크 트래픽을 분석하는 방법을 알아보세요.