この記事では、Azure Service Bus でセキュリティ機能を使用する方法について説明します。
サービス タグ
サービス タグは、Azure サービスからの IP アドレス プレフィックスのグループを表します。 サービス タグに含まれるアドレス プレフィックスの管理は Microsoft が行い、アドレスが変化するとサービス タグは自動的に更新されます。 この管理により、ネットワーク セキュリティ規則に対する頻繁な更新の複雑さが最小限に抑えられます。 サービス タグの詳細については、「仮想ネットワーク セキュリティに関する Azure サービス タグの概要」を参照してください。
サービス タグを使用して、 ネットワーク セキュリティ グループ または Azure Firewall でネットワーク アクセス制御を定義します。 セキュリティ規則を作成するときに、特定の IP アドレスの代わりにサービス タグを使用します。 ルールの適切なServiceBusまたは宛先フィールドにサービス タグ名 ( など) を指定することで、対応するサービスのトラフィックを許可または拒否できます。
サービス タグのコンテキストでは、 "送信 " という用語は、Azure 仮想ネットワークから送信されるトラフィックを指します。 このトラフィックは、Service Bus への受信トラフィックを表します。 言い換えると、サービス タグには、仮想ネットワークから Service Bus に送信されるトラフィックに使用される IP アドレスが含まれます。
| サービス タグ | 目的 | 受信または送信で使用できますか? | リージョン別ですか? | Azure Firewall と共に使用できるか |
|---|---|---|---|---|
ServiceBus |
Azure Service Bus トラフィック | アウトバウンド | イエス | イエス |
注
以前は、Service Bus サービス タグには、Premium レベルの名前空間の IP アドレスのみが含まれていました。 階層に関係なく、すべての名前空間の IP アドレスが含まれるようになりました。
IP ファイアウォール規則
既定では、ユーザーは、要求に有効な認証と承認が含まれている限り、インターネットから Service Bus 名前空間にアクセスできます。 IP ファイアウォールを使用すると、CIDR (クラスレス Inter-Domain ルーティング) 表記の IPv4 アドレスまたは IPv4 アドレス範囲のセットにのみアクセスを制限できます。
この機能は、Azure Service Bus に特定の既知のサイトからのみアクセスできる必要があるシナリオで役立ちます。 ファイアウォール規則を使用して、特定の IPv4 アドレスからのトラフィックを受け入れる規則を構成できます。 たとえば、 Azure ExpressRoute で Service Bus を使用する場合は、オンプレミスインフラストラクチャの IP アドレスまたは企業 NAT ゲートウェイのアドレスからのトラフィックのみを許可するファイアウォール規則を作成できます。
Service Bus 名前空間は、IP ファイアウォール規則を適用します。 この規則は、サポートされているプロトコルを使用するクライアントからのすべての接続に適用されます。 Service Bus 名前空間は、許可された IP 規則と一致しない IP アドレスからの接続試行を未承認として拒否します。 その応答に、IP 規則に関する記述は含まれません。 IP フィルター規則は順番に適用され、IP アドレスに一致する最初の規則によって受け入れまたは拒否が決まります。
詳細については、「既存の 名前空間の IP ファイアウォールを構成する」を参照してください。
ネットワーク サービス エンドポイント
Service Bus と 仮想ネットワーク サービス エンドポイントを統合することで、仮想ネットワークにバインドされている仮想マシンなどのワークロードからメッセージング機能に安全にアクセスできます。 ネットワーク トラフィック パスは、両端でセキュリティで保護されます。
Service Bus 名前空間を仮想ネットワーク サブネットの少なくとも 1 つのサービス エンドポイントにバインドするように構成すると、Service Bus 名前空間は、承認された仮想ネットワーク以外の任意の場所からのトラフィックを受け入れなくなります。 仮想ネットワークの観点からは、サービス エンドポイントに Service Bus 名前空間をバインドすると、仮想ネットワーク サブネットからメッセージング サービスへの分離されたネットワーク トンネルが構成されます。
その結果、メッセージング サービス エンドポイントの監視可能なネットワーク アドレスがパブリック IP 範囲内にある場合でも、サブネットにバインドされたワークロードとそれぞれの Service Bus 名前空間との間にプライベートで分離された関係が生まれます。
重要
仮想ネットワークは、 Premium レベルの Service Bus 名前空間でのみサポートされます。
Service Bus で仮想ネットワーク サービス エンドポイントを使用する場合は、Standard レベルと Premium レベルの Service Bus 名前空間を混在させるアプリケーションでこれらのエンドポイントを有効にしないでください。 Standard レベルでは仮想ネットワークがサポートされていないため、エンドポイントは Premium レベルの名前空間のみに制限されます。
仮想ネットワーク統合の高度なセキュリティ シナリオ
厳密でコンパートメント化されたセキュリティを必要とし、仮想ネットワーク サブネットがコンパートメント化されたサービス間のセグメント化を提供するソリューションでは、通常はそれらのサービス間の通信パスが必要です。
コンパートメント間の即時 IP ルート (TCP/IP 経由で HTTPS を運ぶものも含む) は、ネットワーク層および上位レイヤーからの脆弱性の悪用のリスクを伴います。 メッセージング サービスは、完全に絶縁された通信パスを提供します。このパスでは、メッセージがパーティ間で遷移するときにディスクに書き込まれることもあります。 同じ Service Bus インスタンスにバインドされている 2 つの異なる仮想ネットワーク内のワークロードは、それぞれのネットワーク分離境界の整合性を維持しながら、メッセージを介して効率的かつ確実に通信できます。
このメッセージングは、HTTPS やその他の TLS で保護されたソケット プロトコルなど、ピアツーピア通信モードで実現できるものよりも本質的に安全です。
Service Bus を仮想ネットワークにバインドする
"仮想ネットワーク規則" は、Azure Service Bus サーバーが特定の仮想ネットワーク サブネットからの接続を許可するかどうかを制御するファイアウォール セキュリティ機能です。
仮想ネットワークへの Service Bus 名前空間のバインドは、2 ステップのプロセスです。 まず、仮想ネットワーク サブネット上に仮想ネットワーク サービス エンドポイントを作成し、Microsoft.ServiceBusで説明されているように、に対して有効にします。 サービス エンドポイントを追加した後、仮想ネットワーク規則を使用して Service Bus 名前空間をそれにバインドします。
仮想ネットワーク規則は、Service Bus 名前空間を仮想ネットワーク サブネットに関連付けます。 ルールが存在する間、サブネットにバインドされているすべてのワークロードには、Service Bus 名前空間へのアクセス権が付与されます。 Service Bus 自体は送信接続を確立せず、アクセス権を取得する必要もありません。また、この規則を有効にしてもサブネットへのアクセスは許可されません。
詳細については、「特定の 仮想ネットワークから Azure Service Bus 名前空間へのアクセスを許可する」を参照してください。
プライベート エンドポイント
Azure Private Link サービスを使用すると、仮想ネットワーク内のプライベート エンドポイント経由で Azure サービス (Azure Service Bus、Azure Storage、Azure Cosmos DB など) と Azure でホストされる顧客またはパートナー のサービスにアクセスできます。
プライベート エンドポイントは、Azure Private Link に関連するサービスにプライベートに接続するネットワーク インターフェイスです。 プライベート エンドポイントは、仮想ネットワークからのプライベート IP アドレスを使用して、サービスを仮想ネットワークに効果的に取り込みます。
すべてのトラフィックをプライベート エンドポイント経由でサービスにルーティングできるため、ゲートウェイ、NAT デバイス、ExpressRoute または VPN 接続、パブリック IP アドレスは必要ありません。 仮想ネットワークとサービスの間のトラフィックは、パブリック インターネットからの露出を排除するために Microsoft バックボーン ネットワークを通過します。 Azure リソースのインスタンスに接続して、アクセス制御の最高レベルの粒度を実現できます。
詳細については、「Azure Private Link とは」を参照してください。
注
Azure Service Bus の Premium レベルでは、この機能がサポートされています。 Premium レベルの詳細については、 Service Bus Premium および Standard メッセージングレベルに関する記事を参照してください。
詳細については、「 プライベート エンドポイント経由で Azure Service Bus 名前空間へのアクセスを許可する」を参照してください。
ネットワーク セキュリティ境界
Service Bus 名前空間をセキュリティで保護するもう 1 つの方法は、それをネットワーク セキュリティ境界に含める方法です。 ネットワーク セキュリティ境界は、サービスとしてのプラットフォーム (PaaS) リソースの論理境界を確立します。 この境界により、境界内のリソースへの通信が制限され、明示的な規則によってパブリック アクセスが制御されます。 この手法は、Service Bus とその他の PaaS リソース (Azure Key Vault など) の周囲にセキュリティ境界を確立する場合に特に便利です。
詳細については、「 Azure Service Bus のネットワーク セキュリティ境界」を参照してください。