다음을 통해 공유


자습서: 가상 네트워크 서비스 엔드포인트를 사용하여 PaaS 리소스에 대한 네트워크 액세스 제한

가상 네트워크 서비스 엔드포인트를 사용하면 일부 Azure 서비스 리소스에 대한 네트워크 액세스를 가상 네트워크 서브넷으로 제한할 수 있습니다. 리소스에 대한 인터넷 액세스를 제거할 수도 있습니다. 서비스 엔드포인트는 가상 네트워크에서 지원되는 Azure 서비스로의 직접 연결을 제공하므로 가상 네트워크의 프라이빗 주소 공간을 사용하여 Azure 서비스에 액세스할 수 있습니다. 서비스 엔드포인트를 통해 Azure 리소스에 도달하는 트래픽은 항상 Microsoft Azure 백본 네트워크에 유지됩니다.

자습서에서 만들어진 Azure 리소스 다이어그램.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 하나의 서브넷이 있는 가상 네트워크 만들기
  • 서브넷을 추가하고 서비스 엔드포인트를 사용하도록 설정
  • Azure 리소스를 만들고 서브넷에서만 네트워크 액세스 허용
  • 각 서브넷에 VM(가상 머신) 배포
  • 서브넷에서 리소스에 대한 액세스 확인
  • 서브넷 및 인터넷에서 리소스에 대한 액세스가 거부되는지 확인

필수 조건

서비스 엔드포인트 사용

가상 네트워크 및 Azure 베스천 호스트 만들기

다음 프로시저에서는 리소스 서브넷, Azure Bastion 서브넷 및 베스천 호스트가 포함된 가상 네트워크를 만듭니다.

  1. 포털에서 가상 네트워크를 검색하여 선택합니다.

  2. 가상 네트워크 페이지에서 + 만들기를 선택합니다.

  3. 가상 네트워크 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group 새로 만들기를 선택합니다.
    이름으로 test-rg를 입력합니다.
    확인을 선택합니다.
    인스턴스 세부 정보
    Name vnet-1을 입력합니다.
    지역 미국 동부 2를 선택합니다.

    Azure Portal에서 가상 네트워크를 만들기 위한 기본 탭의 스크린샷.

  4. 다음을 선택하여 보안 탭으로 이동합니다.

  5. Azure Bastion 섹션에서 Azure Bastion 사용을 선택합니다.

    Bastion은 브라우저를 사용하여 개인 IP 주소를 사용하여 SSH(보안 셸) 또는 RDP(원격 데스크톱 프로토콜)를 통해 가상 네트워크의 VM에 연결합니다. VM에는 공용 IP 주소, 클라이언트 소프트웨어 또는 특수 구성이 필요하지 않습니다. 자세한 내용은 Azure Bastion이란?을 참조하세요.

    참고 항목

    시간당 가격은 아웃바운드 데이터 사용량에 관계없이 Bastion이 배포되는 순간부터 시작됩니다. 자세한 내용은 가격 책정SKU를 참조하세요. 자습서 또는 테스트의 일부로 Bastion을 배포하는 경우 이 리소스 사용을 마친 후 삭제하는 것이 좋습니다.

  6. Azure Bastion에서 다음 정보를 입력하거나 선택합니다.

    설정
    Azure Bastion 호스트 이름 bastion을 입력합니다.
    Azure Bastion 공용 IP 주소 공용 IP 주소 만들기를 선택합니다.
    이름에 public-ip-bastion을 입력합니다.
    확인을 선택합니다.

    Azure Portal에서 가상 네트워크를 만드는 과정에서 Azure 베스천 호스트를 사용하도록 설정하기 위한 옵션 스크린샷.

  7. 다음을 선택하여 IP 주소 탭으로 이동합니다.

  8. 서브넷의 주소 공간 입력란에서 기본 서브넷을 선택합니다.

  9. 서브넷 편집에서 다음 정보를 입력하거나 선택합니다.

    설정
    서브넷 목적 기본값인 기본값을 그대로 둡니다.
    속성 subnet-1을 입력합니다.
    IPv4
    IPv4 주소 범위 기본값인 10.0.0.0/16은 그대로 둡니다.
    시작 주소 기본값인 10.0.0.0을 그대로 둡니다.
    크기 기본값인 /24(256개 주소)를 그대로 둡니다.

    서브넷 구성 세부 정보 스크린샷.

  10. 저장을 선택합니다.

  11. 창 하단에서 검토 + 만들기를 선택합니다. 유효성 검사를 통과하면 만들기를 선택합니다.

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

  1. 포털 페이지 상단의 검색 상자에서 가상 네트워크를 검색합니다. 검색 결과에서 가상 네트워크를 선택합니다.

  2. 가상 네트워크에서 vnet-1을 선택합니다.

  3. vnet-1설정 섹션에서 서브넷을 선택합니다.

  4. + 서브넷을 선택합니다.

  5. 서브넷 추가 페이지에서 다음 정보를 입력하거나 선택합니다.

    설정
    속성 subnet-private
    서브넷 주소 범위 기본값인 10.0.2.0/24를 그대로 둡니다.
    서비스 엔드포인트
    Services Microsoft.Storage를 선택합니다.
  6. 저장을 선택합니다.

주의

리소스를 포함한 기존 서브넷에 서비스 엔드포인트를 사용하도록 설정하기 전에 서브넷 설정 변경을 참조하세요.

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

기본적으로 서브넷의 모든 가상 머신 인스턴스는 모든 리소스와 통신할 수 있습니다. 네트워크 보안 그룹을 만들고 서브넷에 연결하여 서브넷에 있는 모든 리소스 간에 통신을 제한할 수 있습니다.

  1. 포털 페이지 위쪽에 있는 검색 상자에서 네트워크 보안 그룹을 검색합니다. 검색 결과에서 네트워크 보안 그룹을 선택합니다.

  2. 네트워크 보안 그룹에서 + 만들기를 선택합니다.

  3. 네트워크 보안 그룹 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    이름 nsg-storage를 입력합니다.
    지역 미국 동부 2를 선택합니다.
  4. 검토 + 생성를 선택한 다음, 생성를 선택합니다.

아웃바운드 NSG(네트워크 보안 그룹) 규칙 만들기

  1. 포털 페이지 위쪽에 있는 검색 상자에서 네트워크 보안 그룹을 검색합니다. 검색 결과에서 네트워크 보안 그룹을 선택합니다.

  2. nsg-storage를 선택합니다.

  3. 설정에서 아웃바운드 보안 규칙을 선택합니다.

  4. +추가를 선택합니다.

  5. Azure Storage 서비스에 대해 아웃바운드 통신을 허용하는 규칙을 만듭니다. 아웃바운드 보안 규칙 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    원본 서비스 태그를 선택합니다.
    원본 서비스 태그 VirtualNetwork를 선택합니다.
    원본 포트 범위 *(기본값)을 그대로 둡니다.
    대상 서비스 태그를 선택합니다.
    대상 서비스 태그 스토리지를 선택합니다.
    서비스 사용자 지정(기본값)을 그대로 둡니다.
    대상 포트 범위 445를 입력합니다.
    프로토콜 모두를 선택합니다.
    작업 수락을 선택합니다.
    우선 순위 100(기본값)을 그대로 둡니다.
    이름 allow-storage-all을 입력합니다.

    스토리지에 액세스하기 위한 아웃바운드 보안 만들기의 스크린샷

  6. + 추가를 선택합니다.

  7. 인터넷에 대한 통신을 거부하는 다른 아웃바운드 보안 규칙을 만듭니다. 이 규칙은 아웃바운드 인터넷 통신을 허용하는 모든 네트워크 보안 그룹의 기본 규칙을 재정의합니다. 아웃바운드 보안 규칙 추가에서 다음 값을 사용하여 이전 단계를 완료합니다.

    설정
    원본 서비스 태그를 선택합니다.
    원본 서비스 태그 VirtualNetwork를 선택합니다.
    원본 포트 범위 *(기본값)을 그대로 둡니다.
    대상 서비스 태그를 선택합니다.
    대상 서비스 태그 인터넷을 선택합니다.
    서비스 사용자 지정(기본값)을 그대로 둡니다.
    대상 포트 범위 *를 입력합니다.
    프로토콜 모두를 선택합니다.
    작업 거부를 선택합니다.
    우선 순위 기본값인 110을 그대로 둡니다.
    이름 deny-internet-all을 입력합니다.

    인터넷 액세스를 차단하기 위한 아웃바운드 보안 만들기의 스크린샷

  8. 추가를 선택합니다.

  9. 포털 페이지 위쪽에 있는 검색 상자에서 네트워크 보안 그룹을 검색합니다. 검색 결과에서 네트워크 보안 그룹을 선택합니다.

  10. nsg-storage를 선택합니다.

  11. 설정에서 서브넷을 선택합니다.

  12. + 연결을 선택합니다.

  13. 서브넷 연결가상 네트워크에서 vnet-1을 선택합니다. 서브넷에서 subnet-private을 선택합니다.

    네트워크 보안 그룹과 연결된 프라이빗 서브넷의 스크린샷.

  14. 확인을 선택합니다.

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

서비스 엔드포인트에 사용하도록 설정된 Azure 서비스를 통해 만든 리소스에 대한 네트워크 액세스를 제한하는 데 필요한 단계는 서비스에 따라 달라집니다. 각 서비스에 대한 특정 단계는 개별 서비스의 설명서를 참조하세요. 이 자습서의 나머지 부분에는 Azure Storage 계정에 대한 네트워크 액세스를 제한하는 단계가 예제로 포함되어 있습니다.

저장소 계정 만들기

이 문서의 단계에 대한 Azure Storage 계정을 만듭니다. 스토리지 계정이 이미 있는 경우 대신 사용할 수 있습니다.

  1. 포털 맨 위에 있는 검색 상자에 스토리지 계정을 입력합니다. 검색 결과에서 스토리지 계정을 선택합니다.

  2. + 만들기를 선택합니다.

  3. 스토리지 계정 만들기기본 사항 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    구독 Azure 구독을 선택합니다.
    리소스 그룹 test-rg를 선택합니다.
    인스턴스 세부 정보
    스토리지 계정 이름 storage1을 입력합니다. 이름을 사용할 수 없는 경우 고유한 이름을 입력합니다.
    위치 (미국) 미국 동부 2를 선택합니다.
    성능 기본값인 표준을 그대로 둡니다.
    중복 LRS(로컬 중복 스토리지)를 선택합니다.
  4. 검토를 선택합니다.

  5. 만들기를 실행합니다.

스토리지 계정에 파일 공유 만들기

  1. 포털 맨 위에 있는 검색 상자에 스토리지 계정을 입력합니다. 검색 결과에서 스토리지 계정을 선택합니다.

  2. 스토리지 계정에서 이전 단계에서 만든 스토리지 계정을 선택합니다.

  3. 데이터 스토리지에서 파일 공유를 선택합니다.

  4. + 파일 공유를 선택합니다.

  5. 새 파일 공유에서 다음 정보를 입력하거나 선택합니다.

    설정
    속성 파일 공유를 입력합니다.
    계층 기본값인 트랜잭션 최적화를 그대로 둡니다.
  6. 다음: 백업을 선택합니다.

  7. 백업 사용을 선택 취소합니다.

  8. 검토 + 생성를 선택한 다음, 생성를 선택합니다.

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

기본적으로 스토리지 계정은 인터넷을 비롯하여 네트워크에 있는 클라이언트의 네트워크 연결을 허용합니다. 인터넷 및 모든 가상 네트워크의 다른 모든 서브넷(vnet-1 가상 네트워크에 있는 subnet-private 서브넷 제외)으로부터 네트워크 액세스를 제한할 수 있습니다.

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

  1. 포털 맨 위에 있는 검색 상자에 스토리지 계정을 입력합니다. 검색 결과에서 스토리지 계정을 선택합니다.

  2. 사용자의 스토리지 계정을 선택합니다.

  3. 보안 + 네트워킹에서 네트워킹을 선택합니다.

  4. 방화벽 및 가상 네트워크 탭의 공용 네트워크 액세스에서 선택한 가상 네트워크 및 IP 주소에서 사용을 선택합니다.

  5. 가상 네트워크에서 + 기존 가상 네트워크 추가를 선택합니다.

  6. 네트워크 추가에서 다음 정보를 입력하거나 선택합니다.

    설정
    Subscription 구독을 선택합니다.
    가상 네트워크 vnet-1을 선택합니다.
    서브넷 서브넷-프라이빗을 선택합니다.

    이전에 만든 서브넷 및 가상 네트워크에 대한 스토리지 계정 제한 스크린샷.

  7. 추가를 선택합니다.

  8. 저장을 선택하여 가상 네트워크 구성을 저장합니다.

    스토리지 계정 화면 스크린샷 및 서브넷 제한 확인.

서브넷에 가상 머신 배포

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

테스트 가상 머신 만들기

다음 절차에서는 가상 네트워크에 vm-1이라는 테스트 VM(가상 머신)을 만듭니다.

  1. 포털에서 가상 머신을 검색하여 선택합니다.

  2. 가상 머신에서 + 만들기를 선택한 다음, +Azure 가상 머신을 선택합니다.

  3. 가상 머신 만들기기본 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    프로젝트 세부 정보
    Subscription 구독을 선택합니다.
    Resource group test-rg를 선택합니다.
    인스턴스 세부 정보
    가상 머신 이름 vm-1을 입력합니다.
    지역 미국 동부 2를 선택합니다.
    가용성 옵션 인프라 중복이 필요하지 않습니다.를 선택합니다.
    보안 유형 기본값인 표준을 그대로 둡니다.
    이미지 Windows Server 2022 Datacente - x64 Gen2를 선택합니다.
    VM 아키텍처 x64(기본값)를 그대로 둡니다.
    크기 크기를 선택합니다.
    관리자 계정
    인증 유형 암호를 선택합니다.
    사용자 이름 azureuser를 입력합니다.
    암호 암호를 입력합니다.
    암호 확인 암호를 다시 입력합니다.
    인바운드 포트 규칙
    공용 인바운드 포트 없음을 선택합니다.
  4. 페이지 위쪽에 있는 네트워킹 탭을 선택합니다.

  5. 네트워킹 탭에서 다음 정보를 입력하거나 선택합니다.

    설정
    네트워크 인터페이스
    가상 네트워크 vnet-1을 선택합니다.
    서브넷 subnet-1(10.0.0.0/24)을 선택합니다.
    공용 IP 없음을 선택합니다.
    NIC 네트워크 보안 그룹 추가 고급을 선택합니다.
    네트워크 보안 그룹 구성 새로 만들기를 선택합니다.
    이름으로 nsg-1을 입력합니다.
    나머지는 기본값으로 두고 확인을 선택합니다.
  6. 나머지 설정은 기본값으로 두고 검토 + 만들기를 선택합니다.

  7. 설정을 검토하고 생성를 선택합니다.

참고 항목

베스천 호스트가 있는 가상 네트워크의 가상 머신에는 공용 IP 주소가 필요하지 않습니다. Bastion은 공용 IP를 제공하고 VM은 개인 IP를 사용하여 네트워크 내에서 통신합니다. 베스천 호스트된 가상 네트워크의 모든 VM에서 공용 IP를 제거할 수 있습니다. 자세한 내용은 Azure VM에서 공용 IP 주소 연결 해제를 참조하세요.

참고 항목

Azure는 공용 IP 주소가 할당되지 않았거나 내부 기본 Azure Load Balancer의 백 엔드 풀에 있는 VM에 대한 기본 아웃바운드 액세스 IP를 제공합니다. 기본 아웃바운드 액세스 IP 메커니즘은 구성할 수 없는 아웃바운드 IP 주소를 제공합니다.

다음 이벤트 중 하나가 발생하면 기본 아웃바운드 액세스 IP가 사용하지 않도록 설정됩니다.

  • 공용 IP 주소가 VM에 할당됩니다.
  • VM은 아웃바운드 규칙 유무에 관계없이 표준 Load Balancer의 백 엔드 풀에 배치됩니다.
  • Azure NAT Gateway 리소스는 VM의 서브넷에 할당됩니다.

유연한 오케스트레이션 모드에서 가상 머신 확장 집합을 사용하여 만드는 VM에는 기본 아웃바운드 액세스 권한이 없습니다.

Azure의 아웃바운드 연결에 대한 자세한 내용은 Azure의 기본 아웃바운드 액세스아웃바운드 연결에 SNAT(원본 네트워크 주소 변환) 사용을 참조하세요.

두 번째 가상 머신 만들기

  1. 이전 섹션의 단계를 반복하여 두 번째 가상 머신을 만듭니다. 가상 머신 만들기에서 다음 값을 바꿉니다.

    설정
    가상 머신 이름 vm-private을 입력합니다.
    서브넷 서브넷-프라이빗을 선택합니다.
    공용 IP 없음을 선택합니다.
    NIC 네트워크 보안 그룹 추가 없음을 선택합니다.

    Warning

    배포가 완료될 때까지 다음 단계로 진행하지 마세요.

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

subnet-private 서브넷에 할당된 이전에 만든 가상 머신은 스토리지 계정에 대한 액세스를 확인하는 데 사용됩니다. subnet-1 서브넷에 할당된 이전 섹션에서 만든 가상 머신은 스토리지 계정에 대한 액세스가 차단되어 있는지 확인하는 데 사용됩니다.

스토리지 계정 액세스 키 가져오기

  1. 포털 맨 위에 있는 검색 상자에 스토리지 계정을 입력합니다. 검색 결과에서 스토리지 계정을 선택합니다.

  2. 스토리지 계정에서 스토리지 계정을 선택합니다.

  3. 보안 + 네트워킹에서 액세스 키를 선택합니다.

  4. key1의 값을 복사합니다. 키를 표시하려면 표시 단추를 선택해야 할 수도 있습니다.

    스토리지 계정 액세스 키의 스크린샷.

  5. 포털 맨 위에 있는 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.

  6. vm-private을 선택합니다.

  7. 작업에서 Bastion을 선택합니다.

  8. 가상 머신을 만들 때 지정한 사용자 이름 및 암호를 입력합니다. 연결을 선택합니다.

  9. Windows PowerShell을 엽니다. 다음 스크립트를 사용하여 Azure 파일 공유를 Z 드라이브에 매핑합니다.

    • <storage-account-key>를 이전 단계에서 복사한 키로 바꿉니다.

    • <storage-account-name>을 스토리지 계정 이름으로 바꿉니다. 이 예제에서는 storage8675입니다.

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

    PowerShell에서 다음 예제 출력과 비슷한 출력을 반환합니다.

    Name        Used (GB)     Free (GB) Provider      Root
    ----        ---------     --------- --------      ----
    Z                                      FileSystem    \\storage8675.file.core.windows.net\f...
    

    Azure 파일 공유가 Z 드라이브에 매핑되었습니다.

  10. vm-private에 대한 Bastion 연결을 닫습니다.

스토리지 계정에 대한 액세스가 거부되는지 확인

vm-1에서

  1. 포털 맨 위에 있는 검색 상자에 가상 머신을 입력합니다. 검색 결과에서 가상 머신을 선택합니다.

  2. vm-1을 선택합니다.

  3. 작업에서 Bastion을 선택합니다.

  4. 가상 머신을 만들 때 지정한 사용자 이름 및 암호를 입력합니다. 연결을 선택합니다.

  5. 이전 명령을 반복하여 스토리지 계정의 파일 공유에 드라이브를 매핑하려고 시도합니다. 이 절차를 위해 스토리지 계정 액세스 키를 다시 복사해야 할 수도 있습니다.

    $key = @{
        String = "<storage-account-key>"
    }
    $acctKey = ConvertTo-SecureString @key -AsPlainText -Force
    
    $cred = @{
        ArgumentList = "Azure\<storage-account-name>", $acctKey
    }
    $credential = New-Object System.Management.Automation.PSCredential @cred
    
    $map = @{
        Name = "Z"
        PSProvider = "FileSystem"
        Root = "\\<storage-account-name>.file.core.windows.net\file-share"
        Credential = $credential
    }
    New-PSDrive @map
    
  6. 다음과 같은 오류 메시지가 나타납니다.

    New-PSDrive : Access is denied
    At line:1 char:5
    +     New-PSDrive @map
    +     ~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (Z:PSDriveInfo) [New-PSDrive], Win32Exception
        + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
    
  7. vm-1에 대한 Bastion 연결을 닫습니다.

로컬 컴퓨터에서

  1. 포털 맨 위에 있는 검색 상자에 스토리지 계정을 입력합니다. 검색 결과에서 스토리지 계정을 선택합니다.

  2. 스토리지 계정에서 스토리지 계정을 선택합니다.

  3. 데이터 스토리지에서 파일 공유를 선택합니다.

  4. 파일 공유를 선택합니다.

  5. 왼쪽 메뉴에서 찾아보기를 선택합니다.

  6. 다음과 같은 오류 메시지가 나타납니다.

    액세스 거부됨 오류 메시지의 스크린샷

참고 항목

컴퓨터가 vnet-1 가상 네트워크의 subnet-private 서브넷에 없기 때문에 액세스가 거부되었습니다.

만든 리소스 사용을 마치면 리소스 그룹과 해당 리소스를 모두 삭제할 수 있습니다.

  1. Azure Portal에서 리소스 그룹을 검색하고 선택합니다.

  2. 리소스 그룹 페이지에서 test-rg 리소스 그룹을 선택합니다.

  3. test-rg 페이지에서 리소스 그룹 삭제를 선택합니다.

  4. 삭제 확인을 위한 리소스 그룹 이름 입력test-rg를 입력한 다음 삭제를 선택합니다.

다음 단계

이 자습서에서:

  • 가상 네트워크 서브넷에 대해 서비스 엔드포인트를 사용하도록 설정했습니다.

  • 여러 Azure 서비스에서 배포된 리소스에 서비스 엔드포인트를 사용하도록 설정할 수 있음을 알았습니다.

  • Azure Storage 계정을 만들고 스토리지 계정에 대한 네트워크 액세스를 가상 네트워크 서브넷 내의 리소스로만 제한했습니다.

서비스 엔드포인트에 대한 자세한 내용은 서비스 엔드포인트 개요서브넷 관리를 참조하세요.

계정에 여러 가상 네트워크가 있는 경우 리소스가 서로 통신할 수 있도록 가상 네트워크 간에 연결을 설정하는 것이 좋습니다. 가상 네트워크를 연결하는 방법을 알아보려면 다음 자습서를 진행합니다.