特定の IP アドレスまたは範囲から Azure Service Bus への接続を許可します
既定では、有効な認証と承認を要求が含んでいる限り、Service Bus 名前空間にはインターネットからアクセスできます。 インバウンド トラフィックは、IP ファイアウォールを使用して、CIDR (クラスレス ドメイン間ルーティング) 表記の一連の IPv4 アドレスまたは IPv4 アドレス範囲に制限できます。
この機能は、Azure Service Bus へのアクセスを特定の既知のサイトからのみに制限したいシナリオで役立ちます。 ファイアウォール規則を使用すると、特定の IPv4 アドレスから送信されたトラフィックを受け入れる規則を構成できます。 たとえば、Azure Express Route で Service Bus を使用する場合、お使いのオンプレミスのインフラストラクチャ IP アドレスまたは会社の NAT ゲートウェイのアドレスからのトラフィックのみ許可するファイアウォール規則を作成できます。
IP ファイアウォール規則
この IP ファイアウォール規則は、Service Bus 名前空間レベルで適用されます。 したがって、規則は、サポートされているプロトコル (AMQP (5671) and HTTPS (443)) を使用するクライアントからのすべての接続に適用されます。 Service Bus 名前空間上の許可 IP 規則に一致しない IP アドレスからの接続試行は、未承認として拒否されます。 その応答に、IP 規則に関する記述は含まれません。 IP フィルター規則は順に適用され、IP アドレスと一致する最初の規則に基づいて許可アクションまたは拒否アクションが決定されます。
重要なポイント
仮想ネットワークは、Service Bus の Premium レベルでのみサポートされます。 premium レベルにアップグレードするオプションがない場合は、Azure Resource Manager テンプレート、Azure CLI、PowerShell または REST API を使って IP ファイアウォール規則を使用できます。 Shared Access Signature (SAS) トークンのセキュリティを維持し、許可されているユーザーとのみ共有することをお勧めします。 SAS 認証については、認証と承認に関するページを参照してください。
指定した IP アドレスまたは仮想ネットワークのサブネットからのトラフィックのみを許可するには、名前空間に少なくとも 1 つの IP ファイアウォール規則または仮想ネットワーク規則を指定します。 IP 規則も仮想ネットワーク規則も指定しない場合は、パブリック インターネット経由で (アクセス キーを使用して) 名前空間にアクセスできます。
ファイアウォール規則を実装すると、他の Azure サービスが Service Bus と対話するのを禁止できます。 例外として、IP フィルターが有効になっている場合でも、特定の信頼できるサービスからの Service Bus リソースへのアクセスを許可できます。 信頼できるサービスの一覧については、信頼できるサービスに関するセクションを参照してください。
仮想ネットワーク上には、次の Microsoft サービスが必要です
- Azure App Service
- Azure Functions
Note
[ネットワーク] タブは premium 名前空間に対してのみ表示されます。 他の層の IP ファイアウォール規則を設定するには、Azure Resource Manager テンプレート、Azure CLI、PowerShell、または REST API を使います。
Azure Portal の使用
名前空間を作成するときは、名前空間へのパブリックのみ (すべてのネットワークから) またはプライベートのみ (プライベート エンドポイントを介してのみ) のアクセスを許可できます。 名前空間が作成されたら、(ネットワーク サービス エンドポイントを使用して) 特定の IP アドレスまたは特定の仮想ネットワークからのアクセスを許可できます。
名前空間の作成時にパブリック アクセスを構成する
パブリック アクセスを有効にするには、名前空間の作成ウィザードの [ネットワーク] ページで [パブリック アクセス] を選択します。
名前空間を作成したら、[Service Bus 名前空間] ページの左側のメニューで [ネットワーク] を選択します。 [すべてのネットワーク] オプションが選択されていることがわかります。 [選択したネットワーク] オプションを選択し、特定の IP アドレスまたは特定の仮想ネットワークからのアクセスを許可できます。 次のセクションでは、IP ファイアウォールを構成して、アクセスを許可する IP アドレスを指定する方法について詳しく説明します。
既存の名前空間の IP ファイアウォールを構成する
このセクションでは、Azure portal を使用して、Service Bus 名前空間の IP ファイアウォール規則を作成する方法について説明します。
Azure portal で、ご利用の Service Bus 名前空間に移動します。
左側のメニューで、 [設定] の下にある [ネットワーク] オプションを選択します。
Note
[ネットワーク] タブは premium 名前空間に対してのみ表示されます。
[ネットワーク] ページの [パブリック ネットワーク アクセス] では、次の 3 つのオプションのいずれかを設定できます。 指定した IP アドレスからのアクセスのみを許可するには、[選択されたネットワーク] オプションを選択します。
Disabled。 このオプションでは、名前空間へのパブリック アクセスが無効になります。 名前空間には、プライベート エンドポイント経由でのみアクセスできます。
信頼された 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 ファイアウォール規則または仮想ネットワークを追加しない場合は、パブリック インターネット経由で (アクセス キーを使用して) 名前空間にアクセスできます。
ツール バーの [保存] を選択して設定を保存します。 ポータルの通知に確認が表示されるまで、数分間お待ちください。
Note
特定の仮想ネットワークへのアクセスを制限するには、特定のネットワークからのアクセスの許可に関する記事をご覧ください。
信頼できる Microsoft サービス
[信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可する] 設定を有効にした場合、次のサービスに Service Bus リソースへのアクセス権が与えられます。
信頼できるサービス | サポートされる使用シナリオ |
---|---|
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 Provider Hub
Resource Manager テンプレートの使用
このセクションには、Service Bus 名前空間に仮想ネットワークとファイアウォール規則を追加するサンプルの Azure Resource Manager テンプレートが含まれています。
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": "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 の手順に従います。
重要
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
defaultAction
プロパティの既定値は、defaultAction
の API バージョンでは 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
に設定した場合は、パブリック インターネット上で操作が許可されます。
これらのプロパティの詳細については、プライベート エンドポイント接続の作成または更新に関するページを参照してください。
Note
上記の設定ではいずれも、SAS または Microsoft Entra 認証による要求の検証がバイパスされません。 認証チェックは、常に、defaultAction
、publicNetworkAccess
、privateEndpointConnections
の設定で構成されたネットワーク チェックをサービスが検証した後に実行されます。
Azure portal
Azure portal は常に、最新の API バージョンを使用してプロパティを取得し、設定します。 2021-01-01-preview およびそれ以前を使用して以前に名前空間を構成し、defaultAction
を Deny
に設定して IP フィルターと仮想ネットワーク規則をまったく指定していなかった場合、以前はポータルで名前空間の [ネットワーク] ページの [選択されたネットワーク] がオンになっていました。 現在は、[すべてのネットワーク] オプションがオンになっています。
関連するコンテンツ
Service Bus へのアクセスを Azure 仮想ネットワークに 制約するには、次のリンクをご覧ください。