Azure Monitor Private Link Scope (AMPLS) を使ってAzure Monitor(Log Analytics)に閉域接続を行う

はじめに

2020年6月にAzure Monitor Private Link Scope (AMPLS) サービスが爆誕しました。
GAしているという噂の割には執筆時点では自分のサブスクリプションIDを連絡して承認をもらう形式となっています。
とりあえず、上記ドキュメントにある手順を真似て東日本リージョンで動作確認を行ったのでポストします。

ネットワーク構成

一つのVirtual Networkにsubnetを2つ作りました。

一つは仮想マシンを配置するsubnet(default)、もう一つはPrivate link serviceが利用するためのsubnet(privatelink)です。

default subnetにはNSGを設定しており、OutboundのInternet向けの送信を全て拒否にしています。閉域ネットワーク経由でLog Analyticsに送れるのであれば、この設定でも行けるはずですね。

データを収集する仮想マシンとLog Analyticsの準備

仮想マシンはdefault subnetにUbuntu 18.04をデプロイしました。

Log Analyticsも同じリソースグループ上に新規作成します。

Azure Monitor Private Link Scopeの作成

Marketplaceから新規で「private link scope」あたりでフィルタ検索して、該当リソースを探して、作成します。

サブスクリプションの選択で、エラーが出るので「詳細情報」のリンクをクリックすると、どこかで見たようなデザインのフォームが開きますので、AzureサブスクリプションIDの他、どういった用途でどれくらい使うのかの質問に全て答えます。

数日すると、使えるようになっていますが、リクエストが殺到しているのか?すぐに利用可能にならないケースもあるかもしれません、その場合は気長に待つかしましょう。

で、数日後に先に進めるようになりました。
入力内容は単純で、サブスクリプション、リソースグループのほかはAMPLSのリソース名を指定するくらいです。

無事作成できました。

Azure Monitor(Log Analytics)との接続

AMPLSのリソースのメニューから、Azure Monitorリソースをクリック後、「+追加」をクリックします。

一覧にサブスクリプション内にあるLog AnalyticsやApplication Insightsの一覧が出るので、今回作成したLog Analyticsを選択します。

無事追加されました。

ここまでの操作を行っても、特にリソースグループ内のリソース一覧に変化はありません。

プライベートエンドポイント接続

同じくAMPLSのメニューからプライベートエンドポイント接続をクリック後、「+プライベートエンドポイント」をクリックします。

最初の基本タブでは、プライベートエンドポイントのリソースを作成するリソースグループや、リソース名を指定します。

次のリソースタブでは、リソースに種類に「Microsoft.Insights/privateLinkScopes」を選択、リソースから該当リソース(先に作成したAMPLSの名称)、対象サブリソースには「azuremonitor」を選択します。

構成タブでは、プライベートエンドポイント作成するvnetとsubnetを選択します。
カスタムDNSを使っていない場合は、Private DNS Zoneも一緒に作成して、VNETとリンクまでここで自動設定してくれます。

無事作成が終わると、リソースとしてプライベートエンドポイントと、4つ程Private DNS Zoneが作成されました。

ちゃんとプライベートエンドポイントの配置先は指定したvnetのsubnetになっていますね。

vnetの接続デバイスを確認すると、privatelink subnet内にプライベートエンドポイント用のNICがたくさん接続されています。

同様にPrivate DNS Zoneの内容を一部ですが確認すると、Aレコードの値がプライベートエンドポイントのIPアドレスになっていることも確認できます。

先に作成した仮想マシンからdigコマンドで確認すると、ちゃんとプライベートIPアドレスが返ってくるので、構成としては大丈夫そうですね。

Log Analyticsの設定

Log Analyticsにも「ネットワーク分断」というメニューが追加されています。

こちらから「パブリックネットワークアクセスでの取り込みの許可」を「いいえ」に変更すると、このLog Analyticsは閉域網からのみログを受信する設定となります。今回はこちらの設定も「いいえ」に変更しました。

ここからは普通の手順です。Log Analyticsでログを収集する仮想マシンを選択して、エージェントを有効化します。

Linuxパフォーマンスカウンタも適当に取得してもらう設定をしておきます。

動作確認

10分程待つと、Log Analyticsにデータが溜まってきました。

ハートビートログは1分間隔で届いているようです。

パフォーマンスカウンタもちゃんと来ている。

とりあえず大丈夫そうですね。

おわりに

今回はUbuntu 18.04で試しましたが、Windowsは未検証です。

Azure Monitor Private Link Scope (AMPLS)にがAzure Monitorとサービスエンドポイントの設定の架け橋になってくれて、比較的簡単に構成できたのではと思います。