ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Azure] 가상 네트워크 서비스 엔드포인트를 이용한, 리소스에 대한 네트워크 액세스 제한
    Azure 2023. 4. 3. 10:04

    ** 참고문서 : https://learn.microsoft.com/ko-kr/azure/virtual-network/tutorial-restrict-network-access-to-resources

     

    자습서: 서비스 엔드포인트로 PaaS 리소스에 대한 액세스 제한 - Azure Portal

    이 자습서에서는 Azure Portal을 사용하여 가상 네트워크 서비스 엔드포인트로 Azure Storage와 같은 Azure 리소스에 대한 네트워크 액세스를 제한하는 방법을 알아봅니다.

    learn.microsoft.com


    가상 네트워크 서비스 엔드포인트를 사용하면,

    일부 Azure 서비스 리소스에 대한 네트워크 액세스를 가상 네트워크 서브넷으로 제한할 수 있다.


    #1. 가상 네트워크 만들기


    구독 구독을 선택합니다.
    Resource group 새로 만들기를 선택하고 myResourceGroup을 입력합니다.
    Name myVirtualNetwork를 입력합니다.
    지역 미국 동부를 선택합니다.

     


    2. 서비스 엔드포인트 사용

     

    서비스 엔드포인트는 서비스 단위, 서브넷 단위로 활성화된다.

    서브넷을 만들고 서비스 엔드포인트를 서브넷에 사용하도록 설정하려면 다음을 수행한다.

    속성 프라이빗
    서브넷 주소 범위 기본값으로 둡니다.
    서비스 엔드포인트 Microsoft.Storage를 선택합니다.
    서비스 엔드포인트 정책 기본값을 유지합니다. ‘0개 선택됨’

     

     


    3. 서브넷에 대한 네트워크 액세스 제한

    기본적으로 서브넷의 모든 가상 머신 인스턴스는 모든 리소스와 통신할 수 있다.

    네트워크 보안 그룹을 만들고, 서브넷에 연결하여, 서브넷에 있는 모든 리소스 간의 통신을 제한할 수 있다.


     

    [네트워크 보안 그룹 생성]

    구독 구독 선택
    리소스 그룹 목록에서 myResourceGroup을 선택합니다.
    이름 myNsgPrivate을 입력합니다.
    위치 미국 동부를 선택합니다.

     

    [아웃바운드 보안 규칙 생성]

     

    Azure Storage 서비스에 대해 아웃바운드 통신을 허용하는 규칙을 만든다.

     

    원본 서비스 태그를 선택합니다.
    원본 서비스 태그 VirtualNetwork를 선택합니다.
    원본 포트 범위 *
    대상 서비스 태그를 선택합니다.
    대상 서비스 태그 스토리지를 선택합니다.
    서비스 기본값을 ‘사용자 지정’으로 유지합니다.
    대상 포트 범위 445로 변경합니다. SMB 프로토콜은 이후 단계에서 만든 파일 공유에 연결하는 데 사용됩니다.
    프로토콜 모두
    작업 허용
    우선 순위 100
    이름 이름을 Allow-Storage-All로 바꿉니다.

     

     

     


    인터넷에 대한 통신을 거부하는 다른 아웃바운드 보안 규칙을 만든다.

    원본 서비스 태그를 선택합니다.
    원본 서비스 태그 VirtualNetwork를 선택합니다.
    원본 포트 범위 *
    대상 서비스 태그를 선택합니다.
    대상 서비스 태그 인터넷을 선택합니다.
    서비스 기본값을 ‘사용자 지정’으로 유지합니다.
    대상 포트 범위 *
    프로토콜 모두
    작업 기본값을 거부로 변경합니다.
    우선 순위 110
    속성 Deny-Internet-All로 변경합니다.


    어디서나 서브넷에 대한 RDP(원격 데스크톱 프로토콜) 트래픽을 허용하는 인바운드 보안 규칙을 만든다.

     


    이후 네트워크 보안 그룹 -> '설정' -> '서브넷' 선택한 다음, 연결을 선택한다.

    가상 네트워크 : myVirtualNetwork

    서브넷 : 프라이빗 

    선택 


    4. 리소스에 대한 네트워크 액세스 제한

     

    [#1. 스토리지 계정 생성]

    구독 구독 선택
    리소스 그룹 myResourceGroup을 선택합니다.
    스토리지 계정 이름 모든 Azure 위치에서 고유한 이름을 입력합니다. 이름은 길이가 3~24자이고 숫자와 소문자만 사용해야 합니다.
    지역 (미국) 미국 동부를 선택합니다.
    성능 표준
    중복 LRS(로컬 중복 스토리지)

    [#2. 스토리지 계정에 파일 공유 만들기]

    이름 my-file-share
    할당량 최댓값으로 설정을 선택합니다.
    계층 기본값 ‘트랜잭션 최적화됨’으로 유지합니다.

    데이터 스토리지에서 파일 공유를 선택한 다음, 파일 공유를 선택

    파일 공유에 대해 다음 값을 입력하거나 설정한 다음, 만들기를 선택


     

    [#3. 서브넷에 대한 네트워크 액세스 제한]

     

    기본적으로 스토리지 계정은 인터넷을 비롯하여, 네트워크에 있는 클라이언트의 네트워크 연결을 허용한다.

    인터넷 및 모든 가상 네트워크의 다른 모든 서브넷(myVirtualNetwork 가상 네트워크에 있는 프라이빗 서브넷 제외)으로부터의 네트워크 액세스를 제한할 수 있다.

     

    서브넷에 대한 네트워크 액세스를 제한하려면 다음을 수행한다.

     

    1. 스토리지 계정 -> 네트워킹 선택

    2. 방화벽 및 가상네트워크 탭에서 기존 가상 네트워크 추가 클릭

    3. 구독, 가상 네트워크(myVirtualNetwork), 서브넷(프라이빗) 선택 후 추가 

    4. 이후 스토리지 계정 -> 보안, 네트워킹 -> 액세스 키 클릭 후, 키 표시 선택 후 key 복사해놓는다.


    5. 가상머신 생성

    스토리지 계정에 대한 네트워크 액세스를 테스트하려면 각 서브넷에 VM을 배포한다.

     

    [#1. 첫 번째 가상머신]

     

    <기본사항>

    구독 구독 선택
    Resource group 이전에 만든 myResourceGroup을 선택합니다.
    가상 머신 이름 myVmPublic을 입력합니다.
    지역 (미국) 미국 동부
    가용성 옵션 가용성 영역
    가용성 영역 1
    이미지 OS 이미지를 선택합니다. 이 VM의 경우 Windows Server 2019 Datacenter - Gen1이 선택되었습니다.
    크기 사용하려는 VM 인스턴스 크기를 선택합니다.
    사용자 이름 선택한 사용자 이름을 입력합니다.
    암호 선택한 암호를 입력합니다. 암호는 12자 이상이어야 하며 정의된 복잡성 요구 사항을 충족해야 합니다.
    공용 인바운드 포트 선택한 포트 허용
    인바운드 포트 선택 RDP(3389) 로 설정된 기본값을 그대로 둡니다.

    <네트워킹>

    Virtual Network myVirtualNetwork를 선택합니다.
    서브넷 공용을 선택합니다.
    NIC 네트워크 보안 그룹 추가 고급을 선택합니다. 포털에서 포트 3389를 허용하는 네트워크 보안 그룹을 자동으로 만듭니다. 이후 단계에서 가상 머신에 연결하려면 이 포트가 열려 있어야 합니다.

     


    [#2. 두 번째 가상머신]

     

    <기본사항>

    첫 번째 가상머신과 동일하게 하되, 

     

    가상머신 이름 : myVMPrivate

    가상 네트워크 : VirtualNetwork

    서브넷 : Private 선택

    myVMPrivate, myVMPublic 가상머신 생성 완료


    6. 스토리지 계정에 대한 액세스 확인

     

    [myVMPrivate 가상머신]

     

    myVMPrivate 가상머신에 접속 후, RDP 연결을 한다.

    이후 Windows PowerShell을 오픈한다.

    $acctKey = ConvertTo-SecureString -String "<storage-account-key>" -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential -ArgumentList "Azure\<storage-account-name>", $acctKey
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\<storage-account-name>.file.core.windows.net\my-file-share" -Credential $credential

    <storage-account-key> : 아까 복사해놨던 스토리지 액세스 키

    <storage-account-name> : 스토리지 계정 이름

    해당 변수를, 값으로 변경해준다.

     

    코드를 입력하면, Azure 파일 공유가 Z 드라이브에 매핑된다.

     


    7. 스토리지 계정에 대한 액세스 거부 확인

     

    [myVMPublic 가상머신]

     

    myVMPublic 가상머신에 접속 후, RDP 연결을 한다.

    이후 Windows PowerShell을 오픈한다.

    $acctKey = ConvertTo-SecureString -String "<storage-account-key>" -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential -ArgumentList "Azure\<storage-account-name>", $acctKey
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\<storage-account-name>.file.core.windows.net\my-file-share" -Credential $credential

    아까와 같이 해당 코드를 입력하면, Azure 파일 공유가 Z 드라이브에 매핑되지 않는다.

    New-PSDrive : Access is denied 오류가 발생한다.

    myVmPublic VM이 'Public' 서브넷에 배포되었으므로 액세스가 거부되었다.

     

    해당 실습에서, 스토리지 계정은 공용 서브넷이 아닌 프라이빗 서브넷으로부터의 네트워크 액세스만을 허용하도록 설정하였으므로, 해당 오류를 반환하는 것이다.

    'Azure' 카테고리의 다른 글

    [Azure] Azure SQL Server 및 SQL Database  (1) 2024.12.24
    [Azure] Azure Bastion에 NSG 설정  (0) 2024.12.21
    [Azure] 네트워크 보안 그룹  (0) 2023.03.31
    [Azure] Virtual Network  (0) 2023.03.31
    [Azure] Bastion  (0) 2023.03.31
Designed by Tistory.