다음을 통해 공유


프라이빗 엔드포인트를 통한 Azure Service Bus 네임스페이스 액세스 허용

Azure Private Link Service를 사용하면 가상 네트워크의 프라이빗 엔드포인트를 통해 Azure 서비스(예: Azure Service Bus, Azure Storage 및 Azure Cosmos DB)와 Azure 호스팅 고객/파트너 서비스에 액세스할 수 있습니다.

프라이빗 엔드포인트는 Azure Private Link가 제공하는, 서비스에 비공개로 안전하게 연결하는 네트워크 인터페이스입니다. 프라이빗 엔드포인트는 가상 네트워크의 개인 IP 주소를 사용하여 서비스를 가상 네트워크에 효과적으로 제공합니다. 서비스에 대한 모든 트래픽은 프라이빗 엔드포인트를 통해 라우팅할 수 있으므로 게이트웨이, NAT 디바이스, ExpressRoute 또는 VPN 연결 또는 공용 IP 주소가 필요하지 않습니다. 가상 네트워크와 서비스 간의 트래픽은 Microsoft 백본 네트워크를 통해 이동하여 공용 인터넷에서 노출을 제거합니다. Azure 리소스의 인스턴스에 연결하여 액세스 제어에서 가장 높은 수준의 세분성을 제공할 수 있습니다.

자세한 내용은 Azure Private Link란?을 참조하세요.

중요 사항

  • 이 기능은 Azure Service Bus의 프리미엄 계층에서 지원됩니다. 프리미엄 계층에 대한 자세한 내용은 Service Bus 프리미엄 및 표준 메시징 계층 문서를 참조하세요.

  • 프라이빗 엔드포인트를 구현하면 다른 Azure 서비스가 Service Bus와 상호 작용하는 것을 방지할 수 있습니다. 예외적으로 프라이빗 엔드포인트가 활성화된 경우에도 특정 신뢰할 수 있는 서비스에서 Service Bus 리소스에 대한 액세스를 허용할 수 있습니다. 신뢰할 수 있는 서비스 목록은 신뢰할 수 있는 서비스를 참조하세요.

    다음 Microsoft 서비스는 가상 네트워크에 있어야 합니다.

    • Azure App Service
    • Azure 기능
  • 지정된 IP 주소 또는 가상 네트워크의 서브넷에서만 트래픽을 허용하도록 네임스페이스에 대해 하나 이상의 IP 규칙 또는 가상 네트워크 규칙을 지정합니다. IP 및 가상 네트워크 규칙이 없는 경우 액세스 키를 사용하여 퍼블릭 인터넷을 통해 네임스페이스에 액세스할 수 있습니다.

Azure Portal을 사용하여 프라이빗 엔드포인트 추가

필수 조건

Service Bus 네임스페이스를 Azure Private Link와 통합하려면 다음 엔터티 또는 사용 권한이 필요합니다.

  • Service Bus 네임스페이스
  • Azure 가상 네트워크
  • 가상 네트워크의 서브넷 기본 서브넷을 사용할 수 있습니다.
  • Service Bus 네임스페이스 및 가상 네트워크 모두에 대한 소유자 또는 기여자 권한입니다.

프라이빗 엔드포인트와 가상 네트워크는 동일한 지역에 있어야 합니다. 포털을 사용하여 프라이빗 엔드포인트에 대한 영역을 선택하면 해당 지역에 있는 가상 네트워크만 자동으로 필터링됩니다. Service Bus 네임스페이스는 다른 지역에 있을 수 있습니다. 또한 프라이빗 엔드포인트는 가상 네트워크에서 개인 IP 주소를 사용합니다.

네임스페이스를 만들 때 프라이빗 액세스 구성

네임스페이스를 만들 때 네임스페이스에 대한 퍼블릭 전용(모든 네트워크에서) 또는 프라이빗 전용(프라이빗 엔드포인트를 통해서만) 액세스를 허용할 수 있습니다.

네임스페이스 만들기 마법사의 네트워킹 페이지에서 프라이빗 액세스 옵션을 선택하는 경우 + 프라이빗 엔드포인트 단추를 선택하여 페이지에 프라이빗 엔드포인트를 추가할 수 있습니다. 프라이빗 엔드포인트를 추가하는 자세한 단계는 다음 섹션을 참조하세요.

프라이빗 액세스 옵션이 선택된 네임스페이스 만들기 마법사의 네트워킹 페이지를 보여 주는 스크린샷.

기존 네임스페이스에 대한 프라이빗 액세스 구성

기존 네임스페이스가 이미 있는 경우 다음 단계를 수행하여 프라이빗 엔드포인트를 만들 수 있습니다.

  1. Azure Portal에 로그인합니다.

  2. 검색 표시줄에 Service Bus를 입력합니다.

  3. 목록에서 프라이빗 엔드포인트를 추가하려는 네임스페이스를 선택합니다.

  4. 왼쪽 메뉴의 설정 아래에서 네트워킹 옵션을 선택합니다.

    참고 항목

    프리미엄 네임스페이스에 대해서만 네트워킹 탭이 표시됩니다.

  5. 네트워킹 페이지의 공용 네트워크 액세스에 대해 프라이빗 엔드포인트를 통해서만 네임스페이스에 액세스하려면 사용 안 함을 선택합니다.

  6. 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용하려면 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용에 대해 를 선택합니다.

    공용 네트워크 액세스가 사용 안 함으로 설정되어 있는 네트워킹 페이지의 스크린샷.

  7. 프라이빗 엔드포인트를 통해 네임스페이스에 대한 액세스를 허용하려면 페이지 맨 위에 있는 프라이빗 엔드포인트 연결 탭을 선택합니다.

  8. 페이지 위쪽에서 + 프라이빗 엔드포인트 단추를 선택합니다.

    프라이빗 엔드포인트 추가 단추

  9. 기본 페이지에서 다음 단계를 수행합니다.

    1. 프라이빗 엔드포인트를 만들려는 Azure 구독을 선택합니다.

    2. 프라이빗 엔드포인트 리소스에 대한 리소스 그룹을 선택합니다.

    3. 프라이빗 엔드포인트에 대한 이름을 입력합니다.

    4. 네트워크 인터페이스의 이름을 입력합니다.

    5. 프라이빗 엔드포인트에 대한 지역을 선택합니다. 프라이빗 엔드포인트는 가상 네트워크와 동일한 영역에 있어야 하지만 연결할 프라이빗 링크 리소스와 다른 영역에 있을 수 있습니다.

    6. 페이지 하단에서 다음: 리소스 > 단추를 선택합니다.

      프라이빗 엔드포인트 만들기 마법사의 기본 페이지를 보여 주는 스크린샷.

  10. 리소스 페이지에서 설정을 검토하고 페이지 아래쪽에서 다음: Virtual Network를 선택합니다.

    프라이빗 엔드포인트 만들기 마법사의 리소스 페이지를 보여 주는 스크린샷.

  11. Virtual Network 페이지에서 프라이빗 엔드포인트를 배포할 가상 네트워크의 서브넷을 선택합니다.

    1. 가상 네트워크를 선택합니다. 드롭다운 목록에 현재 선택한 구독 및 위치의 가상 네트워크만 나열됩니다.
    2. 선택한 가상 네트워크의 서브넷을 선택합니다.
    3. 프라이빗 엔드포인트에 대한 네트워크 정책이 비활성화되어 있습니다. 이를 사용하도록 설정하려면 편집을 선택하고 설정을 업데이트하고 저장을 선택합니다.
    4. 개인 IP 구성에는 기본적으로 동적으로 IP 주소 할당 옵션이 선택되어 있습니다. 고정 IP 주소를 할당하려면 고정적으로 IP 주소 할당*을 선택합니다.
    5. 애플리케이션 보안 그룹의 경우 기존 애플리케이션 보안 그룹을 선택하거나 프라이빗 엔드포인트와 연결할 애플리케이션 보안 그룹을 만듭니다.
    6. 페이지 하단에서 다음: DNS > 단추를 선택합니다.

    프라이빗 엔드포인트 만들기 마법사의 Virtual Network 페이지를 보여 주는 스크린샷.

  12. DNS 페이지에서 프라이빗 엔드포인트를 프라이빗 DNS 영역과 통합할지 여부를 선택한 후 다음: 태그를 선택합니다.

    프라이빗 엔드포인트 만들기 마법사의 DNS 페이지를 보여 주는 스크린샷.

  13. 태그 페이지에서 프라이빗 엔드포인트 리소스와 연결하려는 태그(이름 및 값)를 만듭니다. 그런 다음, 검토 + 만들기 단추를 페이지 아래쪽에서 선택합니다.

  14. 검토 + 만들기에서 모든 설정을 검토하고 만들기를 선택하여 프라이빗 엔드포인트를 만듭니다.

    프라이빗 엔드포인트 만들기 마법사의 검토 및 만들기 페이지를 보여 주는 스크린샷.

  15. 프라이빗 엔드포인트가 만들어졌는지 확인합니다. 리소스 소유자이고 연결 방법에 대해 내 디렉터리에서 Azure 리소스에 연결 옵션을 선택한 경우 엔드포인트 연결은 자동 승인이어야 합니다. 보류 중 상태인 경우 Azure Portal을 사용하여 프라이빗 엔드포인트 관리 섹션을 참조하세요.

    생성된 프라이빗 엔드포인트

신뢰할 수 있는 Microsoft 서비스

신뢰할 수 있는 Microsoft 서비스에서 이 방화벽을 무시하도록 허용 설정을 사용하도록 설정하면 다음 서비스에 Service Bus 리소스에 대한 액세스 권한이 부여됩니다.

신뢰할 수 있는 서비스 지원되는 사용 시나리오
Azure Event Grid Azure Event Grid에서 Service Bus 네임스페이스의 큐 또는 토픽에 이벤트를 보낼 수 있습니다. 다음 단계도 수행해야 합니다.
  • 항목 또는 도메인에 대해 시스템이 할당한 ID 사용
  • Service Bus 네임스페이스의 Azure Service Bus 데이터 보낸 사람 역할에 ID 추가
  • 그런 다음, 시스템 할당 ID를 사용하도록 Service Bus 큐 또는 토픽을 엔드포인트로 사용하는 이벤트 구독을 구성합니다.

자세한 내용은 관리 ID를 사용한 이벤트 전달을 참조하세요.

Azure Stream Analytics Azure Stream Analytics 작업이 Service Bus 에서 토픽으로 데이터를 출력하도록 허용합니다.

중요: 관리 ID를 사용하여 Service Bus 네임스페이스에 액세스하도록 Stream Analytics 작업을 구성해야 합니다. Service Bus 네임스페이스의 Azure Service Bus 데이터 보낸 사람 역할에 ID를 추가합니다.

Azure IoT Hub IoT Hub가 Service Bus 네임스페이스의 큐 또는 토픽에 메시지를 보낼 수 있도록 허용합니다. 다음 단계도 수행해야 합니다.
Azure API Management

API Management 서비스를 사용하면 Service Bus 네임스페이스의 Service Bus 큐/토픽에 메시지를 보낼 수 있습니다.

Azure IoT Central

IoT Central에서 데이터를 Service Bus 네임스페이스의 Service Bus 큐 또는 토픽으로 내보낼 수 있습니다. 다음 단계도 수행해야 합니다.

  • IoT Central 애플리케이션에 대해 시스템 할당 ID를 사용하도록 설정합니다.
  • Service Bus 네임스페이스의 Azure Service Bus 데이터 보낸 사람 역할에 ID를 추가합니다.
  • 그런 다음, ID 기반 인증을 사용하도록 Service Bus IoT Central 애플리케이션의 내보내기 대상을 구성합니다.
Azure Digital Twins Azure Digital Twins가 Service Bus 네임스페이스의 Service Bus 토픽에 데이터를 송신하도록 허용합니다. 다음 단계도 수행해야 합니다.

  • Azure Digital Twins 인스턴스에 대해 시스템 할당 ID를 사용하도록 설정합니다.
  • Service Bus 네임스페이스의 Azure Service Bus 데이터 보낸 사람 역할에 ID를 추가합니다.
  • 그런 다음, 시스템 할당 ID를 사용하여 인증하는 Azure Digital Twins 엔드포인트 또는 Azure Digital Twins 데이터 기록 연결을 구성합니다. Azure Digital Twins에서 Service Bus 리소스로 엔드포인트 및 이벤트 경로를 구성하는 방법에 대한 자세한 내용은 Azure Digital Twins 이벤트 라우팅Azure Digital Twins에서 엔드포인트 만들기를 참조하세요.
Azure Monitor(진단 설정 및 작업 그룹) Azure Monitor가 Service Bus 네임스페이스의 Service Bus에 진단 정보 및 경고 알림을 보내도록 허용합니다. Azure Monitor는 Service Bus 네임스페이스에서 데이터를 읽고 쓸 수 있습니다.
Azure Synapse Azure Synapse가 Synapse 작업 영역 관리 ID를 사용하여 서비스 버스에 연결하도록 허용합니다. Service Bus 네임스페이스의 ID에 Azure Service Bus 데이터 발신자, 수신자 및 소유자 역할을 추가합니다.

Azure Service Bus에 대한 다른 신뢰할 수 있는 서비스는 아래에서 찾을 수 있습니다.

  • Azure Data Explorer
  • Azure Health Data Services
  • Azure Arc
  • Azure Kubernetes
  • Azure Machine Learning
  • Microsoft Purview
  • Microsoft Defender for Cloud
  • Azure Provider Hub

신뢰할 수 있는 서비스가 네임스페이스에 액세스할 수 있도록 하려면 네트워킹 페이지에서 공용 액세스 탭으로 전환하고 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용하시겠습니까?에 대해 를 선택합니다.

PowerShell을 사용하여 프라이빗 엔드포인트 추가

다음 예에서는 Azure PowerShell을 사용하여 Service Bus 네임스페이스에 대한 프라이빗 엔드포인트 연결을 만드는 방법을 보여 줍니다.

프라이빗 엔드포인트와 가상 네트워크는 동일한 지역에 있어야 합니다. Service Bus 네임스페이스는 다른 지역에 있을 수 있습니다. 또한 프라이빗 엔드포인트는 가상 네트워크에서 개인 IP 주소를 사용합니다.


$rgName = "<RESOURCE GROUP NAME>"
$vnetlocation = "<VNET LOCATION>"
$vnetName = "<VIRTUAL NETWORK NAME>"
$subnetName = "<SUBNET NAME>"
$namespaceLocation = "<NAMESPACE LOCATION>"
$namespaceName = "<NAMESPACE NAME>"
$peConnectionName = "<PRIVATE ENDPOINT CONNECTION NAME>"

# create resource group
New-AzResourceGroup -Name $rgName -Location $vnetLocation 

# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
                    -ResourceGroupName $rgName `
                    -Location $vnetlocation `
                    -Name $vnetName `
                    -AddressPrefix 10.0.0.0/16

# create subnet with endpoint network policy disabled
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
                    -Name $subnetName `
                    -AddressPrefix 10.0.0.0/24 `
                    -PrivateEndpointNetworkPoliciesFlag "Disabled" `
                    -VirtualNetwork $virtualNetwork

# update virtual network
$virtualNetwork | Set-AzVirtualNetwork

# create premium service bus namespace
$namespaceResource = New-AzResource -Location $namespaceLocation -ResourceName $namespaceName -ResourceGroupName $rgName -Sku @{name = "Premium"; capacity = 1} -Properties @{} -ResourceType "Microsoft.ServiceBus/namespaces" -

# create a private link service connection
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
                                -Name $peConnectionName `
                                -PrivateLinkServiceId $namespaceResource.ResourceId `
                                -GroupId "namespace"

# get subnet object that you will use in the next step                                
$virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName  $rgName -Name $vnetName
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
                                | Where-Object  {$_.Name -eq $subnetName}  
   
# now, create private endpoint   
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $rgName  `
                                -Name $vnetName   `
                                -Location $vnetlocation `
                                -Subnet  $subnet   `
                                -PrivateLinkServiceConnection $privateEndpointConnection

(Get-AzResource -ResourceId $namespaceResource.ResourceId -ExpandProperties).Properties


Azure Portal을 사용하여 프라이빗 엔드포인트 관리

프라이빗 엔드포인트를 만들 때 연결이 승인되어야 합니다. 프라이빗 엔드포인트를 만드는 리소스가 디렉터리에 있는 경우 충분한 사용 권한이 있다면 연결 요청을 승인할 수 있습니다. 다른 디렉터리의 Azure 리소스에 연결하는 경우 해당 리소스의 소유자가 연결 요청을 승인할 때까지 기다려야 합니다.

다음 네 가지 프로비저닝 상태가 있습니다.

서비스 작업 서비스 소비자 프라이빗 엔드포인트 상태 설명
None 보류 중 연결이 수동으로 만들어지고, Private Link 리소스 소유자의 승인이 보류 중입니다.
승인 승인됨 연결이 자동 또는 수동으로 승인되었으며, 사용할 준비가 되었습니다.
거부 거부됨 Private Link 리소스 소유자가 연결을 거부했습니다.
제거 연결 끊김 Private Link 리소스 소유자가 연결을 제거했습니다. 프라이빗 엔드포인트는 정보를 제공하므로 정리를 위해 삭제해야 합니다.

프라이빗 엔드포인트 연결 승인, 거부 또는 제거

  1. Azure Portal에 로그인합니다.
  2. 검색 표시줄에 Service Bus를 입력합니다.
  3. 관리하려는 네임스페이스를 선택합니다.
  4. 네트워킹 탭을 선택합니다.
  5. 승인, 거부 또는 제거하려는 작업에 따라 다음 해당 섹션을 참조하세요.

프라이빗 엔드포인트 연결 승인

  1. 보류 중인 연결이 있으면 프로비전 상태가 보류 중인 연결이 나열됩니다.

  2. 승인하려는 프라이빗 엔드포인트를 선택합니다.

  3. 승인 단추를 선택합니다.

    프라이빗 엔드포인트 승인

  4. 연결 승인 페이지에서 선택적으로 주석을 추가하고 를 선택합니다. 아니요를 선택하면 아무 작업도 수행되지 않습니다.

    연결 승인 페이지

  5. 목록에서 연결의 상태가 승인됨으로 변경되어 있어야 합니다.

    연결 상태 - 승인됨

프라이빗 엔드포인트 연결 거부

  1. 이전에 승인된 기존 연결이든 아니면 보류 중인 요청이든지 거부하려는 프라이빗 엔드포인트 연결이 있는 경우 엔드포인트 연결을 선택하고 거부 단추를 선택합니다.

    거부 단추

  2. 연결 거부 페이지에서 선택적으로 주석을 추가하고 를 선택합니다. 아니요를 선택하면 아무 작업도 수행되지 않습니다.

    연결 거부 페이지

  3. 목록에서 연결의 상태가 거부됨으로 변경되어 있어야 합니다.

    엔드포인트가 거부됨

프라이빗 엔드포인트 연결 제거

  1. 프라이빗 엔드포인트 연결을 제거하려면 목록에서 해당 연결을 선택하고 도구 모음에서 제거를 선택합니다.

    제거 단추

  2. 연결 삭제 페이지에서 를 선택하여 프라이빗 엔드포인트의 삭제를 확인합니다. 아니요를 선택하면 아무 작업도 수행되지 않습니다.

    연결 삭제 페이지

  3. 상태가 연결 끊김으로 변경되어 있어야 합니다. 그러면 목록에서 엔드포인트가 사라지게 됩니다.

프라이빗 엔드포인트의 가상 네트워크 내에 있는 리소스가 개인 IP 주소를 통해 Service Bus 네임스페이스에 연결되고 프라이빗 DNS 영역 통합이 올바르게 통합되었는지 확인해야 합니다.

먼저 Azure Portal에서 Windows 가상 머신 만들기의 단계에 따라 가상 머신을 만듭니다.

네트워킹 탭에서 다음을 수행합니다.

  1. 가상 네트워크서브넷을 지정합니다. 프라이빗 엔드포인트를 배포한 가상 네트워크를 선택해야 합니다.
  2. 공용 IP 리소스를 지정합니다.
  3. NIC 네트워크 보안 그룹없음을 선택합니다.
  4. 부하 분산아니요를 선택합니다.

VM에 연결하고 명령줄을 열어 다음 명령을 실행합니다.

nslookup <service-bus-namespace-name>.servicebus.windows.net

결과가 다음과 같이 표시됩니다.

Non-authoritative answer:
Name:    <service-bus-namespace-name>.privatelink.servicebus.windows.net
Address:  10.0.0.4 (private IP address associated with the private endpoint)
Aliases:  <service-bus-namespace-name>.servicebus.windows.net

제한 사항 및 디자인 고려 사항

  • 가격 책정 정보는 Azure Private Link 가격 책정을 참조하세요.
  • 이 기능은 모든 Azure 퍼블릭 지역에서 사용할 수 있습니다.
  • Service Bus 네임스페이스당 최대 프라이빗 엔드포인트 수: 120.
  • 트래픽은 TCP 계층이 아닌 애플리케이션 계층에서 차단됩니다. 따라서 공용 액세스가 사용하지 않도록 설정되어 있어도 퍼블릭 엔드포인트에 대해 TCP 연결 또는 nslookup 작업이 성공하는 것을 볼 수 있습니다.

자세한 내용은 Azure Private Link 서비스: 제한 사항을 참조하세요.

다음 단계