이 문서에서는 프라이빗 DNS 영역, Azure DNS Private Resolver 및 DNS 보안 컨트롤을 사용하여 Azure 네트워크에 대한 DNS를 디자인하는 방법을 설명합니다. 프라이빗 이름 확인 패턴, 하이브리드 DNS 전달, 프라이빗 엔드포인트 DNS 통합 및 DNS 계층 위협 방지를 다룹니다.
이 문서에서 다루는 내용
DNS는 네트워크 연결의 기초입니다. 모든 연결은 이름 확인 쿼리로 시작됩니다. Azure DNS 디자인은 워크로드가 가상 네트워크에서 서로를 검색하는 방법, 온-프레미스 시스템이 Azure 호스팅된 이름을 확인하는 방법 및 FQDN(정규화된 도메인 이름)을 통해 프라이빗 엔드포인트에 연결할 수 있는 방법을 결정합니다. DNS는 해상도를 넘어서 공격 노출 영역이기도 합니다. 악의적인 도메인에 대한 DNS 터널링, 반출 및 쿼리는 DNS 계층 보안 제어가 필요한 실제 위협을 나타냅니다.
이 문서에서는 세 가지 DNS 문제를 해결합니다.
- 개인 이름 확인: 가상 머신, 컨테이너 및 플랫폼 서비스가 공용 인터넷에 DNS 쿼리를 노출하지 않고 Azure 내에서 이름을 확인하는 방법입니다.
- 하이브리드 DNS 전달: 온-프레미스 네트워크에서 Azure 개인 이름을 확인하는 방법과 Azure 워크로드가 온-프레미스 이름을 확인하는 방법입니다.
- DNS 보안: 악의적인 DNS 쿼리를 차단하고, DNS 반출을 방지하고, FQDN 기반 네트워크 필터링을 사용하도록 설정하는 방법입니다.
이 문서가 필요한 사람
다음과 같은 경우 이 문서를 읽어보세요.
- 프라이빗 엔드포인트를 배포하고(시나리오에 해당하는 경우) DNS 영역을 올바르게 해결
privatelink.*하려면 워크로드가 필요합니다. - 온-프레미스 시스템이 Azure 개인 이름을 확인해야 하는 하이브리드 환경을 운영합니다(또는 그 반대의 경우도 마찬가지임).
- Azure Firewall 사용하고 네트워크 규칙에서 FQDN 기반 필터링이 필요합니다.
- 확인 계층에서 알려진 악성 도메인에 대한 DNS 쿼리를 차단하려고 합니다.
- 중앙 집중식 DNS 확인이 작업을 간소화하는 다중 VNet 환경을 관리합니다.
- 공유 서비스를 사용하여 허브-스포크 토폴로지의 DNS 아키텍처를 계획합니다.
리프트 앤 시프트 포커스: 마이그레이션하는 동안 기존 DNS 명명 동작을 유지합니다. 온-프레미스 DNS와 Azure 간에 양방향 전달을 사용하고, 분할 수평선 확인을 위한 조건부 전달자를 구성하고, 애플리케이션이 현재 DNS 구성을 유지하도록 프라이빗 DNS 영역에서 Azure 프라이빗 이름을 호스트합니다.
포커스 현대화: 워크로드를 다시 배치할 때 이름 확인을 중앙 집중화합니다. 하이브리드 확인을 위한 전달 규칙 집합과 Azure DNS Private Resolver를 사용하고, 프라이빗 DNS 영역을 PaaS 서비스의 프라이빗 엔드포인트와 통합하고, FQDN 기반 규칙 및 DNS 확인이 단일 캐시된 경로를 공유하도록 Azure Firewall DNS 프록시를 사용하도록 설정합니다.
클라우드 간 포커스: 워크로드 마이그레이션 전에 클라우드에서 DNS 중단을 계획합니다. 클라우드 간 이름 확인을 위해 Azure DNS Private Resolver를 사용하고, AWS Route 53 Resolver 또는 Google Cloud DNS를 사용하여 조건부 전달을 구성하고, 중단 전에 TTL 값을 낮추어 부실 캐시 위험을 줄입니다.
Azure 서비스 및 기능
다음 표에서는 DNS 보안 및 개인 이름 확인과 관련된 Azure 서비스 및 기능에 대해 설명합니다.
| 서비스/기능 | Purpose | 주요 기능 | 사용 시기 |
|---|---|---|---|
| Azure DNS(공용 영역) | 퍼블릭 도메인 이름에 대한 신뢰할 수 있는 호스팅 | 글로벌 애니캐스트 네트워크, Azure RBAC 통합, Azure 리소스에 대한 별칭 레코드 | 공용 도메인을 소유하고 있으며 고가용성으로 Azure DNS 레코드를 호스트하려고 합니다. |
| Azure 프라이빗 DNS 영역 | 공용 노출 없이 가상 네트워크 내에서 이름 확인 | VNet 연결, VM 호스트 이름 자동 등록, privatelink 영역 호스팅 | Azure 워크로드에 대한 내부 이름 확인. 프라이빗 엔드포인트 DNS 통합에 필요합니다. |
| Azure DNS Private Resolver | Azure 외부 네트워크 간 DNS 전달 | 인바운드 엔드포인트(온프레미스 → Azure 해결), 아웃바운드 엔드포인트(Azure → 온프레미스 전달), 전달 규칙 집합 | 사용자 지정 DNS VM을 배포하지 않고 양방향 DNS 확인이 필요한 하이브리드 환경. |
| DNS 프록시 Azure Firewall | FQDN 필터링을 위한 중앙 집중식 DNS 차단 | DNS 응답을 캐시하고, FQDN 기반 네트워크 규칙을 사용하도록 설정하고, 스포크 VNet에 단일 DNS 엔드포인트를 제공합니다. | Azure Firewall 배포하고 네트워크 규칙에서 FQDN 필터링이 필요합니다. 일관된 FQDN 해상도를 위해 필수입니다. |
| DNS 보안 정책 | DNS 계층의 위협 방지 | Microsoft 위협 인텔리전스 피드를 사용하여 알려진 악성 도메인의 해결 차단 | 워크로드가 명령 및 제어 또는 맬웨어 배포 도메인에 연결되지 않도록 방지하려고 합니다. |
프라이빗 DNS 영역 개념
프라이빗 DNS 영역은 레코드를 인터넷에 노출하지 않고 연결된 가상 네트워크에 대한 이름 확인을 제공합니다. 주요 동작:
- VNet 연결: 프라이빗 DNS 영역을 여러 VNet에 연결할 수 있습니다. 연결된 VNet의 모든 리소스는 영역의 레코드를 확인할 수 있습니다.
- 자동 등록: VNet 링크에서 사용하도록 설정하면 Azure 해당 VNet에 배포된 가상 머신에 대한 A 레코드를 자동으로 만듭니다. Azure VM의 할당을 취소하거나 삭제할 때 레코드를 제거합니다. 자동 등록은 VM에 대해서만 작동합니다(기본 NIC에만 해당). VNet은 하나의 프라이빗 DNS 영역에만 자동 등록할 수 있지만 여러 VNet을 동일한 영역에 연결할 수 있습니다.
-
프라이빗 엔드포인트 DNS: 프라이빗 엔드포인트를 통해 액세스되는 Azure 서비스에는 특정 프라이빗 링크 DNS 영역(예
privatelink.blob.core.windows.net: Azure Blob Storage)이 필요합니다. 올바른 영역이 없으면 클라이언트는 프라이빗 엔드포인트 주소 대신 공용 IP를 확인합니다.
DNS Private Resolver 아키텍처
Azure DNS Private Resolver는 하이브리드 전달 시나리오에서 사용자 지정 DNS 가상 머신의 필요성을 대체합니다. 다음 다이어그램은 온-프레미스에서 Azure DNS Private Resolver에서 프라이빗 엔드포인트 IP 주소로의 하이브리드 DNS 확인 흐름을 보여 줍니다.
확인자는 다음 두 가지 엔드포인트 유형을 사용합니다.
-
인바운드 엔드포인트: 온-프레미스 DNS 서버가 조건부 전달자로 대상으로 지정할 수 있는 IP 주소를 제공합니다. Azure DNS 이 IP로 전송된 쿼리(연결된 프라이빗 DNS 영역 포함)를 확인합니다.
Microsoft.Network/dnsResolvers에 위임된 전용 서브넷이 필요합니다. - 아웃바운드 엔드포인트: Azure 워크로드가 온-프레미스 DNS 서버, 다른 클라우드 공급자 또는 외부 확인자에 DNS 쿼리를 전달할 수 있도록 합니다. 전용 서브넷도 필요합니다. 아웃바운드 엔드포인트에 연결된 전달 규칙 집합은 전달할 도메인 접미사와 사용할 대상 DNS 서버를 정의합니다.
Important
인바운드 및 아웃바운드 엔드포인트에는 각각 고유한 전용 서브넷이 필요합니다. 이러한 서브넷에는 다른 리소스를 배포할 수 없습니다. 전달 규칙 집합에 연결된 VNet은 확인자 VNet과 피어링할 필요가 없습니다. 규칙 집합 링크는 VNet 피어링과 독립적으로 작동합니다.
선택 방법
다음 의사 결정 트리를 사용하여 사용자 환경에 적합한 DNS 구성 요소를 선택합니다.
의사 결정 트리
프라이빗 엔드포인트를 사용합니까?
- 예→ 적절한
privatelink.*영역 이름을 사용하여 프라이빗 DNS 영역을 배포합니다. 프라이빗 엔드포인트 주소를 확인해야 하는 VNet에 영역을 연결합니다.
- 예→ 적절한
온-프레미스 시스템에서 Azure 프라이빗 이름을 확인해야 하나요?
- 예→ 인바운드 엔드포인트를 사용하여 DNS 프라이빗 확인자를 배포합니다. 인바운드 엔드포인트 IP를 가리키는 조건부 전달자를 사용하여 온-프레미스 DNS 서버를 구성합니다.
Azure 워크로드가 온-프레미스 이름을 확인해야 하나요?
- 예→ 아웃바운드 엔드포인트를 사용하여 DNS 프라이빗 확인자를 배포합니다. 온-프레미스 도메인 접미사(예
corp.contoso.com: )에 대한 전달 규칙 집합을 만듭니다.
- 예→ 아웃바운드 엔드포인트를 사용하여 DNS 프라이빗 확인자를 배포합니다. 온-프레미스 도메인 접미사(예
Azure Firewall 배포하고 네트워크 규칙에서 FQDN 필터링이 필요한가요?
- 예 → 방화벽 DNS 프록시를 사용하도록 설정합니다. 방화벽 개인 IP를 DNS 서버로 사용하도록 스포크 VM을 구성합니다.
알려진 악성 도메인에 대한 DNS 쿼리를 차단하시겠습니까?
- 예 → 대상 VNet에서 Microsoft 위협 인텔리전스 피드를 사용하여 DNS 보안 정책을 사용하도록 설정합니다.
일반적인 패턴
| 패턴 | 구성 요소 | 사용 사례 |
|---|---|---|
| 프라이빗 엔드포인트 확인만 | 프라이빗 DNS 영역 + VNet 링크 | 프라이빗 엔드포인트를 통해 PaaS 서비스에 액세스하는 클라우드 전용 워크로드입니다. 하이브리드 연결이 없습니다. |
| 혼합형 양방향 해결 | 프라이빗 DNS 영역 + DNS Private Resolver(인바운드 + 아웃바운드) | 온-프레미스는 Azure 프라이빗 이름을 확인하고, Azure는 온-프레미스 Active Directory 이름을 확인합니다. |
| 중앙 집중식 허브 DNS | 허브 VNet 내 DNS 프라이빗 리졸버 + 스포크에 연결된 전달 규칙 세트 | 모든 DNS 확인이 중앙 집중식 로깅 및 제어를 위해 허브를 통해 라우팅되는 허브-스포크 토폴로지입니다. |
| 방화벽 매개 DNS | Azure Firewall DNS 프록시 + 프라이빗 DNS 영역 | FQDN 필터링을 위해 방화벽을 사용하는 환경. 방화벽은 DNS를 가로채 네트워크 규칙에 사용할 FQDN-IP 확인이 일관되게 이루어지도록 합니다. |
| 전체 보안 스택 | 모든 이전 옵션 및 DNS 보안 정책 | 하이브리드 해결, FQDN 필터링 및 DNS 계층 위협 방지가 필요한 엔터프라이즈 환경. |
프라이빗 엔드포인트 DNS 영역 예제
다음 표에서는 일반적인 Azure 서비스 및 필요한 프라이빗 DNS 영역 이름을 나열합니다.
| Azure 서비스 | 프라이빗 DNS 영역 이름 |
|---|---|
| Azure Blob Storage (애저 블롭 스토리지) | privatelink.blob.core.windows.net |
| Azure SQL 데이터베이스 | privatelink.database.windows.net |
| Azure Key Vault (애저 키 볼트) | privatelink.vaultcore.azure.net |
| Azure Files | privatelink.file.core.windows.net |
| Azure Container Registry (애저 컨테이너 레지스트리) | privatelink.azurecr.io |
| Azure Cosmos DB(SQL API) | privatelink.documents.azure.com |
메모
모든 Azure 서비스에 대한 프라이빗 DNS 영역 이름의 전체 목록은 Azure 프라이빗 엔드포인트 DNS 구성을 참조하세요.
사전 요구 사항
DNS 보안 및 개인 이름 확인을 구현하기 전에 다음이 있는지 확인합니다.
- 가상 네트워크: 모든 DNS 기능은 가상 네트워크 내에서 또는 가상 네트워크 간에 작동합니다. 기본 지침 은 가상 네트워크 및 서브넷 을 참조하세요. (F1)
- 하이브리드 시나리오에 대한 네트워크 연결: DNS 프라이빗 확인자 인바운드 엔드포인트에는 온-프레미스(ExpressRoute 또는 VPN)에서 확인자 VNet으로의 네트워크 연결 가능성이 필요합니다.
-
DNS Private Resolver 전용 서브넷: 각 엔드포인트(인바운드 및 아웃바운드)에는 자체 서브넷이 위임되어야 합니다
Microsoft.Network/dnsResolvers. 각 엔드포인트 서브넷에 대해 적어도 /28을 계획합니다. -
배포된 프라이빗 엔드포인트(privatelink 영역을 사용하는 경우): 이름에 대한
privatelink.*프라이빗 DNS 영역은 프라이빗 엔드포인트가 있는 경우에만 값을 제공합니다. 배포 지침은 프라이빗 엔드포인트를 사용한 프라이빗 PaaS 액세스를 참조하세요. (C5) - 배포된 Azure Firewall(DNS 프록시를 사용하는 경우): DNS 프록시 기능에는 기존 Azure Firewall 인스턴스가 필요합니다. Azure Firewall 및 트래픽 검사를 참조하세요. (S1)
- 권한: 프라이빗 DNS 영역 관리를 위한 DNS 영역 기여자 역할. DNS Private Resolver 배포에 대한 네트워크 기여자입니다.
보안 고려 사항
DNS는 전용 컨트롤이 필요한 특정 공격 벡터를 도입합니다. 다음 섹션에서는 반출 위험, 위협 인텔리전스 기반 차단, 방화벽 DNS 프록시 동작 및 DNSSEC 제한 사항에 대해 설명합니다.
DNS 반출 위험
DNS 터널링에서는 DNS 쿼리의 데이터를 인코딩하여 제한되지 않은 프로토콜을 통해 정보를 전송합니다. 대부분의 네트워크는 아웃바운드 DNS(UDP/TCP 53)를 허용하므로 공격자는 DNS를 비밀 채널로 사용합니다. 다음을 통해 이 위험을 완화합니다.
- Azure Firewall DNS 프록시를 사용하도록 설정하고 방화벽을 통해 모든 DNS 트래픽을 라우팅합니다. 방화벽은 모든 DNS 쿼리를 기록하므로 분석을 통해 터널링을 검색할 수 있습니다.
- DNS 보안 정책을 적용하여 알려진 반출 도구 및 명령 및 제어 인프라와 관련된 도메인의 확인을 차단합니다.
- 비정상적으로 긴 하위 도메인 레이블, 단일 도메인에 대한 높은 쿼리 볼륨 또는 최근에 등록된 도메인에 대한 쿼리와 같은 이상에 대한 Azure Monitor DNS 쿼리 패턴을 모니터링합니다.
DNS 보안 정책
Microsoft 위협 인텔리전스를 사용하는 DNS 보안 정책은 VNet 수준에서 알려진 악성 도메인에 대한 DNS 확인을 차단합니다. 워크로드가 MSRC(Microsoft 보안 대응 센터 플래그가 지정된 도메인을 확인하려고 하면 네트워크 연결이 발생하기 전에 정책이 확인을 차단합니다. 이 컨트롤은 Azure Firewall 독립적으로 작동하며 개별 워크로드 구성을 변경할 필요가 없습니다.
주요 특징:
- MSRC에서 제공되는 Microsoft 위협 인텔리전스 피드를 사용합니다.
- DNS 확인 계층에서 작동합니다. 트래픽이 아닌 쿼리를 차단합니다.
- VNet당 적용됨: 인터넷에 액세스하는 워크로드를 포함하는 모든 VNet에서 사용하도록 설정합니다.
- 방화벽 FQDN 필터링과 구별: DNS 보안 정책은 방화벽 배포 없이 악의적인 도메인을 전역적으로 차단합니다.
방화벽 DNS 프록시 및 FQDN 필터링
Azure Firewall DNS 프록시는 네트워크 규칙의 FQDN 기반 필터링에 필요합니다. DNS 프록시가 없으면 클라이언트 VM의 DNS 요청이 방화벽의 확인과 다른 시간에 해결되어 IP-FQDN 매핑 및 규칙 불일치가 발생할 수 있습니다.
DNS 프록시를 사용하도록 설정하는 경우:
- 방화벽 개인 IP를 DNS 서버로 사용하도록 스포크 VM을 구성합니다.
- 방화벽은 클라이언트를 대신하여 쿼리를 확인하고 결과를 캐시합니다(양수 캐시는 최대 1시간, 음수 캐시는 최대 30분).
- FQDN-to-IP 매핑은 15초마다 새로 고쳐집니다. 방화벽은 15분 후에 부실 항목을 제거합니다.
- 애플리케이션 규칙(L7)은 FQDN 일치에 SNI(서버 이름 표시)를 사용하며 DNS 프록시가 필요하지 않습니다. 네트워크 규칙(L4)에는 FQDN 확인을 위한 DNS 프록시가 필요합니다.
- 네트워크 규칙의 FQDN 필터링은 정확한 도메인 일치만 지원합니다. 와일드카드 패턴은 네트워크 규칙 FQDN에서 지원되지 않습니다. 와일드카드 FQDN 일치에 애플리케이션 규칙을 사용합니다.
메모
구성된 모든 업스트림 DNS 서버를 사용할 수 없게 되면 Azure Firewall DNS 프록시가 대체 확인자로 대체되지 않습니다. 하나 이상의 업스트림 서버가 복구될 때까지 DNS 확인이 실패합니다. 업스트림 구성에 DNS 서버 이중화를 계획하세요.
Caution
DNS 프록시를 사용하도록 설정하지만 방화벽을 DNS 서버로 사용하도록 클라이언트 VM을 구성하지 않으면 FQDN 기반 네트워크 규칙이 제대로 작동하지 않습니다. 클라이언트와 방화벽은 동일한 FQDN에 대해 서로 다른 IP를 확인하여 예기치 않은 트래픽이 감소할 수 있습니다.
DNSSEC 제한 사항
Azure DNS 현재 프라이빗 영역에 대한 DNSSEC 유효성 검사를 지원하지 않습니다. Azure DNS 호스트되는 공용 영역은 신뢰할 수 있는 응답에 대한 DNSSEC 서명을 지원하지만 Azure 가상 네트워크 내에서 재귀 확인은 DNSSEC 유효성 검사를 수행하지 않습니다. 보안 요구 사항에서 DNSSEC 유효성 검사를 요구하는 경우 유효성 검사를 지원하는 사용자 지정 DNS 확인자를 사용하여 평가하거나 애플리케이션 계층 확인을 구현합니다.
디자인 고려 사항
리프트 앤 시프트 DNS 설계 중점
- 온-프레미스 DNS 서버와 Azure DNS Private Resolver 간에 양방향 DNS 전달을 구성합니다.
- 온-프레미스에서 Azure에 호스팅된 이름에 대한 쿼리는 Azure에서 확인되고, Azure에서 온-프레미스 이름에 대한 쿼리는 기존 DNS 인프라를 통해 확인되도록 조건부 전달자를 사용합니다.
- 마이그레이션된 워크로드가 사용하는 각 Azure 서비스, 특히 프라이빗 엔드포인트 지원 서비스에 대한 프라이빗 DNS 영역을 만듭니다.
- 클라이언트 확인자 설정을 변경하는 대신 별칭 레코드 또는 CNAME 매핑을 사용하여 마이그레이션하는 동안 애플리케이션 DNS 동작을 유지합니다.
DNS 디자인 포커스 현대화
- 스포크 가상 네트워크에서 공유되는 전달 규칙 집합과 함께 Azure DNS Private Resolver를 사용하여 허브에서 DNS 확인을 중앙 집중화합니다.
- 다시 플랫폼화된 워크로드가 privatelink 이름을 자동으로 확인하게 되도록 각 프라이빗 엔드포인트 지원 PaaS 서비스에 대한 프라이빗 DNS 영역을 연결합니다.
- FQDN 기반 네트워크 규칙 및 워크로드 DNS 확인에서 일관된 캐시된 확인 경로를 사용하도록 Azure Firewall DNS 프록시를 사용하도록 설정합니다.
- 코드로 인프라를 채택할 때 프라이빗 DNS 영역에서 자동 등록 및 Azure RBAC를 사용하여 수동 레코드 관리를 줄입니다.
클라우드 간 DNS 디자인 포커스
- 클라우드 간 이름 확인을 위한 전달 제어 지점으로 Azure DNS Private Resolver를 사용합니다.
- 환경 간에 해결해야 하는 각 프라이빗 네임스페이스에 대해 Azure 프라이빗 DNS, AWS Route 53 Resolver 및 Google Cloud DNS 간에 조건부 전달을 구성합니다.
- TTL 값을 낮추고, 전달 경로의 유효성을 검사하고, CNAME 또는 A 레코드를 변경하고, 쿼리 대기 시간 및 캐시 동작을 모니터링하는 단계로 DNS 중단을 계획합니다.
- 연결된 플랫폼이 지원하는 신뢰할 수 있는 영역에 DNSSEC를 적용하고 프라이빗 확인 경로가 DNSSEC의 유효성을 검사하지 않는 위치를 문서화합니다.
관련된 문서
- 프라이빗 엔드포인트를 사용하여 프라이빗 PaaS 액세스: 프라이빗 엔드포인트 배포 및 프라이빗 링크 DNS 영역 구성
- Azure Firewall 및 트래픽 검사: 방화벽 DNS 프록시 구성 및 FQDN 필터링
- 가상 네트워크 및 서브넷: DNS 확인자 엔드포인트에 대한 서브넷 계획을 비롯한 VNet 기본 사항
- 허브-스포크 네트워크 토폴로지: 허브-스포크 아키텍처에서 중앙 집중식 DNS 확인
- 한눈에 디자인 단계: 계획, 연결, 보안 및 운영 결정에 대한 단계 기반 요약입니다.
자세히 알아보기
- Azure DNS 개요
- Azure 프라이빗 DNS 영역 개요
- Azure DNS Private Resolver 개요
- 프라이빗 엔드포인트 DNS 구성
- Azure Firewall DNS 설정
- Azure 가상 네트워크에서 리소스에 대한 이름 확인 처리
다음 단계
팁 (조언)
직접 탐색하시겠습니까? 개요 탐색기로 돌아가서 기능별로 다음 문서를 찾습니다.
리프트 앤 시프트 과정의 다음 단계:
아웃바운드 인터넷 트래픽 제어: Azure Firewall 통해 모든 아웃바운드 통신을 중앙 집중화하고 기본 아웃바운드 액세스를 해제합니다.
현대화 과정의 다음 단계:
프로덕션 모니터링 설정: 첫 날부터 프로덕션 준비에 Network Watcher 및 네트워크 성능 모니터 사용하도록 설정합니다.
멀티클라우드 여정의 다음 단계:
클라우드 간 전송 경로 보호: 보안 가상 허브에 Azure Firewall 배포하여 모든 클라우드 간, 분기 및 인터넷 바인딩된 트래픽을 검사합니다.