특정 IP 주소나 범위에서 Azure Event Hubs 네임스페이스에 대한 액세스 허용

기본적으로 요청에 유효한 인증 및 권한 부여가 제공되는 한 Event Hubs 네임스페이스는 인터넷에서 액세스할 수 있습니다. IP 방화벽을 사용하면 이를 IPv4 및 IPv6 주소 집합 또는 CIDR(클래스 없는 도메인 간 라우팅) 표기법의 주소 범위로만 제한할 수 있습니다.

이 기능은 잘 알려진 특정 사이트에서만 Azure Event Hub에 액세스할 수 있는 시나리오에서 유용합니다. 방화벽 규칙을 사용하면 특정 IPv4 및 IPv6 주소에서 발생하는 트래픽을 허용하도록 규칙을 구성할 수 있습니다. 예를 들어 Azure Express Route와 함께 Event Hubs를 사용하는 경우 온-프레미스 인프라 IP 주소에서 오는 트래픽만 허용하도록 방화벽 규칙을 만들 수 있습니다.

IP 방화벽 규칙

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

중요 사항

  • 이 기능은 기본 계층에서 지원되지 않습니다.
  • Event Hubs 네임스페이스의 방화벽 규칙을 켜면 허용된 공용 IP 주소에서 작동하는 서비스에서 요청하는 경우를 제외하고, 기본적으로 들어오는 요청은 차단됩니다. 차단되는 요청에는 다른 Azure 서비스, Azure Portal, 로깅 및 메트릭 서비스 등의 요청이 포함됩니다. 예외적으로 IP 필터링이 사용으로 설정된 경우에도 특정 신뢰할 수 있는 서비스에서 Event Hubs 리소스에 대한 액세스를 허용할 수 있습니다. 신뢰할 수 있는 서비스 목록은 신뢰할 수 있는 Microsoft 서비스를 참조하세요.
  • 지정된 IP 주소 또는 가상 네트워크의 서브넷에서만 트래픽을 허용하도록 네임스페이스에 대해 하나 이상의 IP 방화벽 규칙 또는 가상 네트워크 규칙을 지정합니다. IP 및 가상 네트워크 규칙이 없는 경우 액세스 키를 사용하여 퍼블릭 인터넷을 통해 네임스페이스에 액세스할 수 있습니다.

Azure Portal 사용

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

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

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

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

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

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

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

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

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

  3. 네트워킹 페이지의 공용 네트워크 액세스에 대해 선택한 네트워크 옵션을 선택하여 지정된 IP 주소에서만 액세스를 허용합니다.

    공용 네트워크 액세스 페이지에서 사용할 수 있는 옵션에 대한 자세한 내용은 다음과 같습니다.

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

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

      Important

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

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

  4. 특정 IP 주소에 대한 액세스를 제한하려면 선택한 네트워크 옵션을 선택한 다음, 다음 단계를 수행합니다.

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

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

      Important

      나중에 서비스가 IPv6 연결 지원을 시작하고 클라이언트가 자동으로 IPv6 사용으로 전환하면 IPv6 주소가 아닌 IPv4 주소만 있으면 클라이언트가 중단됩니다. 따라서 서비스가 결국 IPv6 지원으로 전환될 때 클라이언트가 중단되지 않도록 지금 허용된 IP 주소 목록에 IPv6 주소를 추가하는 것이 좋습니다.

    3. 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 바이패스하도록 허용할지 여부를 지정합니다. 자세한 내용은 신뢰할 수 있는 Microsoft 서비스를 참조하세요.

      Firewall section highlighted in the Public access tab of the Networking page.

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

    참고 항목

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

신뢰할 수 있는 Microsoft 서비스

신뢰할 수 있는 Microsoft 서비스에서 이 방화벽을 무시하도록 허용 설정을 사용하면 동일한 테넌트 내의 다음 서비스에 Event Hubs 리소스에 대한 액세스 권한이 부여됩니다.

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

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

Azure Stream Analytics Azure Stream Analytics 작업이 Event Hubs 네임스페이스의 이벤트 허브에서 데이터를 읽거나(입력) 데이터를 작성(출력)할 수 있습니다.

중요: 관리 ID를 사용하여 이벤트 허브에 액세스하도록 Stream Analytics 작업을 구성해야 합니다. 자세한 내용은 관리 ID를 사용하여 Azure Stream Analytics 작업에서 이벤트 허브에 액세스(미리 보기)를 참조하세요.

Azure IoT Hub IoT Hub가 Event Hubs 네임스페이스의 이벤트 허브로 메시지를 보낼 수 있습니다. 다음 단계도 수행해야 합니다.
  • IoT 허브에 대해 시스템 할당 ID 사용
  • Event Hubs 네임스페이스에서 Azure Event Hubs 데이터 보낸 사람 역할에 ID를 추가합니다.
  • 그런 다음, ID 기반 인증을 사용하도록 이벤트 허브를 사용자 지정 엔드포인트로 사용하는 IoT Hub를 구성합니다.
Azure API Management

API Management 서비스를 사용하면 Event Hubs 네임스페이스의 이벤트 허브로 이벤트를 보낼 수 있습니다.

Azure Monitor(진단 설정 및 작업 그룹) Azure Monitor가 Event Hubs 네임스페이스의 이벤트 허브에 진단 정보 및 경고 알림을 보낼 수 있도록 합니다. Azure Monitor는 이벤트 허브에서 읽고 이벤트 허브에 데이터를 쓸 수도 있습니다.
Azure Synapse Azure Synapse가 Synapse 작업 영역 관리 ID를 사용하여 이벤트 허브에 연결할 수 있습니다. Event Hubs 네임스페이스의 ID에 Azure Event Hubs 데이터 보낸 사람, 받는 사람 또는 소유자 역할을 추가합니다.
Azure Data Explorer Azure Data Explorer가 클러스터의 관리 ID를 사용하여 이벤트 허브에서 이벤트를 수신할 수 있습니다. 다음 단계를 수행해야 합니다.
  • Azure Data Explorer에서 관리 ID 구성
  • 이벤트 허브의 ID에 Azure Event Hubs 데이터 수신기 역할을 부여합니다.
 
Azure IoT Central

IoT Central이 Event Hubs 네임스페이스의 이벤트 허브로 데이터를 내보낼 수 있습니다. 다음 단계도 수행해야 합니다.

  • IoT Central 애플리케이션에 대해 시스템 할당 ID를 사용하도록 설정합니다.
  • Event Hubs 네임스페이스에서 Azure Event Hubs 데이터 보낸 사람 역할에 ID를 추가합니다.
  • 그런 다음 ID 기반 인증을 사용하도록 Event Hubs IoT Central 애플리케이션의 내보내기 대상을 구성합니다.
Azure Health Data Services Healthcare API IoT 커넥터가 Event Hubs 네임스페이스에서 의료 디바이스 데이터를 수집하고 구성된 FHIR®(Fast Healthcare Interoperability Resources) 서비스에 데이터를 유지할 수 있도록 허용합니다. 관리 ID를 사용하여 이벤트 허브에 액세스하도록 IoT 커넥터를 구성해야 합니다. 자세한 내용은 IoT 커넥터 시작 - Azure Healthcare API를 참조하세요.
Azure Digital Twins Azure Digital Twins가 Event Hubs 네임스페이스의 이벤트 허브로 데이터를 송신할 수 있습니다. 다음 단계도 수행해야 합니다.

  • Azure Digital Twins 인스턴스에 대해 시스템 할당 ID를 사용하도록 설정합니다.
  • Event Hubs 네임스페이스에서 Azure Event Hubs 데이터 보낸 사람 역할에 ID를 추가합니다.
  • 그런 다음, 시스템 할당 ID를 사용하여 인증하는 Azure Digital Twins 엔드포인트 또는 Azure Digital Twins 데이터 기록 연결을 구성합니다. Azure Digital Twins에서 Event Hubs 리소스로 엔드포인트 및 이벤트 경로를 구성하는 방법에 대한 자세한 내용은 Azure Digital Twins 이벤트 라우팅Azure Digital Twins에서 엔드포인트 만들기를 참조하세요.

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

  • Azure Arc
  • Azure Kubernetes
  • Azure Machine Learning
  • Microsoft Purview

Resource Manager 템플릿 사용

Important

방화벽 기능은 기본 계층에서 지원되지 않습니다.

다음과 같은 Resource Manager 템플릿을 사용하면 기존 Event Hubs 네임스페이스에 IP 필터 규칙을 추가할 수 있습니다.

템플릿의 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": "contosoehub1333",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.EventHub/namespaces",
            "apiVersion": "2022-01-01-preview",
            "name": "[parameters('namespace_name')]",
            "location": "East US",
            "sku": {
                "name": "Standard",
                "tier": "Standard",
                "capacity": 1
            },
            "properties": {
                "minimumTlsVersion": "1.2",
                "publicNetworkAccess": "Enabled",
                "disableLocalAuth": false,
                "zoneRedundant": true,
                "isAutoInflateEnabled": false,
                "maximumThroughputUnits": 0,
                "kafkaEnabled": true
            }
        },
        {
            "type": "Microsoft.EventHub/namespaces/authorizationrules",
            "apiVersion": "2022-01-01-preview",
            "name": "[concat(parameters('namespace_name'), '/RootManageSharedAccessKey')]",
            "location": "eastus",
            "dependsOn": [
                "[resourceId('Microsoft.EventHub/namespaces', parameters('namespace_name'))]"
            ],
            "properties": {
                "rights": [
                    "Listen",
                    "Manage",
                    "Send"
                ]
            }
        },
        {
            "type": "Microsoft.EventHub/namespaces/networkRuleSets",
            "apiVersion": "2022-01-01-preview",
            "name": "[concat(parameters('namespace_name'), '/default')]",
            "location": "East US",
            "dependsOn": [
                "[resourceId('Microsoft.EventHub/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"
                    },
                    {
                        "ipMask": "172.72.157.204",
                        "action": "Allow"
                    }
                ]
            }
        }
    ]
}

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

Important

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

Azure CLI 사용

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

Azure PowerShell 사용

하나 이상의 IP 방화벽 규칙을 추가하려면 Set-AzEventHubNetworkRuleSet cmdlet을 사용합니다. 문서의 예:

$ipRule1 = New-AzEventHubIPRuleConfig -IPMask 2.2.2.2 -Action Allow
$ipRule2 = New-AzEventHubIPRuleConfig -IPMask 3.3.3.3 -Action Allow
$virtualNetworkRule1 = New-AzEventHubVirtualNetworkRuleConfig -SubnetId '/subscriptions/subscriptionId/resourcegroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVirtualNetwork/subnets/default'
$networkRuleSet = Get-AzEventHubNetworkRuleSet -ResourceGroupName myResourceGroup -NamespaceName myNamespace
$networkRuleSet.IPRule += $ipRule1
$networkRuleSet.IPRule += $ipRule2
$networkRuleSet.VirtualNetworkRule += $virtualNetworkRule1
Set-AzEventHubNetworkRuleSet -ResourceGroupName myResourceGroup -NamespaceName myNamespace -IPRule $ipRule1,$ipRule2 -VirtualNetworkRule $virtualNetworkRule1,$virtualNetworkRule2,$virtualNetworkRule3

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

REST API

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

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

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 필터 및 가상 네트워크 규칙을 지정한 경우 포털은 이전에 네임스페이스의 네트워킹 페이지에서 선택한 네트워크를 확인했을 것입니다. 이제 모든 네트워크 옵션을 확인합니다.

Screenshot that shows the Public access page with the All networks option selected.

다음 단계

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