この記事では、Azure Event Grid で次のセキュリティ機能を使用する方法について説明します。
- 送信用のサービス タグ
- IP ファイアウォール規則
- プライベート エンドポイント
サービス タグ
サービス タグは、特定の Azure サービスからの IP アドレス プレフィックスのグループを表します。 サービス タグに含まれるアドレス プレフィックスの管理は Microsoft が行い、アドレスが変化するとサービス タグは自動的に更新されます。これにより、ネットワーク セキュリティ規則に対する頻繁な更新の複雑さを最小限に抑えられます。 サービス タグの詳細については、サービス タグの概要に関する記事を参照してください。
サービス タグを使用して、ネットワーク セキュリティ グループまたは Azure ファイアウォールでネットワーク アクセス制御を定義できます。 セキュリティ規則を作成するときに、特定の IP アドレスの代わりにサービス タグを使用します。 ルールの適切な送信元または宛先フィールドにサービス タグ名 (Azure Event Grid など) を指定することで、対応するサービスのトラフィックを許可または拒否できます。
| サービス タグ | Purpose | インバウンドまたはアウトバウンドが使用できますか? | 地域別になりますか? | Azure Firewall と共に使用できるか |
|---|---|---|---|---|
| AzureEventGrid | Azure Event Grid。 | 両方とも | いいえ | いいえ |
IP ファイアウォール
既定では、Event Grid の名前空間とエンティティは、要求に有効な認証 (アクセス キー) と承認が含まれている限り、インターネットからアクセスできます。 これは IP ファイアウォールを使用して、さらに CIDR (クラスレス ドメイン間ルーティング) 表記の一連の IPv4 アドレスまたは IPv4 アドレス範囲のみに制限できます。 他の IP アドレスから送信されたクライアントは拒否され、403 (禁止) 応答を受け取ります。
メッセージ キュー テレメトリ トランスポート (MQTT) シナリオでは、許可された IP 範囲に分類されるクライアントのみが、イベントの発行とサブスクライブに接続できます。 詳細については、「 MQTT シナリオでの Event Grid 名前空間の IP ファイアウォールの構成」を参照してください。
MQTT 以外のシナリオでは、許可された IP 範囲に分類されるクライアントのみが Azure Event Grid に接続してイベントを発行したり、イベントをプルしたりできます。 詳細については、「 MQTT 以外のシナリオでの Event Grid 名前空間の IP ファイアウォールの構成」を参照してください。
手順は両方のシナリオで同じです。 これらの記事では、MQTT または MQTT 以外のシナリオに固有の追加情報を提供します。
プライベート エンドポイント
プライベート エンドポイントは、VNet 内の Azure サービス用の特別なネットワーク インターフェイスです。 名前空間のプライベート エンドポイントを作成すると、VNet 上のクライアントと Event Grid 名前空間の間にセキュリティで保護された接続が提供されます。 プライベート エンドポイントには、VNet の IP アドレス範囲から IP アドレスが割り当てられます。 プライベート エンドポイントと Event Grid サービス間の接続には、セキュリティで保護されたプライベート リンクが使用されます。 Event Grid 名前空間にプライベート エンドポイントを使用すると、次のことが可能になります。
- パブリック インターネットではなく、Microsoft バックボーン ネットワーク経由で仮想ネットワークから名前空間へのアクセスをセキュリティで保護します。
- VPN または Express Routes とプライベート ピアリングを使用して仮想空間に接続するオンプレミス ネットワークから安全に接続します。
仮想ネットワーク内の名前空間のプライベート エンドポイントを作成すると、承認の同意要求がリソース所有者に送信されます。 プライベート エンドポイントの作成を要求しているユーザーがリソースの所有者でもある場合、この同意要求は自動的に承認されます。 それ以外の場合、接続は承認されるまで保留中の状態になります。 仮想ネットワーク内のアプリケーションは、プライベート エンドポイント経由で Event Grid サービスにシームレスに接続できます。接続文字列と承認メカニズムは、プライベート エンドポイントを経由しない場合と同じものが使用されます。 リソースの所有者は、Azure portal でリソースの [プライベート エンドポイント] タブを使用して、同意要求とプライベート エンドポイントを管理できます。
プライベート ネットワーク内の MQTT クライアントがプライベート リンク上の MQTT ブローカーに接続すると、クライアントは MQTT メッセージを発行してサブスクライブできます。 詳細については、「 MQTT シナリオでの名前空間のプライベート エンドポイントの構成」を参照してください。
MQTT 以外のシナリオでは、プライベート ネットワーク内のクライアントは Event Grid 名前空間に接続し、イベントを発行したり、イベントをプルしたりできます。 詳細については、「 MQTT 以外のシナリオでの名前空間のプライベート エンドポイントの構成」を参照してください。
プライベート エンドポイントに接続する
プライベート エンドポイントを使用すると、パブリック インターネットを経由せずに、プライベート リンク経由で、仮想ネットワークから Event Grid 名前空間内のエンティティへの直接イベントの受信を許可できます。 プライベート エンドポイントは、名前空間の仮想ネットワーク アドレス空間の IP アドレスを使用します。
プライベート エンドポイントを使用する仮想ネットワーク上のクライアントは、パブリック エンドポイントに接続するクライアントと同じ接続文字列を名前空間に使用する必要があります。 ドメイン ネーム システム (DNS) 解決では、仮想ネットワークから名前空間への接続がプライベート リンク経由で自動的にルーティングされます。 Event Grid では、既定で、仮想ネットワークに接続されているプライベート DNS ゾーンが作成され、プライベート エンドポイントに必要な更新も行われます。 ただし、独自の DNS サーバーを使用している場合は、DNS 構成に追加の変更を加える必要がある場合があります。
プライベート ネットワーク上の MQTT クライアントがプライベート リンク上の MQTT ブローカーに接続すると、クライアントは MQTT メッセージを発行してサブスクライブできます。
プライベート エンドポイントの DNS の変更
プライベート エンドポイントを作成すると、リソースの DNS CNAME レコードは、プレフィックス privatelink を持つサブドメイン内のエイリアスに更新されます。 既定では、プライベート リンクのサブドメインに対応するプライベート DNS ゾーンが作成されます。
プライベート エンドポイントを使用して仮想ネットワークの外部から名前空間エンドポイント URL を解決すると、サービスのパブリック エンドポイントに解決されます。 プライベート エンドポイントをホストしている VNet の外部 から解決された場合、'namespaceA' の DNS リソース レコードは次のとおりです。
| 名前 | タイプ | 価値 |
|---|---|---|
namespaceA.westus.eventgrid.azure.net |
CNAME | namespaceA.westus.privatelink.eventgrid.azure.net |
namespaceA.westus.privatelink.eventgrid.azure.net |
CNAME | <Azure Traffic Manager プロファイル> |
IP ファイアウォールを使用して、仮想ネットワークの外部のクライアントによるパブリック エンドポイント経由のアクセスを拒否または制御することができます。
プライベート エンドポイントをホストしている仮想ネットワークから解決されると、名前空間エンドポイント URL はプライベート エンドポイントの IP アドレスに解決されます。 プライベート エンドポイントをホストしている VNet 内 から解決された名前空間 'namespaceA' の DNS リソース レコードは次のとおりです。
| 名前 | タイプ | 価値 |
|---|---|---|
namespaceA.westus.eventgrid.azure.net |
CNAME | namespaceA.westus.privatelink.eventgrid.azure.net |
namespaceA.westus.privatelink.eventgrid.azure.net |
A | 10.0.0.5 |
この方法では、プライベート エンドポイントをホストしている仮想ネットワーク上のクライアントと、仮想ネットワークの外部にあるクライアントに対して同じ接続文字列を使用して名前空間にアクセスできます。
ネットワーク上のカスタム DNS サーバーを使用している場合、クライアントは名前空間エンドポイントの完全修飾ドメイン名 (FQDN) をプライベート エンドポイントの IP アドレスに解決できます。 プライベート リンク サブドメインを仮想ネットワークのプライベート DNS ゾーンに委任するように DNS サーバーを構成するか、プライベート エンドポイントの IP アドレスを使用して namespaceName.regionName.privatelink.eventgrid.azure.net の A レコードを構成します。
推奨される DNS ゾーン名は privatelink.eventgrid.azure.net です。
プライベート エンドポイントとパブリッシング
次の表では、プライベート エンドポイント接続のさまざまな状態と、発行に対する影響について説明します。
| 接続状態 | 正常に発行 (はい/いいえ) |
|---|---|
| 承認済み | はい |
| 拒否 | いいえ |
| 保留中 | いいえ |
| 接続解除済 | いいえ |
発行を成功させるには、プライベート エンドポイントの接続状態が承認済みである必要があります。 接続が拒否された場合は、Azure portal を使用して承認することはできません。 唯一の方法は、接続を削除し、代わりに新しい接続を作成することです。
クォータと制限
名前空間あたりの IP ファイアウォール規則とプライベート エンドポイント接続の数には制限があります。 Event Grid のクォータと制限に関するページを参照してください。
関連資料
MQTT を使用している場合は、次の記事を参照してください。
プルベースのイベント配信については、次の記事を参照してください。