特定の IP アドレスまたは範囲から Azure Event Hubs 名前空間へのアクセスを許可します

既定では、要求に有効な認証と承認がある限り、Event Hubs 名前空間にはインターネットからアクセスできます。 これは IP ファイアウォールを使用して、さらに CIDR (クラスレス ドメイン間ルーティング) 表記の一連の IPv4 アドレスまたは IPv4 アドレス範囲のみに制限できます。

この機能は、Azure Event Hubs へのアクセスを特定の既知のサイトからのみに制限したいシナリオで役立ちます。 ファイアウォール規則を使用すると、特定の IPv4 アドレスから送信されたトラフィックを受け入れる規則を構成できます。 たとえば、Azure ExpressRoute で Event Hubs を使用する場合、オンプレミス インフラストラクチャ IP アドレスからのトラフィックのみ許可するファイアウォール規則を作成できます。

IP ファイアウォール規則

IP ファイアウォール規則は、Event Hubs 名前空間レベルで適用されます。 そのため、規則は、サポートされているプロトコルを使用するクライアントからのすべての接続に適用されます。 Event Hubs 名前空間上の許可 IP 規則に合致しない IP アドレスからの接続試行はすべて、未承認として拒否されます。 その応答に、IP 規則に関する記述は含まれません。 IP フィルター規則は順に適用され、IP アドレスと一致する最初の規則に基づいて許可アクションまたは拒否アクションが決定されます。

重要なポイント

  • この機能は Basic レベルではサポートされていません。
  • 許可されているパブリック IP アドレスで稼働中のサービスから要求が送信される場合を除き、Event Hubs 名前空間に対してファイアウォール規則を有効にすると、着信要求は既定でブロックされます。 ブロックされる要求には、他の Azure サービスからの要求、Azure portal からの要求、ログおよびメトリック サービスからの要求などが含まれます。 例外として、IP フィルターが有効になっている場合でも、特定の信頼できるサービスからの Event Hubs リソースへのアクセスを許可できます。 信頼できるサービスの一覧については、「信頼できる Microsoft サービス」を参照してください。
  • 指定した IP アドレスまたは仮想ネットワークのサブネットからのトラフィックのみを許可するには、名前空間に少なくとも 1 つの IP ファイアウォール規則または仮想ネットワーク規則を指定します。 IP 規則も仮想ネットワーク規則も指定しない場合は、パブリック インターネット経由で (アクセス キーを使用して) 名前空間にアクセスできます。

Azure Portal の使用

このセクションでは、Azure portal を使用して、Event Hubs 名前空間に対する IP ファイアウォール規則を作成する方法について説明します。

  1. Azure portalEvent Hubs 名前空間に移動します。

  2. 左側のメニューの [設定][ネットワーク] を選択します。

  3. [ネットワーク] ページの [パブリック ネットワーク アクセス] では、次の 3 つのオプションのいずれかを設定できます。 指定した IP アドレスからのアクセスのみを許可するには、[選択されたネットワーク] オプションを選択します。

    • Disabled。 このオプションでは、名前空間へのパブリック アクセスが無効になります。 名前空間には、プライベート エンドポイント経由でのみアクセスできます。

      Networking page - public access tab - public network access is disabled.

    • [選択されたネットワーク]。 このオプションでは、選択されたネットワークからアクセス キーを使用して名前空間にパブリック アクセスできます。

      重要

      [選択されたネットワーク] を選択した場合は、少なくとも 1 つの IP ファイアウォール規則、または対象の名前空間にアクセスできる仮想ネットワークを追加してください。 この名前空間へのすべてのトラフィックをプライベート エンドポイント経由のみに制限する場合は、[無効] を使用します。

      Networking page with the selected networks option selected.

    • [すべてのネットワーク] (既定)。 このオプションを選択すると、アクセス キーを使用して、すべてのネットワークからパブリックにアクセスできるようになります。 [すべてのネットワーク] オプションを選択した場合、イベント ハブはあらゆる IP アドレスからの (アクセス キーを使用した) 接続を受け入れます。 この設定は、IP アドレス範囲 0.0.0.0/0 を受け入れる規則と同じです。

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

  4. 特定の IP アドレスへのアクセスを制限するには、次の手順に従います。

    1. [ファイアウォール] セクションで、現在のクライアント IP にその名前空間へのアクセスを許可するには、[クライアント IP アドレスを追加する] オプションを選択します。

    2. [アドレス範囲] に、特定の IPv4 アドレスまたは IPv4 アドレスの範囲を CIDR 表記で入力します。

      特定の仮想ネットワークへのアクセスを制限するには、特定のネットワークからのアクセスの許可に関するページを参照してください。

    3. 信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可するかどうかを指定します。 詳細については、「信頼できる Microsoft サービス」を参照してください。

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

  5. ツール バーの [保存] を選択して設定を保存します。 ポータルの通知に確認が表示されるまで、数分間お待ちください。

    Note

    特定の仮想ネットワークへのアクセスを制限するには、特定のネットワークからのアクセスの許可に関する記事をご覧ください。

信頼できる Microsoft サービス

[信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可する] 設定を有効にした場合、同じテナント内の次のサービスに Event Hubs リソースへのアクセス権が与えられます。

信頼できるサービス サポートされる使用シナリオ
Azure Event Grid Event Hubs 名前空間のイベント ハブにイベントを送信することを Azure Event Grid に許可します。 次の手順も行う必要があります。
  • トピックまたはドメインに対してシステム割り当て ID を有効にする
  • Event Hubs 名前空間で Azure Event Hubs データ送信者ロールに ID を追加する
  • 次に、システムによって割り当てられた ID を使用するために、イベント ハブをエンドポイントとして使用するイベント サブスクリプションを構成する

詳細については、「マネージド ID を使用したイベント配信」を参照してください

Azure Monitor ([診断設定] と [アクション グループ]) Event Hubs 名前空間のイベント ハブに診断情報とアラート通知を送信することを Azure Monitor に許可します。 Azure Monitor では、イベント ハブから読み取ることができ、イベント ハブにデータを書き込むこともできます。
Azure Stream Analytics Event Hubs 名前空間のイベント ハブからのデータの読み取り (入力) またはイベント ハブへの書き込み (出力) を Azure Stream Analytics ジョブに許可します。

重要:Stream Analytics ジョブは、マネージド ID を使用してイベント ハブにアクセスするように構成されている必要があります。 詳細については、「Azure Stream Analytics ジョブからマネージド ID を使用してイベント ハブにアクセスする (プレビュー)」を参照してください。

Azure IoT Hub Event Hubs 名前空間のイベント ハブにメッセージを送信することを IoT Hub に許可します。 次の手順も行う必要があります。
  • IoT ハブのシステム割り当て ID を有効にする
  • Event Hubs 名前空間で Azure Event Hubs データ送信者ロールに ID を追加する。
  • その後、ID ベースの認証を使用するため、イベント ハブをカスタム エンドポイントとして使用するように IoT Hub を構成する。
Azure API Management

API Management サービスを使用すると、Event Hubs 名前空間のイベント ハブにイベントを送信できます。

Azure IoT Central

Event Hubs 名前空間のイベント ハブにデータをエクスポートすることを IoT Central に許可します。 次の手順も行う必要があります。

Resource Manager テンプレートの使用

重要

ファイアウォール機能は、Basic レベルではサポートされていません。

次の Resource Manager テンプレートでは、既存の Event Hubs 名前空間に IP フィルター規則を追加できます。

テンプレート内の ipMask は、1 つの IPv4 アドレスか、または CIDR 表記法で記述した IP アドレス ブロックです。 たとえば、CIDR 表記では、70.37.104.0/24 は 70.37.104.0 から 70.37.104.255 までの 256 個の IPv4 アドレスを表し、24 は範囲に対する有効プレフィックス ビット数を示します。

Note

defaultAction の既定値は Allow です。 仮想ネットワークまたはファイアウォール規則を追加するときは、必ず defaultActionDeny に設定します。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "eventhubNamespaceName": {
            "type": "String"
        }
    },
    "resources": [
        {
            "type": "Microsoft.EventHub/namespaces",
            "apiVersion": "2021-11-01",
            "name": "[parameters('eventhubNamespaceName')]",
            "location": "East US",
            "sku": {
                "name": "Standard",
                "tier": "Standard",
                "capacity": 1
            },
            "properties": {
                "disableLocalAuth": false,
                "zoneRedundant": true,
                "isAutoInflateEnabled": false,
                "maximumThroughputUnits": 0,
                "kafkaEnabled": true
            }
        },
        {
            "type": "Microsoft.EventHub/namespaces/networkRuleSets",
            "apiVersion": "2021-11-01",
            "name": "[concat(parameters('eventhubNamespaceName'), '/default')]",
            "location": "East US",
            "dependsOn": [
                "[resourceId('Microsoft.EventHub/namespaces', parameters('eventhubNamespaceName'))]"
            ],
            "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 の手順に従います。

重要

IP 規則も仮想ネットワーク規則も指定されていない場合は、defaultActiondeny に設定しても、すべてのトラフィックが名前空間に送られます。 名前空間には、パブリック インターネット経由で (アクセス キーを使用して) アクセスできます。 指定された IP アドレスまたは仮想ネットワークのサブネットからのトラフィックのみを許可するには、名前空間に少なくとも 1 つの IP 規則または仮想ネットワーク規則を指定します。

既定のアクションとパブリック ネットワーク アクセス

REST API

defaultAction プロパティの既定値は、defaultActionの API バージョンでは Deny でした。 ただし、IP フィルターまたは仮想ネットワーク (VNet) の規則を設定しない限り、拒否の規則は適用されません。 つまり、IP フィルターと VNet 規則のどちらも持っていなかった場合は、Allow として扱われます。

API バージョン 2021-06-01-preview 以降では、サービス側の適用を正確が反映されるよう、 プロパティの既定値は Allow です。 既定のアクションが Deny に設定されている場合は、IP フィルターと VNet 規則が適用されます。 既定のアクションが Allow に設定されている場合は、IP フィルターと VNet 規則が適用されません。 ルールをオフにしてから再度有効にしたときも、サービスではルールが記憶されています。

API バージョン 2021-06-01-preview 以降では、publicNetworkAccess という名前の新しいプロパティも導入されています。 これを Disabled に設定した場合は、操作がプライベート リンクのみに制限されます。 Enabled に設定した場合は、パブリック インターネット上で操作が許可されます。

これらのプロパティの詳細については、「ネットワーク 規則セットの作成または更新」および「プライベート エンドポイント接続の作成または更新」を参照してください。

注意

上記の設定ではいずれも、SAS または Azure AD 認証による要求の検証がバイパスされません。 認証チェックは、常に、defaultActionpublicNetworkAccessprivateEndpointConnections の設定で構成されたネットワーク チェックをサービスが検証した後に実行されます。

Azure portal

Azure portal は常に、最新の API バージョンを使用してプロパティを取得し、設定します。 以前に、Deny に設定し、IP フィルターと VNet 規則をまったく指定せずに 2021-01-01-preview 以前を使用していた場合は、Azure portal で、名前空間の [ネットワーク] ページの Deny がオンになっているはずです。 現在は、[すべてのネットワーク] オプションがオンになっています。

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

次のステップ

Event Hubs へのアクセスを Azure 仮想ネットワークに制約するには、次のリンクをご覧ください。