특정 IP 주소 또는 범위에서 Azure Service Bus 네임스페이스에 대한 액세스 허용

기본적으로 요청에 유효한 인증 및 권한 부여가 포함되는 한 Service Bus 네임스페이스는 인터넷에서 액세스할 수 있습니다. IP 방화벽을 사용하면 인바운드 트래픽을 CIDR(Classless Inter-Domain Routing) 표기법으로 IPv4 주소 또는 IPv4 주소 범위 세트로 제한할 수 있습니다.

이 기능은 잘 알려진 특정 사이트에서만 Azure Service Bus에 액세스할 수 있는 시나리오에서 유용합니다. 방화벽 규칙을 사용하면 특정 IPv4 주소에서 발생하는 트래픽을 허용하도록 규칙을 구성할 수 있습니다. 예를 들어 Azure Express Route에서 Service Bus를 사용하는 경우 온-프레미스 인프라 IP 주소 또는 회사 NAT 게이트웨이 주소로부터의 트래픽만 허용하도록 방화벽 규칙을 만들 수 있습니다.

IP 방화벽 규칙

IP 방화벽 규칙은 Service Bus 네임스페이스 수준에 적용됩니다. 따라서 해당 규칙은 지원되는 모든 프로토콜(AMQP(5671) 및 HTTPS(443))을 사용하는 클라이언트의 모든 연결에 적용됩니다. Service Bus 네임스페이스에서 허용된 IP 규칙과 일치하지 않는 IP 주소의 연결 시도는 권한이 없는 것으로 거부됩니다. 응답은 IP 규칙을 언급하지 않습니다. IP 필터 규칙은 순서대로 적용되며 IP 주소와 일치하는 첫 번째 규칙이 수락 또는 거부 작업을 결정합니다.

중요 사항

  • Virtual Network는 Service Bus의 프리미엄 계층에서만 지원됩니다. 프리미엄 계층으로 업그레이드하는 것이 옵션이 아닌 경우 IP 방화벽 규칙을 사용할 수 있습니다. SAS(공유 액세스 서명) 토큰을 안전하게 보관하고 권한 있는 사용자만 공유하는 것이 좋습니다. SAS 인증에 대한 자세한 내용은 인증 및 권한 부여를 참조하세요.

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

  • 방화벽 규칙을 구현하면 다른 Azure 서비스가 Service Bus와 상호 작용하는 것을 방지할 수 있습니다. 예외적으로 IP 필터링이 사용으로 설정된 경우에도 특정 신뢰할 수 있는 서비스에서 Service Bus 리소스에 대한 액세스를 허용할 수 있습니다. 신뢰할 수 있는 서비스 목록은 신뢰할 수 있는 서비스를 참조하세요.

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

    • Azure App Service
    • Azure 기능

참고 항목

프리미엄 네임스페이스에 대해서만 네트워킹 탭이 표시됩니다. 다른 계층에 대한 IP 방화벽 규칙을 설정하려면 Azure Resource Manager 템플릿, Azure CLI, PowerShell 또는 REST API를 사용합니다.

Azure Portal 사용

네임스페이스를 만들 때 네임스페이스에 대한 퍼블릭 전용(모든 네트워크에서) 또는 프라이빗 전용(프라이빗 엔드포인트를 통해서만) 액세스를 허용할 수 있습니다. 네임스페이스가 만들어지면 특정 IP 주소 또는 특정 가상 네트워크(네트워크 서비스 엔드포인트 사용)에서 액세스를 허용할 수 있습니다.

네임스페이스를 만들 때 공용 액세스 구성

공용 액세스를 사용하도록 설정하려면 네임스페이스 만들기 마법사의 네트워킹 페이지에서 공용 액세스를 선택합니다.

Screenshot showing the Networking page of the Create namespace wizard with Public access option selected.

네임스페이스를 만든 후 Service Bus 네임스페이스 페이지의 왼쪽 메뉴에서 네트워킹을 선택합니다. 모든 네트워크 옵션이 선택되어 있는 것을 볼 수 있습니다. 선택한 네트워크 옵션을 선택하고 특정 IP 주소 또는 특정 가상 네트워크에서 액세스를 허용할 수 있습니다. 다음 섹션에서는 액세스가 허용되는 IP 주소를 지정하도록 IP 방화벽을 구성하는 방법에 대한 세부 정보를 제공합니다.

기존 네임스페이스에 대한 IP 방화벽 구성

이 섹션에서는 Azure Portal을 사용하여 Service Bus 네임스페이스에 대한 IP 방화벽 규칙을 만드는 방법을 보여 줍니다.

  1. Azure Portal에서 Service Bus 네임스페이스로 이동합니다.

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

    참고 항목

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

  3. 네트워킹 페이지에서 공용 네트워크 액세스에 대해 다음 세 가지 옵션 중 하나를 설정할 수 있습니다. 특정 IP 주소의 액세스만 허용하려면 선택한 네트워크 옵션을 선택합니다.

    • Disabled. 이 옵션은 네임스페이스에 대한 모든 공용 액세스를 사용하지 않도록 설정합니다. 네임스페이스는 프라이빗 엔드포인트를 통해서만 액세스할 수 있습니다.

      Screenshot that shows the Networking page of a namespace with public access disabled.

      신뢰할 수 있는 Microsoft 서비스가 방화벽을 무시하도록 허용할지 여부를 선택합니다. Azure Service Bus에 대한 신뢰할 수 있는 Microsoft 서비스 목록은 신뢰할 수 있는 Microsoft 서비스 섹션을 참조하세요.

    • 선택한 네트워크. 이 옵션은 선택한 네트워크의 액세스 키를 사용하여 네임스페이스에 대한 공용 액세스를 사용하도록 설정합니다.

      Important

      선택한 네트워크를 선택하는 경우 네임스페이스에 액세스할 수 있는 가상 네트워크 또는 IP 방화벽 규칙을 하나 이상 추가합니다. 프라이빗 엔드포인트를 통해서만 이 네임스페이스에 대한 모든 트래픽을 제한하려면 사용하지 않도록 설정를 선택합니다.

    • 모든 네트워크(기본값). 이 옵션은 액세스 키를 사용하여 모든 네트워크에서 공용 액세스를 사용하도록 설정합니다. 모든 네트워크 옵션을 선택하면 Service Bus는 액세스 키를 사용한 모든 IP 주소에서의 연결을 허용합니다. 이 설정은 0.0.0.0/0 IP 주소 범위를 수락하는 규칙과 같습니다.

  4. 지정된 IP 주소의 액세스만 허용하려면 선택한 네트워크 옵션을 선택합니다(아직 선택하지 않은 경우). 방화벽 섹션에서 다음 단계를 수행합니다.

    1. 클라이언트 IP 주소 추가 옵션을 선택하여 현재 클라이언트 IP에 네임스페이스에 대한 액세스 권한을 부여합니다.

    2. 주소 범위에 CIDR 표기법으로 특정 IPv4 주소 또는 IPv4 주소 범위를 입력합니다.

    3. 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 바이패스하도록 허용할지 여부를 지정합니다. Azure Service Bus에 대한 신뢰할 수 있는 Microsoft 서비스 목록은 신뢰할 수 있는 Microsoft 서비스 섹션을 참조하세요.

      Warning

      선택한 네트워크 옵션을 선택하고 이 페이지에 하나 이상의 IP 방화벽 규칙이나 가상 네트워크를 추가하지 않으면 액세스 키를 사용하여 퍼블릭 인터넷을 통해 네임스페이스에 액세스할 수 있습니다.

      Screenshot of the Azure portal Networking page. The option to allow access from Selected networks is selected and the Firewall section is highlighted.

  5. 도구 모음에서 저장을 선택하여 설정을 저장합니다. 포털 알림에 확인이 표시될 때가지 몇 분 정도 기다립니다.

    참고 항목

    특정 가상 네트워크에 대한 액세스를 제한하려면 특정 네트워크에서 액세스 허용을 참조하세요.

신뢰할 수 있는 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

Resource Manager 템플릿 사용

이 섹션에는 가상 네트워크 및 방화벽 규칙을 기존 Service Bus 네임스페이스에 추가하는 샘플 Azure Resource Manager 템플릿이 있습니다.

ipMask는 단일 IPv4 주소 또는 CIDR 표기법인 IP 주소 블록입니다. 예를 들어 CIDR 표기법으로 70.37.104.0/24는 70.37.104.0부터 70.37.104.255까지의 256개 IPv4 주소를 나타냅니다. 여기서 24는 범위에 대한 중요 접두사 비트의 수를 의미합니다.

참고 항목

defaultAction의 기본값은 Allow입니다. 가상 네트워크 또는 방화벽 규칙을 추가할 때 defaultActionDeny로 설정해야 합니다.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "namespace_name": {
            "defaultValue": "mypremiumnamespace",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.ServiceBus/namespaces",
            "apiVersion": "2022-10-01-preview",
            "name": "[parameters('namespace_name')]",
            "location": "East US",
            "sku": {
                "name": "Premium",
                "tier": "Premium",
                "capacity": 1
            },
            "properties": {
                "premiumMessagingPartitions": 1,
                "minimumTlsVersion": "1.2",
                "publicNetworkAccess": "Enabled",
                "disableLocalAuth": false,
                "zoneRedundant": true
            }
        },
        {
            "type": "Microsoft.ServiceBus/namespaces/networkRuleSets",
            "apiVersion": "2022-10-01-preview",
            "name": "[concat(parameters('namespace_name'), '/default')]",
            "location": "East US",
            "dependsOn": [
                "[resourceId('Microsoft.ServiceBus/namespaces', parameters('namespace_name'))]"
            ],
            "properties": {
                "publicNetworkAccess": "Enabled",
                "defaultAction": "Deny",
                "virtualNetworkRules": [],
                "ipRules": [
                    {
                        "ipMask": "10.1.1.1",
                        "action": "Allow"
                    },
                    {
                        "ipMask": "11.0.0.0/24",
                        "action": "Allow"
                    }
                ]
            }
        }
    ]
}

템플릿을 배포하려면 Azure Resource Manager에 대한 지침을 따르세요.

Important

IP와 가상 네트워크 규칙이 없으면 defaultActiondeny로 설정하더라도 모든 트래픽 흐름이 네임스페이스로 이동합니다. 퍼블릭 인터넷을 통해 네임스페이스에 액세스할 수 있습니다(액세스 키 사용). 지정된 IP 주소 또는 가상 네트워크의 서브넷에서만 트래픽을 허용하도록 네임스페이스에 대해 하나 이상의 IP 규칙 또는 가상 네트워크 규칙을 지정합니다.

Azure CLI 사용

az servicebus namespace network-rule-set 추가, 나열, 업데이트 및 제거 명령을 사용하여 Service Bus 네임스페이스에 대한 IP 방화벽 규칙을 관리합니다.

Azure PowerShell 사용

다음 Azure PowerShell 명령을 사용하여 IP 방화벽 규칙을 추가, 나열, 제거, 업데이트 및 삭제합니다.

기본 작업 및 공용 네트워크 액세스

REST API

defaultAction 속성의 기본값은 API 버전 2021-01-01-preview 이하의 경우 Deny입니다. 그러나 IP 필터 또는 VNet(가상 네트워크) 규칙을 설정하지 않으면 거부 규칙이 적용되지 않습니다. 즉, IP 필터 또는 VNet 규칙이 없는 경우 Allow로 처리됩니다.

API 버전 2021-06-01-preview부터 서비스 측 적용을 정확하게 반영하기 위해 defaultAction 속성의 기본값은 Allow입니다. 기본 작업이 Deny로 설정된 경우 IP 필터 및 VNet 규칙이 적용됩니다. 기본 작업이 Allow로 설정된 경우 IP 필터 및 VNet 규칙이 적용되지 않습니다. 서비스는 규칙을 껐다가 다시 켤 때 규칙을 기억합니다.

API 버전 2021-06-01-preview 이상에는 publicNetworkAccess라는 새 속성도 도입되었습니다. Disabled로 설정하면 작업이 프라이빗 링크로만 제한됩니다. Enabled로 설정하면 공용 인터넷을 통한 작업이 허용됩니다.

이러한 속성에 대한 자세한 내용은 네트워크 규칙 집합 만들기 또는 업데이트프라이빗 엔드포인트 연결 만들기 또는 업데이트를 참조하세요.

참고 항목

위의 설정 중 어느 것도 SAS 또는 Microsoft Entra 인증을 통한 클레임 유효성 검사를 무시하지 않습니다. 인증 유효성 검사는 항상 서비스가 defaultAction, publicNetworkAccess, privateEndpointConnections 설정으로 구성된 네트워크 유효성 검사의 유효성을 검사한 후에 실행됩니다.

Azure Portal

Azure Portal은 항상 최신 API 버전을 사용하여 속성을 가져오고 설정합니다. 이전에 defaultActionDeny로 설정하고 2021-01-01-preview 및 이전 버전을 사용하여 네임스페이스를 구성하고 0 IP 필터 및 VNet 규칙을 지정한 경우 포털은 이전에 네임스페이스의 네트워킹 페이지에서 선택한 네트워크를 확인했을 것입니다. 이제 모든 네트워크 옵션을 확인합니다.

Screenshot of the Azure portal Networking page. The option to allow access from All networks is selected on the Firewalls and virtual networks tab.

다음 단계

Service Bus에 대한 액세스를 Azure 가상 네트워크로 제한하려면 다음 링크를 참조하세요.