-
[Azure] Azure Bastion에 NSG 설정Azure 2024. 12. 21. 16:47
Azure Bastion
Azure Bastion은 Microsoft Azure의 서비스로, 가상 머신에 대한 안전한 원격 액세스를 제공하는 플랫폼입니다.
이 서비스는 SSH(오픈 소스 보안 셸) 및 RDP(원격 데스크톱 프로토콜)를 사용하여 브라우저 기반의 원격 연결을 가능하게 합니다.
특징
Azure Bastion은 다음과 같은 주요 특징을 가지고 있습니다.
1. 보안성- 퍼블릭 IP 주소를 사용하지 않고도 가상 머신에 접근할 수 있어 보안이 강화됩니다. 모든 연결은 Azure의 내부 네트워크를 통해 이루어집니다.
2. 간편한 관리
- 별도의 클라이언트 소프트웨어 없이 브라우저를 통해 쉽게 접근할 수 있습니다. 이를 통해 관리자가 원격으로 가상 머신에 연결할 때의 복잡성을 줄일 수 있습니다.
3. 자동화된 업데이트
- Azure Bastion은 자동으로 업데이트 및 패치를 적용하여 최신 보안 상태를 유지합니다.
4. 통합
- Azure Portal과 통합되어 있어, 가상 머신에 쉽게 연결할 수 있습니다.
이 서비스를 사용하면 원격 관리와 유지보수를 더 안전하고 효율적으로 수행할 수 있습니다.
Azure Basiton에 NSG 설정
하기 문서에 기술된 규칙대로 NSG를 설정해야한다.
Azure Bastion 문제 해결 | Microsoft Learn
별도로 가상 네트워크, Bastion 전용 서브넷, Bastion 전용 공용 IP, Bastion 전용 NSG를 한꺼번에 배포할 수 있는 사용자 지정 템플릿을 제공하니, 해당 템플릿으로 배포해보자
Azure Bastion as a Service with NSG - Code Samples | Microsoft Learn
[Template으로 리소스 배포]
1. 하기 Docs에서 Deploy to Azure 클릭
Azure Bastion as a Service with NSG - Code Samples | Microsoft Learn
2. 배포에 필요한 정보 기입 후 '검토 + 만들기'
Bastion 전용 서브넷 생성 시, 서브넷 이름은 'AzureBastionSubnet' 대역대는 /26 이상
3. 정상적으로 배포 확인 (가상 네트워크, Bastion 전용 서브넷, Bastion 전용 공용 IP, Bastion 전용 NSG)
[Target VM이 위치할 서브넷 생성]
1. 생성된 가상 네트워크 > 서브넷 > Target VM이 위치할 서브넷 생성
가상 네트워크 : 10.100.0.0/16
AzureBastionSubnet : 10.100.1.0/26
default : 10.100.2.0/26
Bastion을 통해 Target VM에 접속하기 위해서는 같은 VNET 대역대 안에 위치해야한다.
[Bastion으로 접속할 Target VM 생성]
1. Azure Portal > 가상 머신 > 가상머신 생성에 필요한 정보 기입
해당 테스트에서는 RDP(3389)로 접속할 것이므로 Windows Server로 배포
접속 시 사용할 관리자 계정 정보 기입
공용 인바운드 포트 RDP(3389) 선택
디스크 선택 후 '다음 : 네트워킹 >'
기존에 생성한 가상 네트워크(vnet-krc-01), 서브넷(10.100.2.0/26) 지정
공용 IP : 없음 (Azure Bastion의 Private IP를 통해, Target VM의 Private IP로 접속)
네트워크 보안 그룹 : '기본'
공용 인바운드 포트 : 선택한 포트 허용 (RDP 3389)
이후 '검토 + 만들기'
가상머신 배포 완료
[BastionSubnet에 설정된 NSG 확인]
수신 트래픽
- AllowHttpInBound(퍼블릭 인터넷의 수신 트래픽)
- Azure Bastion은 수신 트래픽에 대한 공용 IP에서 443 포트를 사용하도록 설정하여야 하는 공용 IP를 만듭니다. AzureBastionSubnet에서는 3389/22 포트를 열 필요가 없습니다. 원본은 사용자가 지정한 인터넷 또는 공용 IP 주소 세트일 수 있습니다.
- AllowGatewayManagerInBound(Azure Bastion 컨트롤 플레인의 수신 트래픽)
- 컨트롤 플레인 연결의 경우 GatewayManager 서비스 태그에서 443 포트 인바운드를 사용하도록 설정합니다. 이를 통하여 게이트웨이 관리자인 컨트롤 플레인이 Azure Bastion과 통신할 수 있게 됩니다.
- AllowLoadBalancerInBound(Azure Load Balancer로부터의 수신 트래픽)
- 상태 프로브의 경우, AzureLoadBalancer 서비스 태그로부터의 포트 443 인바운드를 사용하도록 설정합니다. Azure Load Balancer의 연결을 검색할 수 있게 됩니다.
- AllowBastionHostCommunication(Azure Bastion 데이터 플레인으로부터의 수신 트래픽)
- Azure Bastion의 기본 구성 요소 간의 데이터 플레인의 경우, VirtualNetwork 서비스 태그로부터의 포트 8080, 5701 인바운드를 VirtualNetwork 서비스 태그로 사용하도록 설정합니다. Azure Bastion의 구성 요소끼리 통신할 수 있게 됩니다.
송신 트래픽:
- AllowSshRDPOutbound(대상 VM으로의 송신 트래픽)
- Azure Bastion은 개인 IP를 통하여 대상 VM에 도달합니다. NSG는 포트 3389와 포트 22의 다른 대상 VM 서브넷으로 향하는 송신 트래픽을 허용하여야 합니다. 표준 SKU 내에서 사용자 지정 포트 기능을 활용하는 경우 NSG가 서비스 태그 VirtualNetwork에 대한 아웃바운드 트래픽을 대상으로 허용하는지 확인합니다.
- AllowAzureCloudCommunication(Azure의 다른 퍼블릭 엔드포인트에 대한 송신 트래픽)
- Azure Bastion은 Azure 내의 다양한 퍼블릭 엔드포인트(예: 진단 로그 및 측광 로그 저장용)에 연결할 수 있어야 합니다. 따라서 Azure Bastion에는 AzureCloud 서비스 태그로 아웃바운드 443이 필요합니다.
- AllowBastionHostCommunication(Azure Bastion 데이터 플레인으로 가는 송신 트래픽)
- Azure Bastion의 기본 구성 요소 간의 데이터 플레인의 경우, VirtualNetwork 서비스 태그로부터의 포트 8080, 5701 아웃바운드를 VirtualNetwork 서비스 태그로 사용하도록 설정합니다. Azure Bastion의 구성 요소끼리 통신할 수 있게 됩니다.
- AllowGetSessionInformationOutBound(인터넷으로 가는 송신 트래픽)
- Azure Bastion이 세션, Bastion 공유 가능 링크 및 인증서 유효성 검사를 위하여 인터넷과 통신할 수 있어야 합니다. 따라서 인터넷으로 가는 포트 80 아웃바운드를 사용하도록 설정하는 것이 좋습니다.
[Target VM에 설정된 NSG 확인]
VM 생성 시 RDP(3389) 공용 인바운드 보안 규칙을 지정 후 생성하여
해당 규칙이 생성되었다.
[Target VM에 설정된 NSG 수정]
Bastion의 사설 IP만 인바운드 가능하게
Source에 BastionHost의 서브넷 대역대를 지정해보자
BastionHost의 서브넷 대역대 (10.100.1.0/26) 입력 후 저장
확인
[Bastion을 통해 Target VM 접속]
1. 가상 머신 > 베스천 > 관리자 계정 정보 입력 후 연결
2. 정상 접속 확인
[번외. 내 공인 IP만 Bastion을 통해 Target VM 접근 가능하도록 NSG 수정]
1. 내 공인 IP 확인
2. Bastion NSG 수정
AllowHttpInBound 규칙의 Source IP를 내 공인 IP로 변경해준다.
Bastion을 통해서 Target VM에 접속 시도해본다,
정상적으로 접속된다.
다른 IP로 Bastion 접근 시, 접근 자체가 안 되는 것을 확인!
사실 Azure Bastion 사용 시 NSG 설정은 선택사항이다.
그러나 혹시라도 ! 설정하고 싶은 사람이 있을까봐 공유하는 글!
'Azure' 카테고리의 다른 글
[Azure] Osdisk 크기 축소 (0) 2025.01.07 [Azure] Azure SQL Server 및 SQL Database (1) 2024.12.24 [Azure] 가상 네트워크 서비스 엔드포인트를 이용한, 리소스에 대한 네트워크 액세스 제한 (0) 2023.04.03 [Azure] 네트워크 보안 그룹 (0) 2023.03.31 [Azure] Virtual Network (0) 2023.03.31