중요합니다
Azure에는 리소스를 만들고 작업하기 위한 두 가지 배포 모델 인 Resource Manager와 클래식이 있습니다. 이 문서에서는 클래식 배포 모델 사용에 대해 설명합니다. 대부분의 새 배포는 Resource Manager 배포 모델을 사용하는 것이 좋습니다.
ACL(엔드포인트 액세스 제어 목록)은 Azure 배포에 사용할 수 있는 보안 향상 기능입니다. ACL은 가상 머신 엔드포인트에 대한 트래픽을 선택적으로 허용하거나 거부하는 기능을 제공합니다. 이 패킷 필터링 기능은 추가 보안 계층을 제공합니다. 엔드포인트에 대해서만 네트워크 ACL을 지정할 수 있습니다. 가상 네트워크에 대한 ACL 또는 가상 네트워크에 포함된 특정 서브넷을 지정할 수 없습니다. 가능하면 ACL 대신 NSG(네트워크 보안 그룹)를 사용하는 것이 좋습니다. NSG를 사용하는 경우 엔드포인트 액세스 제어 목록이 대체되고 더 이상 적용되지 않습니다. NSG에 대한 자세한 내용은 네트워크 보안 그룹 개요를 참조하세요.
ACL은 PowerShell 또는 Azure Portal을 사용하여 구성할 수 있습니다. PowerShell을 사용하여 네트워크 ACL을 구성하려면 PowerShell을 사용하여 엔드포인트에 대한 액세스 제어 목록 관리를 참조하세요. Azure Portal을 사용하여 네트워크 ACL을 구성하려면 가상 머신에 엔드포인트를 설정하는 방법을 참조하세요.
네트워크 ACL을 사용하여 다음을 수행할 수 있습니다.
- 가상 머신 입력 엔드포인트에 대한 원격 서브넷 IPv4 주소 범위에 따라 들어오는 트래픽을 선택적으로 허용하거나 거부합니다.
- 차단 목록 IP 주소
- 가상 머신 엔드포인트당 여러 규칙 만들기
- 규칙 순서를 사용하여 지정된 가상 머신 엔드포인트에 올바른 규칙 집합이 적용되도록 합니다(가장 낮음에서 가장 높음).
- 특정 원격 서브넷 IPv4 주소에 대한 ACL을 지정합니다.
ACL 제한에 대한 Azure 제한 문서를 참조하세요.
ACL 작동 방식
ACL은 규칙 목록을 포함하는 개체입니다. ACL을 만들고 가상 머신 엔드포인트에 적용하면 VM의 호스트 노드에서 패킷 필터링이 발생합니다. 즉, 원격 IP 주소의 트래픽은 VM이 아닌 ACL 규칙 일치를 위해 호스트 노드에 의해 필터링됩니다. 이렇게 하면 VM이 패킷 필터링에 귀중한 CPU 주기를 소비하지 못하게 됩니다.
가상 머신을 만들 때 들어오는 모든 트래픽을 차단하기 위해 기본 ACL이 적용됩니다. 그러나 엔드포인트가 만들어지는 경우(포트 3389) 해당 엔드포인트에 대한 모든 인바운드 트래픽을 허용하도록 기본 ACL이 수정됩니다. 그러면 원격 서브넷의 인바운드 트래픽이 해당 엔드포인트에 허용되며 방화벽 프로비저닝이 필요하지 않습니다. 해당 포트에 대해 엔드포인트를 만들지 않는 한 다른 모든 포트는 인바운드 트래픽에 대해 차단됩니다. 아웃바운드 트래픽은 기본적으로 허용됩니다.
예제 기본 ACL 테이블
규칙 # | 원격 서브넷 | 엔드포인트 | 허용/거부 |
---|---|---|---|
100 | 0.0.0.0/0 | 3389 | 허가 |
허용 및 거부
"허용" 또는 "거부"를 지정하는 규칙을 만들어 가상 머신 입력 엔드포인트에 대한 네트워크 트래픽을 선택적으로 허용하거나 거부할 수 있습니다. 기본적으로 엔드포인트를 만들 때 엔드포인트에 대한 모든 트래픽이 허용된다는 점에 유의해야 합니다. 따라서 가상 머신 엔드포인트에 도달할 수 있도록 선택한 네트워크 트래픽을 세부적으로 제어하려는 경우 허용/거부 규칙을 만들고 적절한 우선 순위에 배치하는 방법을 이해하는 것이 중요합니다.
고려해야 할 사항:
- ACL 없음 – 기본적으로 엔드포인트를 만들 때 엔드포인트에 대해 모두 허용합니다.
- 허락하다- 하나 이상의 "허용" 범위를 추가하는 경우 기본적으로 다른 모든 범위를 거부합니다. 허용된 IP 범위의 패킷만 가상 머신 엔드포인트와 통신할 수 있습니다.
- 거절하다- 하나 이상의 "거부" 범위를 추가하는 경우 기본적으로 다른 모든 트래픽 범위를 허용합니다.
- 허용 및 거부의 조합 - 허용되거나 거부될 특정 IP 범위를 개척하려는 경우 "허용" 및 "거부"의 조합을 사용할 수 있습니다.
규칙 및 규칙 우선 순위
네트워크 ACL은 특정 가상 머신 엔드포인트에서 설정할 수 있습니다. 예를 들어 특정 IP 주소에 대한 액세스를 잠그는 가상 머신에서 만든 RDP 엔드포인트에 대한 네트워크 ACL을 지정할 수 있습니다. 아래 표에서는 RDP에 대한 액세스를 허용하기 위해 특정 범위의 공용 VIP(가상 IP)에 대한 액세스 권한을 부여하는 방법을 보여 줍니다. 다른 모든 원격 IP는 거부됩니다. 가장 낮은 우선 순위 규칙 순서를 따릅니다.
여러 규칙
아래 예제에서 두 개의 공용 IPv4 주소 범위(65.0.0.0/8 및 159.0.0.0/8)에서만 RDP 엔드포인트에 대한 액세스를 허용하려면 두 가지 허용 규칙을 지정하여 이를 달성할 수 있습니다. 이 경우 RDP는 기본적으로 가상 머신에 대해 만들어지므로 원격 서브넷을 기반으로 RDP 포트에 대한 액세스를 잠그는 것이 좋습니다. 아래 예제에서는 RDP에 대한 액세스를 허용하기 위해 특정 범위의 공용 VIP(가상 IP)에 대한 액세스 권한을 부여하는 방법을 보여 줍니다. 다른 모든 원격 IP는 거부됩니다. 이는 특정 가상 머신 엔드포인트에 대해 네트워크 ACL을 설정할 수 있고 기본적으로 액세스가 거부되기 때문에 작동합니다.
예제 – 여러 규칙
규칙 # | 원격 서브넷 | 엔드포인트 | 허용/거부 |
---|---|---|---|
100 | 65.0.0.0/8 | 3389 | 허가 |
200 | 159.0.0.0/8 | 3389 | 허가 |
규칙 순서
엔드포인트에 대해 여러 규칙을 지정할 수 있으므로 우선 순위를 지정하는 규칙을 결정하기 위해 규칙을 구성하는 방법이 있어야 합니다. 규칙 순서는 우선 순위를 지정합니다. 네트워크 ACL은 가장 낮은 우선 순위 규칙 순서를 따릅니다. 아래 예제에서는 포트 80의 엔드포인트에 특정 IP 주소 범위에 대한 액세스 권한만 선택적으로 부여됩니다. 이를 구성하려면 175.1.0.1/24 공간의 주소에 대한 거부 규칙(규칙 # 100)이 있습니다. 그런 다음 175.0.0.0/8 미만의 다른 모든 주소에 대한 액세스를 허용하는 우선 순위 200으로 두 번째 규칙이 지정됩니다.
예제 – 규칙 우선 순위
규칙 # | 원격 서브넷 | 엔드포인트 | 허용/거부 |
---|---|---|---|
100 | 175.1.0.1/24 | 80 | 거절하다 |
200 | 175.0.0.0/8 | 80 | 허가 |
네트워크 ACL 및 부하 분산 집합
부하 분산된 집합 엔드포인트에서 네트워크 ACL을 지정할 수 있습니다. 부하 분산 집합에 ACL을 지정하면 네트워크 ACL이 부하 분산 집합의 모든 가상 머신에 적용됩니다. 예를 들어 "포트 80"을 사용하여 부하 분산 집합을 만들고 부하 분산된 집합에 3개의 VM이 포함된 경우 한 VM의 엔드포인트 "포트 80"에서 만든 네트워크 ACL이 다른 VM에 자동으로 적용됩니다.