既定では、要求に有効な認証と承認が含まれている限り、インターネットは Service Bus 名前空間にアクセスできます。 IP ファイアウォールを使用すると、 CIDR (クラスレス Inter-Domain ルーティング) 表記の IPv4 アドレスまたは IPv4 アドレス範囲のセットへの受信トラフィックを制限できます。
この機能は、Azure Service Bus に特定の既知のサイトからのみアクセスできる必要があるシナリオで役立ちます。 ファイアウォール規則を使用すると、特定の IPv4 アドレスから送信されたトラフィックを受け入れる規則を構成できます。 たとえば、Azure Express Route で Service Bus を使用する場合、お使いのオンプレミスのインフラストラクチャ IP アドレスまたは会社の NAT ゲートウェイのアドレスからのトラフィックのみ許可するファイアウォール規則を作成できます。
この記事では、Azure ポータル、Azure CLI、PowerShell、または ARM テンプレートを使用して、Service Bus名前空間の IP ファイアウォール規則を構成する方法について説明します。
IP ファイアウォール規則
IP ファイアウォール規則では、受信トラフィックを CIDR (クラスレス Inter-Domain ルーティング) 表記の IPv4 アドレスまたは IPv4 アドレス範囲のセットに制限します。
IP ファイアウォール規則は、Service Bus名前空間レベルで適用されます。 この規則は、 サポートされているプロトコル (AMQP (5671) と HTTPS (443) を使用するクライアントからのすべての接続に適用されます。 Service Busは、Service Bus名前空間の許可された IP 規則と一致しない IP アドレスからの接続試行を未承認として拒否します。 その応答に、IP 規則に関する記述は含まれません。 IP フィルター規則は順に適用され、IP アドレスと一致する最初の規則に基づいて許可アクションまたは拒否アクションが決定されます。
注
ネットワーク オプションは、Service Bus SKU によって異なります。 Standard SKU は IP フィルター処理をサポートしますが、"信頼されたサービス" オプションは含まれません。 Premium SKU ネットワーク機能については、専用の Premium SKU ネットワークドキュメントを参照してください。
重要なポイント
プライベート エンドポイントとサービス エンドポイントは、Service Bus の Premium レベルでのみサポートされます。 Premium レベルへのアップグレードがオプションではない場合は、Azure portal、Azure Resource Manager テンプレート、AzureCLI、PowerShell、または REST API を使用して IP ファイアウォール規則を使用できます。
指定した IP アドレスまたは仮想ネットワークのサブネットからのトラフィックのみを許可するには、名前空間に少なくとも 1 つの IP ファイアウォール規則または仮想ネットワーク規則を指定します。 IP と仮想ネットワークの規則がない場合、名前空間は (アクセス キーを使用して) パブリック インターネット経由でアクセスできます。
ファイアウォール規則を実装すると、他の Azure サービスが Service Bus と対話するのを禁止できます。 例外として、IP フィルターが有効になっている場合でも、特定の信頼できるサービスからの Service Bus リソースへのアクセスを許可できます。 信頼できるサービスの一覧については、信頼できるサービスに関するセクションを参照してください。
次のサービスは信頼済みサービスをサポートせず、代わりに VNet 統合と呼ばれる機能を利用して VNet 経由で発信呼び出しを行います。
- Azure App Service
- Azure Functions
詳細については、 アプリと Azure 仮想ネットワークの統合に関するページを参照してください。
Azure Portal の使用
名前空間を作成するときは、名前空間へのパブリックのみ (すべてのネットワークから) またはプライベートのみ (プライベート エンドポイントを介してのみ) のアクセスを許可できます。 名前空間が作成されたら、(ネットワーク サービス エンドポイントを使用して) 特定の IP アドレスまたは特定の仮想ネットワークからのアクセスを許可できます。
名前空間の作成時にパブリック アクセスを構成する
パブリック アクセスを有効にするには、名前空間の作成ウィザードの [ネットワーク] ページで [パブリック アクセス] を選択します。
名前空間を作成したら、[Service Bus 名前空間] ページの左側のメニューで [ネットワーク] を選択します。 [すべてのネットワーク] オプションが選択されていることがわかります。 [選択したネットワーク] オプションを選択し、特定の IP アドレスまたは特定の仮想ネットワークからのアクセスを許可できます。 次のセクションでは、IP ファイアウォールを構成して、アクセスを許可する IP アドレスを指定する方法について詳しく説明します。
既存の名前空間の IP ファイアウォールを構成する
このセクションでは、Azure portal を使用して、Service Bus 名前空間の IP ファイアウォール規則を作成する方法について説明します。
Azure portal で Service Bus 名前空間に移動します。
左側のメニューで、[設定] の [ネットワーク] オプションを選択します。
注
[ネットワーク] タブは premium 名前空間に対してのみ表示されます。
[ネットワーク] ページの [パブリック ネットワーク アクセス] では、次の 3 つのオプションのいずれかを設定できます。 [ 選択したネットワーク ] オプションを選択して、指定した IP アドレスからのアクセスのみを許可します。
無効化。 このオプションでは、名前空間へのパブリック アクセスが無効になります。 名前空間には、プライベート エンドポイント経由でのみアクセスできます。
信頼された Microsoft サービスがファイアウォールをバイパスすることを許可するかどうかを選択します。 Azure Service Bus の信頼できる Microsoft サービスの一覧については、信頼された Microsoft サービスのセクションを参照してください。
[選択されたネットワーク]。 このオプションでは、アクセス キーを使用して、選択したネットワークから名前空間へのパブリック アクセスを有効にします。
重要
選択したネットワークを選択した場合は、少なくとも 1 つの IP ファイアウォール規則または名前空間にアクセスできる仮想ネットワークを追加します。 この名前空間へのすべてのトラフィックをプライベート エンドポイント経由のみに制限する場合は、[無効] を使用します。
[すべてのネットワーク] (既定)。 このオプションでは、アクセス キーを使用して、すべてのネットワークからのパブリック アクセスを有効にします。 [すべてのネットワーク] オプションを選択した場合、Service Bus は任意の IP アドレスからの接続を受け入れます (アクセス キーを使用)。 この設定は、IP アドレス範囲 0.0.0.0/0 を受け入れる規則と同じです。
指定した IP アドレスからのアクセスのみを許可するには、 [選択されたネットワーク] オプションを選択します (まだ選択されていない場合)。 [ファイアウォール] セクションで、次の手順のようにします。
現在のクライアント IP にその名前空間へのアクセスを許可するには、 [クライアント IP アドレスを追加する] オプションを選択します。
[アドレス範囲] に、特定の IPv4 アドレスまたは IPv4 アドレスの範囲を CIDR 表記で入力します。
信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可するかどうかを指定します。 Azure Service Bus の信頼できる Microsoft サービスの一覧については、信頼された Microsoft サービスのセクションを参照してください。
警告
[選択したネットワーク] オプションを選択し、このページに少なくとも 1 つの IP ファイアウォール規則または仮想ネットワークを追加しない場合、名前空間にパブリック インターネット経由でアクセスすることはできません (アクセス キーを使用)。
ツール バーの [保存] を選択して設定を保存します。 ポータルの通知に確認が表示されるまで、数分間お待ちください。
注
特定の仮想ネットワークへのアクセスを制限するには、特定のネットワークからのアクセスの許可に関する記事をご覧ください。
信頼できる Microsoft サービス
[信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可する] 設定を有効にした場合、次のサービスに Service Bus リソースへのアクセス権が与えられます。
重要
信頼できる Microsoft サービスを有効にする場合は、常にマネージド ID を割り当てます。 この ID により、Service Bus 名前空間と信頼された Microsoft サービスの間のセキュリティで保護された通信が容易になります。
| 信頼できるサービス | サポートされる使用シナリオ |
|---|---|
| Azure Event Grid | Azure Event Grid が Service Bus 名前空間のキューまたはトピックにイベントを送信できるようにします。 次の手順も行う必要があります。
詳細については、「マネージド ID を使用したイベント配信」を参照してください |
| Azure Stream Analytics | Azure Stream Analytics ジョブが Service Bus キューからトピックにデータを出力できるようにします。 重要: Stream Analytics ジョブは、マネージド ID を使用して Service Bus 名前空間にアクセスするように構成する必要があります。 Service Bus 名前空間で Azure Service Bus データ送信者ロールに ID を追加します。 |
| Azure IoT Hub | IoT ハブで Service Bus 名前空間のキューまたはトピックにメッセージを送信できるようにします。 次の手順も行う必要があります。 |
| Azure API Management | API Management サービスを使用すると、Service Bus 名前空間の Service Bus キューまたはトピックにメッセージを送信できます。
|
| Azure IoT Central | IoT Central を使用すると、Service Bus 名前空間の Service Bus キューまたはトピックにデータをエクスポートできます。 次の手順も行う必要があります。
|
| Azure Digital Twins | Azure Digital Twins が Service Bus 名前空間の Service Bus トピックにデータをエグレスできるようにします。 次の手順も行う必要があります。
|
| Azure Monitor ([診断設定] と [アクション グループ]) | Azure Monitor が Service Bus 名前空間の Service Bus に診断情報とアラート通知を送信できるようにします。 Azure Monitor では、Service Bus 名前空間からデータの読み取りと書き込みを実施できます。 |
| Azure Synapse | Azure Synapse が Synapse ワークスペースのマネージド ID を使用して Service Bus に接続できるようにします。 Service Bus 名前空間で Azure Service Bus データ送信者、受信者または所有者ロールに ID を追加します。 |
Azure Service Bus のその他の信頼できるサービスは次のとおりです。
- Azure Data Explorer
- Azure Health Data Services
- Azure Arc
- Azure Kubernetes
- Azure Machine Learning
- Microsoft Purview
- Microsoft Defender for Cloud
- Azure プロバイダー ハブ
テンプレートの使用
このセクションでは、既存の Service Bus 名前空間に仮想ネットワークとファイアウォール規則を追加するサンプル テンプレートを示します。
ipMask は、1 つの IPv4 アドレスか、または CIDR 表記法で記述した IP アドレス ブロックです。 たとえば、CIDR 表記では、70.37.104.0/24 は 70.37.104.0 から 70.37.104.255 までの 256 個の IPv4 アドレスを表し、24 は範囲に対する有効プレフィックス ビット数を示します。
注
defaultAction の既定値は Allow です。 仮想ネットワークまたはファイアウォール規則を追加するときは、必ず defaultAction を Denyに設定してください。
@description('Name of the Service Bus namespace')
param namespaceName string
@description('Location for all resources.')
param location string = resourceGroup().location
resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
name: namespaceName
location: location
sku: {
name: 'Premium'
tier: 'Premium'
capacity: 1
}
properties: {
premiumMessagingPartitions: 1
minimumTlsVersion: '1.2'
publicNetworkAccess: 'Enabled'
disableLocalAuth: false
zoneRedundant: true
}
resource networkRuleSet 'networkRuleSets' = {
name: 'default'
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 または仮想ネットワーク規則を指定しない場合は、 defaultAction を deny に設定した場合でも、すべてのトラフィックが名前空間に送信されます。 ユーザーは、(アクセス キーを使用して) パブリック インターネット経由で名前空間にアクセスできます。 指定した仮想ネットワークの IP アドレスまたはサブネットからのトラフィックのみを許可するには、名前空間に少なくとも 1 つの IP 規則または仮想ネットワーク規則を指定します。
Azure CLI の使用
az servicebus namespace network-rule-set add、list、update、remove の各コマンドを使用して、Service Bus 名前空間の IP ファイアウォール規則を管理します。
Azure PowerShell の使用
次の Azure PowerShell コマンドを使用して、IP ファイアウォール規則の追加、一覧表示、消去、更新、削除を行います。
-
New-AzServiceBusIPRuleConfigとSet-AzServiceBusNetworkRuleSetを組み合わせて使用して、IP ファイアウォール規則を追加します。
既定のアクションとパブリック ネットワーク アクセス
REST API
API バージョン 2021-01-01-preview 以前の場合、 defaultAction プロパティの既定値は Deny。 ただし、拒否規則は、IP フィルターまたは仮想ネットワーク規則を設定しない限り、適用されません。 IP フィルターまたは仮想ネットワーク規則を設定しない場合、Service Bus は既定のアクションを 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 バージョンを使用してプロパティを取得し、設定します。
2021-01-01-preview 以前を使用して名前空間を構成し、defaultActionを Deny に設定し、ゼロ IP フィルターと仮想ネットワーク ルールを指定した場合、ポータルでは以前に名前空間の [ネットワーク] ページで [選択されたネットワーク] がオンにされています。 現在は、[すべてのネットワーク] オプションがチェックされています。
関連するコンテンツ
Service Bus へのアクセスを Azure 仮想ネットワークに制限するには、次の記事を参照してください。