このエントリは2021/06/28現在の情報に基づいています。将来の機能追加や変更に伴い、記載内容との乖離が発生する可能性があります。
Log Analytics Workspaceに集まるログをどうすればエクスポートできるか、という問い合わせをもらったので、その備忘録。大きく分けて2つの方法がある。
- 出力元で出力先をコントロール
- Log Analytics Workspaceのデータをエクスポート
出力元で出力先をコントロール
これは、各サービスでログやメトリックをLog Analytics Workspaceだけでなく、Blob storageやEvent Hubs、3rd partyソリューションに連携するというもの。なのでLog Analytics Workspaceからのエクスポートとは言えないが、そもそも出力元で同じデータを出せるならそちらを使ってもいいのでは、という発想。
以下のスクリーンショットはLogic Appの例だが、各サービスの診断設定で以下の構成が可能。

この設定のポイントは以下。
- 各サービスで明示的に設定する必要がある(Landing Zoneの1区画として提供されるようなSubscriptionの場合は、Azure Policyで強制するのも一つの方法ではある)。
- もし組織で管理している場合には、Azure Policyなどで制約をかけておかないと、好き勝手な宛先にデータが出力されてしまう可能性がある。
Log Analytics Workspaceのデータをエクスポート
もう一つは、Log Analytics Workspaceに集められたデータをBlob storageやEvent Hubsにエクスポートする、というもの。これは以下のドキュメントに記載がある。
Azure Monitor の Log Analytics ワークスペースのデータ エクスポート (プレビュー) / Log Analytics workspace data export in Azure Monitor (preview)
https://docs.microsoft.com/azure/azure-monitor/logs/logs-data-export
この場合、一度集約したものを必要なものだけエクスポートできるため、エクスポートするデータのコントロールは可能(一部エクスポートできないデータもあるので注意が必要)。
で、ここまで説明した後に、以下のような問い合わせをもらった。
Blob StorageやEvent Hubsにエクスポートするとして、両者がPrivate Linkで接続されている場合も問題なくエクスポートできるのか?つまり、Firewallの制約をバイパスできるのか?
具体的には以下のイメージ図の通り。赤矢印部分って本当に送信できるのか?という問い合わせ。

結論から言うと、これは可能。理由は、StorageならびにEvent Hubsにおいて、Log Analytics Workspace (というかAzure Monitor)がTrusted Serviceとして取り扱われているため。これにより、VNetからPrivate LinkやService Endpointを構成していたり、Firewallで制限をかけていたとしても、その制限をバイパスできる。ドキュメントの記述は以下。
Storage: サブスクリプションに登録されているリソースへの信頼されたアクセス / Trusted access for resources registered in your subscription
https://docs.microsoft.com/azure/storage/common/storage-network-security#trusted-access-for-resources-registered-in-your-subscription
Event Hubs: Trusted Microsoft services
https://docs.microsoft.com/azure/event-hubs/event-hubs-service-endpoints#trusted-microsoft-services