🔐

Azure Monitor の閉域化 (AMPLS) -LAW編

2024/01/25に公開

はじめに

Azure上のリソースを監視するために利用される Auzre Monitor ですが、ログ転送などをプライベートに行いたいというご要望は結構多いです。その際に利用するのが Azure Monitor Private Link Scope (AMPLS) となりますが、本機能についての概要と実装方法について簡単に纏めたいと思います

AMPLS は Azure Monitor 関連リソース(Log Analytics Workspace, Application Insights, DCE)をプライベートエンドポイント経由で利用するための仕組みとなります。特徴を簡単に纏めると以下のような感じになります

  • Azure Monitor 関連リソースは AMPLS を利用して纏めてプライベート化する必要がある(AMPLS が Azure Monitor リソースを集約して Private Endpoint と紐づく)
  • Private Endpoint に対して名前解決ができるように DNSレコード を構成する必要がある
  • Azure Moiitor 関連リソースに対するアクセス制御が可能(アクセスモードにて指定)
  • ExpressRouteを利用することで、オンプレのリソースログも閉域で転送することも可能

詳細は公式サイトはご参照ください

検証環境の構成図

作成の流れ

  1. AMPLS の作成
  2. Azure Monitor リソース (LAW) の接続
  3. Private Endpoint の作成
  4. データ収集エンドポイント (DCE) の作成と AMPLS への接続
  5. データ収集ルール (DCR) の作成
  6. ログ収集の状況確認
  7. LAW へのアクセス制限

1. AMPLS の作成

1-2. AMPLS を新規作成する

1-3. AMPLS が作成されたことを確認する

2. Azure Monitor リソース (LAW) の接続

2-1. 作成した AMPLS へ Azure Monitor リソース (LAW) を接続する

2-2. Azure Monitor リソース (LAW) が接続されたことを確認する

3. Private Endpoint の作成

3-1. Private Endpoint の作成画面に移動する

3-2. Private Endpoint を新規作成する




プライベートDNSゾーン名は以下の通り

構成名 プライベートDNSゾーン
privatelink-monitor-azure-com privatelink.monitor.azure.com
privatelink-oms-opinsights-azure-com privatelink.oms.opinsights.azure.com
privatelink-ods-opinsights-azure-com privatelink.ods.opinsights.azure.com
privatelink-agentsvc-azure-automation-net privatelink.agentsvc.azure-automation.net
privatelink-blob-core-windows-net privatelink.blob.core.windows.net

※詳細は公式サイトをご参照ください
プライベート DNS ゾーンの値

3-3. Private Endpoint と プライベート DNS ゾーンが作成されたことを確認する

3-4. Private Endpoint の DNSが構成されていることを確認する

3-5. プライベート DNS ゾーンがVNetと紐づけされていることを確認する

※ 全てのプライベート DNS ゾーンが Hub-VNet と紐づけされていることを確認する

3-6. プライベート DNSゾーンを Spoke-VNet にリンクする

※ 全てのプライベート DNS ゾーンで Spoke1-VNet との紐づけを行う

3-7. Private Endpoint の名前解決の確認

データ収集対象リソースにて確認を行う (プライベートIP が返ってきていることを確認)

[cloudadmin@spoke1-Server ~]$ nslookup global.in.ai.privatelink.monitor.azure.com
Server:         168.63.129.16
Address:        168.63.129.16#53

Non-authoritative answer:
Name:   global.in.ai.privatelink.monitor.azure.com
Address: 10.0.100.5

4. データ収集エンドポイント (DCE) の作成と AMPLS への接続

4-1. Azure Monitor にて「データ収集エンドポイント」を作成する

4-2. 作成した AMPLS へ DCE を接続する


※2点目については イベントとパフォーマンスの収集 に記載されています

プライベート リンクを使用したネットワークの分離が必要な場合は、それぞれのリソースに対して同じリージョンから既存のエンドポイントを選択するか、新しいエンドポイントを作成します。

5. データ収集ルール (DCR) の作成

5-1. Azure Monitor にて「データ収集ルール」を作成する

5-2. DCRにデータ収集対象のリソースを関連付ける

※ データ収集対象にAMAがインストールされていない場合は自動でインストールされる

5-3. DCEを有効にする

※ データ収集対象と同じリージョンの DCE を選択する

5-4. データソースを追加する(パフォーマンスカウンタ/ ログ収集)

※ 本手順では両方追加しているが、要件に応じて選択を行う

5-5. データ収取対象にAMA がインストールされたことを確認する

6. ログ収集の状況確認

6-1. LAWにてHeartbeatログを確認し、データ収集対象と疎通できていることを確認する

6-2. LAWにてsyslog が転送されていることを確認する

7. LAWへのアクセス制限

現時点での設定では LAW へのパブリックアクセスは制限されていない状態となります。LAW自体へのアクセス制限を行いたい場合は「ネットワーク分離」にて設定を行う必要があります

[アクセス制限前の状態(自分のPCからAzureポータルへアクセス)]

  • 以下の通り、特に問題なくクエリを実行することが可能

7-1. ネットワークの分離によるアクセス制限

本手順ではパブリックからのアクセス時にクエリを実行できないように設定を行う

プライベートリンクスコープを通じて接続されていないパブリックネットワークからのデータインジェストを受け入れる

設定値:はい

プライベートリンクスコープを通じて接続されていないパブリックネットワークからのクエリを受け入れる

設定値:いいえ

7-2. アクセス確認

  • 以下の通り、クエリの実行画面でアクセスが拒否される

まとめ

今回は Azure Moitor リソース関連の閉域化を行う AMPLS について検証を実施しました。通常の PaaS と違い AMPLS を利用する必要があり少し複雑になっているためなかなか分かりにくい機能かと思います。また、Azure Monitor リソースに対するアクセス制限(ネットワークの分離)については特に考慮が漏れやすい箇所でもあるのでご注意ください。
本記事がAzure Monitor リソースの閉域化を検討している方に少しでも参考になれば幸いです

Appendix

AMPLS 作成手順
https://learn.microsoft.com/ja-jp/azure/azure-monitor/logs/private-link-configure

DCR 作成手順
https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/data-collection-rule-azure-monitor-agent?tabs=portal#create-a-data-collection-rule

DCE 作成手順
https://learn.microsoft.com/ja-jp/azure/azure-monitor/essentials/data-collection-endpoint-overview?tabs=portal#create-a-data-collection-endpoint

Microsoft (有志)

Discussion