Azure AppService를 생성하게 되면 기본적으로 만들어지는 도메인이 있다.
기본 도메인 : [appservicename].azurewebsites.net
해당 도메인(azurewebsites.net)은 Azure에서 관리하는 도메인이다.
기본 도메인을 사용하지 않고 사용자 지정 도메인을 설정해서 appservice에 접속하는 테스트를 진행하도록하겠다.
[테스트 내용]
1. 사용자 지정 도메인을 통한 AppService 접속
2. 사용자 지정 도메인이 설정 된 AppService에 Private endpoint를 구성하고 Private 네트워크를 통해서만 접근이 가능한지 테스트를 진행하겠다.
3. Azure Private DNS resolver를 통한 DNS 쿼리 및 관리
[사전 설정]
- Azure AppService 배포 (필수 조건에 대해서는 여기를 참고하기바란다.)
- 사용자 지정 도메인 구입 필요 (없을 경우 AppService 도메인 구입도 가능)
- 도메인 인증서 필요 (AppService 관리형 인증서 생성할 예정)
[테스트1번]
1. 사용자 지정 도메인 등록
여기서는 가비아에서 구입한 사용자 지정 도메인을 사용해서 실습을 진행하겠다.
- 사용자 지정 도메인 추가

-가비아 등록 도메인 설정

-사용자 지정 도메인 유효성 검사

- 사용자 지정 도메인 추가 확인
상태가 바인딩 없음으로 설정되어 있으므로 아직 인증서 작업이 진행되지 않았음을 뜻한다.
인증서 작업은 Azure AppService 무료 관리형 인증서를 통해서 진행하도록 하겠다.

2. 무료 관리형 인증서 만들기
- AppService 관리되는 인증서 추가

- 추가된 인증서 확인

- 생성한 인증서에 TLS/SSL 바인딩 추가


- AppService에 사용자 지정 도메인이 정상적으로 등록되어 접속 되는지 확인


- AppService Network 접근 테스트
현재 Public망을 통해서 AppService에 접근이 되고 있다.
private endpoint를 AppService에 구성하고 다시 테스트를 진행하도록 하겠다.

[테스트2번]
2. Private endpoint 구성
- 현재 Private endpoint를 AppService에 구성하였기때문에 해당 AppService에는 Private endpoint와 public endpoint가 존재하는 상태이다.
-공용 네트워크 액세스를 거부한 뒤 접속 테스트를 하여 Private IP를 통해서 접근되는지 테스트를 진행하겠다.

- 공용 네트워크 액세스 제한
사용안함 : 모든 네트워크는 Private endpoint를 통해서만 통신 가능


-Private 접속 테스트는 같은 가상 네트워크에 VM을 생성하여 테스트를 진행하겠다.
VM 생성 후 hostfile에 Private endpoint IP 주소와 사용자 지정 도메인을 추가 후 접근 테스트 진행했다.

[테스트 3번]
3. Private DNS Resolver 배포
- Private DNS Resolver의 Inbound endpoint를 배포할때 전용 subnet이 필요하다.
자세한 정보는 여기를 클릭하세요


- Inbound endpoint 확인
10.0.1.4의 정보를 온프렘 DNS 서버 조건부 설정에 추가하면 IP 기반으로 Resolver가 Azure Private DNS Zone에 대한 정보를 쿼리해서 찾아주게된다.

-온프레미스 DNS 서버 환경구성
[온프렘 DNS 서버 역할]
1) DNS 서버
2) VPN P2S 연결 및 AppService 접속 테스트
여기서는 위에서 구성했던 환경과 다른 가상네트워크에 DNS서버를 구축해서 온프레미스로 가정하고 테스트를 진행하겠다.
가상네트워크 이름 : vnet-terzmy-onprem
가상 머신 이름 : terzmy-onprem-vm


1. Root 인증서 생성
$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject "CN=P2SRootCert" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign
2. Client 인증서 생성
방법1) Root인증서 만든 콘솔에서 닫지 않은 상태에서 생성
New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
-Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" `
-Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")

- 가상네트워크 게이트웨이 생성
온프렘 DNS서버에서 위에 구성했던 가상네트워크에 VPN을 통해서 P2S 연결을 할 수 있도록하고 AppService 접속 테스트를 진행하겠다.
가상 네트워크 이름 : vnet-terzmy / GatewaySubnet (전용서브넷)

- VPN 생성 후 P2S 연결 설정


- 온프렘 DNS 서버에서 AppService 환경으로 VPN 연결

-azure portal에서 온프렘 DNS 서버 사용 설정
onprem으로 가정한 VM의 Private IP를 설정해준다.
해당 작업을 진행하지 않으면 azure에서 관리하는 auzre dns에 dns 쿼리를하게 된다.


- 온프렘 DNS 서버 조건부 설정
Azure Private DNS Resolver의 inbound IP를 설정해준다.
cheolee.store 도메인에 대한 쿼리 시에, 앞서만든 Inbound IP 10.0.1.4로 조회하도록 conditional forwarder를 설정한다.


- 사용자 지정 도메인 DNS 등록


- Onprem VM에서 Private network를 통해서 접속 테스트
웹브라우저로 접근

cmd로 nslookup 테스트

성공적으로 Private endpoint 10.0.0.4를 통해서 통신이 되고 접속이 되는 것을 볼 수 있다.
10.0.0.4를 통해서 통신이 되도록 하기 위해 온프레미스 DNS 작업을 진행하였고 Azure에서는 DNS 쿼리와 포워딩을 관리하기위해서 Azure Private DNS Resolver를 사용하였다.
'Azure' 카테고리의 다른 글
| Private Link를 통한 Azure PostgreSQL의 Private Networking (0) | 2024.07.03 |
|---|---|
| [Study] Azure PostgreSQL (0) | 2024.07.03 |
| Azure Private DNS Resolver (0) | 2024.06.18 |
| [Study] DTU와 vCore 차이점 (0) | 2024.06.13 |
| Azure DataFactory HOL (0) | 2024.06.05 |