既定では、ユーザーは、要求に有効な認証と承認が含まれている限り、インターネットから Event Hubs 名前空間にアクセスできます。 IP ファイアウォールを使用すると、 CIDR (クラスレス Inter-Domain ルーティング) 表記の IPv4 および IPv6 アドレスまたはアドレス範囲のセットにのみアクセスを制限できます。
この機能は、Azure Event Hubs に特定の既知のサイトからのみアクセスできる必要があるシナリオで役立ちます。 ファイアウォール規則を使用すると、特定の IPv4 および IPv6 アドレスからのトラフィックを受け入れるように規則を構成できます。 たとえば、 Azure Express Route で Event Hubs を使用する場合は、オンプレミスのインフラストラクチャ IP アドレスからのトラフィックのみを許可する ファイアウォール規則 を作成できます。
IP ファイアウォール規則
IP ファイアウォール規則は、Event Hubs 名前空間レベルで指定します。 この規則は、サポートされているプロトコルを使用してクライアントからのすべての接続に適用されます。 Event Hubs 名前空間は、許可された IP ルールと一致しない IP アドレスからの接続試行を未承認として拒否します。 その応答に、IP 規則に関する記述は含まれません。 IP ファイアウォール規則は順番に適用され、IP アドレスに一致する最初の規則によって受け入れまたは拒否アクションが決まります。
重要なポイント
- この機能は、 Basic レベルではサポートされていません。
- Event Hubs 名前空間のファイアウォール規則を有効にすると、許可されたパブリック IP アドレスから動作しているサービスから要求が送信されない限り、ファイアウォールは既定で受信要求をブロックします。 ブロックされた要求には、他の Azure サービスからの要求、Azure portal からの要求、ログ記録やメトリック サービスからの要求などが含まれます。 例外として、IP フィルタリングが有効になっている場合でも、特定の 信頼されたサービス から Event Hubs リソースへのアクセスを許可できます。 信頼できるサービスの一覧については、「 信頼できる Microsoft サービス」を参照してください。
- 指定した IP アドレスまたは仮想ネットワークのサブネットからのトラフィックのみを許可するには、名前空間に少なくとも 1 つの IP ファイアウォール規則または仮想ネットワーク規則を指定します。 IP と仮想ネットワークの規則がない場合、ユーザーは (アクセス キーを使用して) パブリック インターネット経由で名前空間にアクセスできます。
Azure portal を使用してファイアウォール規則を構成する
名前空間を作成するときは、名前空間へのパブリックのみ (すべてのネットワークから) またはプライベートのみ (プライベート エンドポイントを介してのみ) のアクセスを許可できます。 名前空間を作成したら、(ネットワーク サービス エンドポイントを使用して) 特定の IP アドレスまたは特定の仮想ネットワークからのアクセスを許可できます。
名前空間の作成時にパブリック アクセスを構成する
パブリック アクセスを有効にするには、名前空間作成ウィザードの [ネットワーク] ページで [パブリック アクセス] を選択します。
名前空間を作成したら、[Event Hubs 名前空間] ページの左側のメニューで [ネットワーク] を選択します。
既定では、すべてのネットワークの名前空間に対して パブリック ネットワーク アクセス が有効 になっています。
このオプションでは、アクセス キーを使用して、すべてのネットワークからのパブリック アクセスを有効にします。 名前空間は、(アクセス キーを使用して) 任意の IP アドレスからの接続を受け入れます。
次のセクションでは、アクセスを許可する IP アドレスを指定するように IP ファイアウォール規則を構成する方法について詳しく説明します。
既存の名前空間の IP ファイアウォールを構成する
このセクションでは、Azure portal を使用して Event Hubs 名前空間の IP ファイアウォール規則を作成する方法について説明します。
Azure portal で Event Hubs 名前空間に移動します。
左側 の メニューの [設定] で [ネットワーク] を選択します。
[ネットワーク] ページで、[パブリック ネットワーク アクセス] で [管理] を選択します。
[ パブリック ネットワーク アクセス ] ページの [既定のアクション ] セクションで、[ 選択したネットワークから有効にする ] を選択して、指定した IP アドレスからのアクセスのみを許可します。
Important
選択したネットワークを選択した場合は、少なくとも 1 つの IP ファイアウォール規則または名前空間にアクセスできる仮想ネットワークを追加します。 プライベート エンドポイント経由でのみこの名前空間へのすべてのトラフィックを制限する場合は、[無効] を選択します。
[ IP アドレス] セクションで、[ クライアント IP アドレスの追加 ] オプションを選択して、現在のクライアント IP に名前空間へのアクセス権を付与します。
アドレス範囲には、特定の IPv4 または IPv6 アドレスまたはアドレス範囲を CIDR 表記で入力します。
Important
サービスが最終的に IPv6 のみをサポートするように切り替えたときにクライアントが中断されないように、許可されている IP アドレスの一覧に IPv6 アドレスを追加することをお勧めします。
[ 例外 ] セクションで、 信頼された Microsoft サービスにこのリソースへのアクセスを許可するかどうかを指定します。 詳細については、 信頼できる Microsoft サービス を参照してください。
ツール バーの [保存] を選択して設定を保存します。 ポータルの通知に確認が表示されるまで、数分間お待ちください。
Note
特定の仮想ネットワークへのアクセスを制限するには、特定のネットワークからのアクセスの許可に関する記事をご覧ください。
信頼できる Microsoft サービス
[信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可する] 設定を有効にした場合、同じテナント内の次のサービスに Event Hubs リソースへのアクセス権が与えられます。
| 信頼できるサービス | サポートされる使用シナリオ |
|---|---|
| Azure Event Grid | Event Hubs 名前空間のイベント ハブにイベントを送信することを Azure Event Grid に許可します。 次の手順も行う必要があります。
詳細については、「マネージド ID を使用したイベント配信」を参照してください |
| Azure Stream Analytics | Azure Stream Analytics ジョブが Event Hubs 名前空間内のイベント ハブからデータを読み取る (入力) または、イベント ハブにデータを書き込む (出力) ことができるようにします。 重要: Stream Analytics ジョブは、 マネージド ID を 使用してイベント ハブにアクセスするように構成する必要があります。 詳細については、「Azure Stream Analytics ジョブからマネージド ID を使用してイベント ハブにアクセスする (プレビュー)」を参照してください。 |
| Azure IoT Hub | Event Hubs 名前空間のイベント ハブにメッセージを送信することを IoT Hub に許可します。 次の手順も行う必要があります。
|
| Azure API Management | API Management サービスを使用すると、Event Hubs 名前空間のイベント ハブにイベントを送信できます。
|
| Azure Monitor ([診断設定] と [アクション グループ]) | Event Hubs 名前空間のイベント ハブに診断情報とアラート通知を送信することを Azure Monitor に許可します。 Azure Monitor では、イベント ハブから読み取ることができ、イベント ハブにデータを書き込むこともできます。 |
| Azure Synapse | Azure Synapse が Synapse ワークスペースのマネージド ID を使用してイベント ハブに接続できるようにします。 Azure Event Hubs データ送信者、受信者、または所有者のロールを Event Hubs 名前空間の ID に追加します。 |
| Azure Data Explorer | Azure Data Explorer でクラスターのマネージド ID を使用してイベント ハブからイベントを受信できるようにします。 次の手順を実行する必要があります。
|
| Azure IoT Central | Event Hubs 名前空間のイベント ハブにデータをエクスポートすることを IoT Central に許可します。 次の手順も行う必要があります。
|
| Azure Health Data Services | Healthcare API の IoT コネクタで Event Hubs 名前空間から医療デバイス データを取り込み、構成済みの高速ヘルスケア相互運用性リソース (FHIR®) サービスにデータを保持できるようにします。 IoT コネクタは、マネージド ID を使用してイベント ハブにアクセスするように構成されている必要があります。 詳細については、IoT コネクタの概要 - Azure Healthcare API に関する記事を参照してください。 |
| Azure Digital Twins | Azure Digital Twins が Event Hubs 名前空間内のイベント ハブにデータを送信できるようにします。 次の手順も行う必要があります。
|
Azure Event Hubs 向けのその他の信頼できるサービスは次のとおりです。
- Azure Arc
- Azure Kubernetes
- Azure Machine Learning
- Microsoft Purview
Resource Manager テンプレートを使用してファイアウォール規則を構成する
Important
ファイアウォール機能は、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 です。 仮想ネットワークまたはファイアウォール規則を追加するときは、必ず defaultAction を Deny に設定します。
{
"$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 または仮想ネットワークルールを追加しない場合、 defaultAction を deny に設定した場合でも、すべてのトラフィックが名前空間に送信されます。 ユーザーは、(アクセス キーを使用して) パブリック インターネット経由で名前空間にアクセスできます。 指定した仮想ネットワークの IP アドレスまたはサブネットからのトラフィックのみを許可するには、名前空間に少なくとも 1 つの IP 規則または仮想ネットワーク規則を指定します。
Azure CLI を使用してファイアウォール規則を構成する
コマンド az eventhubs namespace network-rule-set 追加、一覧表示、更新、および削除を使用して、Event Hubs 名前空間の IP ファイアウォール規則を管理します。
Azure PowerShell を使用してファイアウォール規則を構成する
Set-AzEventHubNetworkRuleSet コマンドレットを使用して、1 つ以上の IP ファイアウォール規則を追加します。 記事の例:
$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
API バージョン 2021-01-01-preview 以前の場合、 defaultAction プロパティの既定値は Deny。 ただし、IP フィルターまたは仮想ネットワーク規則を設定しない限り、サービスは拒否規則を適用しません。 IP フィルターまたは仮想ネットワークルールを設定しない場合、サービスは既定のアクションを Allowとして扱います。
API バージョン 2021-06-01-preview 以降では、 defaultAction プロパティの既定値は Allowされ、サービス側の強制が正確に反映されます。 既定のアクションを Deny に設定すると、サービスによって IP フィルターと仮想ネットワーク規則が適用されます。 既定のアクションを Allow に設定した場合、サービスは IP フィルターと仮想ネットワーク規則を適用しません。 ルールをオフにしてから再度有効にしたときも、サービスではルールが記憶されています。
API バージョン 2021-06-01-preview 以降 では、 publicNetworkAccessという名前の新しいプロパティも導入されています。 このプロパティを Disabled に設定すると、操作はプライベート リンクのみに制限されます。
Enabled に設定した場合は、パブリック インターネット上で操作が許可されます。
これらのプロパティの詳細については、「 ネットワーク 規則セットの作成または更新 」および「 プライベート エンドポイント接続の作成または更新」を参照してください。
Note
上記のどの設定も、SAS または Microsoft Entra 認証による要求の検証をバイパスしません。 認証チェックは、サービスがネットワークチェックを検証し、それが defaultAction、publicNetworkAccess、および privateEndpointConnections 設定で構成されていることを確認した後に常に実行されます。
Azure portal
Azure portal は常に、最新の API バージョンを使用してプロパティを取得し、設定します。
を defaultAction に設定して Denyのバージョンを使用して名前空間を構成し、IP フィルターと仮想ネットワーク規則を 0 個指定した場合、ポータルは以前に名前空間の [ネットワーク] ページで [選択されたネットワーク] をオンにしました。 次に、[ すべてのネットワーク ] オプションを確認します。
次のステップ
Event Hubs へのアクセスを Azure 仮想ネットワークに制限するには、次の記事を参照してください。