はじめに
Purview が置かれているテナントとは別の場所にSHIRが配置されているなどで、 Purview のネットワーク設定画面で作成ができないような場所に各種プライベートエンドポイントを作成する必要のある場面があると思います。
そんな場合にはどのような構成を組めば良いのか、具体的にどのような設定をすれば良いのかを備忘録ついでにまとめてみました。
今回の構成
下図のような構成で検証を行います。
実機確認はしていませんが、同じテナント内の別リソースグループにある Purview アカウントを対象にする場合も同じようにできると思います。

また、今回は新ポータルへのアクセスとデータマップスキャンができるようになるまでの手順になりますが、 Account プライベートエンドポイントや Portal プライベートエンドポイントも同様の手順で作成は可能なのでクラシックポータルへのアクセスも同様の手順で実現が可能になると思います。
手順1. Purview アカウントに紐づくプライベートエンドポイントを作成する
まずは Purview や Ingest ストレージにアクセスするためのプライベートエンドポイントを作成します。
Platoform プライベートエンドポイントの作成
接続方法を[リソース ID またはエイリアスを使って Azure リソースに接続します。]に設定し、対象の Purview アカウントのリソース ID をコピペしてください。
対象サブリソースは"platform"と入力してください。
Account プライベートエンドポイントや Portal プライベートエンドポイントを作成する場合はそれぞれ"account", "portal"と入力すればOKです。
仮想ネットワークやサブネットが複数ある環境の場合は作成する場所を間違えないようにしましょう。
プライベートエンドポイントの作成が完了したら、 Purview アカウントの詳細画面から[設定]>[ネットワーク]>[Private endpoint connections]タブを開きます。
作成したプライベートエンドポイントを選択して承認します。
テナントを跨いだプライベートエンドポイントについては手動による承認が必須になります。
Azure Private Link のよく寄せられる質問 (FAQ) | Microsoft Learn
Ingest プライベートエンドポイントの作成
Platfrom プライベートエンドポイントと同様にして Ingest プライベートエンドポイントも作成します。
ただし、 Ingest プライベートエンドポイントは Purview のマネージドリソースに紐づくプライベートエンドポイントであるため、入力すべきリソース ID は Purview アカウント自身ではなく Purview アカウントが持つマネージドリソースのリソース ID となります。
Ingest ストレージのリソース ID は Purview アカウントの[設定]>[プロパティ]内の"Ingestion storage ID"に記載されているのでこちらをコピペして使います。
Ingest プライベートエンドポイントは2種類あるのでそれぞれ作成します。
リソース ID は先ほどコピペしたリソース ID 、サブリソースは"blob", "queue"としてそれぞれ作成してください。
Platform プライベートエンドポイントと同様に、作成したプライベートエンドポイントを承認します。
Purview アカウントの詳細画面から[設定]>[ネットワーク]>[Ingestion private endpoint connections]タブを開きます。
作成したプライベートエンドポイントを選択して承認します。
手順2. VMが適切に名前解決できるようにDNSを設定する
手順1でプライベートエンドポイントは無事に作成されましたが、このままではまだ名前解決が上手くできないため FQDN からプライベート IP が適切に返ってきません。
VM がちゃんとそれぞれのプライベート IPを参照できるように設定する必要があります。
プライベートDNSゾーンを作成する
まずはプライベートDNSゾーンを作成します。
ざっくり説明すると、 FQDN がパブリックの IP ではなくプライベートの IP を指すように追加する DNS レコードのようなものです。
Azure サービスから [仮想ネットワーク] を探して、その中の [DNS]>[プライベート DNS ゾーン] から [+作成] を選択します。
作成画面に入ったら、名前を下に示した表の通りに作成します。
名前はそれぞれ下記の名前でないと機能しないので気をつけてください。
図は例として Ingest(queue) 用のものを入力しています。
| プライベートエンドポイントの種類 | 名前 |
|---|---|
| Platform | privatelink.purview-service.microsoft.com |
| Account | privatelink.purview.azure.com |
| Portal | privatelink.purviewstudio.azure.com |
| Ingest(blob) | privatelink.blob.core.windows.net |
| Ingest(queue) | privatelink.queue.core.windows.net |
それぞれどの値にするべきかは下記ドキュメントに記載されています。
念のため最新の情報を確認しておいてください。
[プライベート DNS ゾーン エディター]タブは特に記載なしでそのまま進めて大丈夫です。
[Virtual Network Links]タブは下図のように仮想ネットワーク リンクを新規で追加してあげます。
リンク名を記載して、プライベートエンドポイントを作成した仮想ネットワークを選択したら[作成]を押してください。
その他は特に追加の設定はありません。環境に応じてタグの設定などをしてプライベート DNS ゾーンを作成してください。
cf. 既に目的のプライベート DNS ゾーンが作成されている場合
別のユーザーなどが何かしらの理由で既に作成済みの場合は、既存のプライベートDNS ゾーンに対して仮想ネットワーク リンクの追加を行う必要があります。
その場合は該当リソースの詳細画面[DNSの管理]>[仮想ネットワーク リンク]から追加できるので、この画面から仮想ネットワーク リンクを追加してください。
プライベートエンドポイントとプライベート DNS ゾーンを紐づける
最後に、プライベートエンドポイントに対して先ほど作成したプライベート DNS ゾーンを紐づけて名前解決の際にプライベートエンドポイントのIPアドレスが返ってくるように設定してあげます。
各プライベートエンドポイントの詳細画面に移り、[設定]>[DNS の構成]から構成の追加を選択します。
各プライベートエンドポイントに対応するプライベート DNS ゾーンを選択して、DNS ゾーン グループと構成名を記載します。
DNS ゾーン グループと構成名は他リソースに直接紐づくようなものではなく、それぞれのプライベートエンドポイントで異なる値を入れても特に問題はありませんが DNS ゾーン グループは統一させておいた方が管理しやすいと思います。
正常に作成できていると、下図のようにカスタムDNSレコードが作成されます。

適切に接続できているか確認
ここまでの操作が適切にできていれば、プライベートエンドポイントを作成したサブネットに配置されている VM から適切に名前解決ができるようになっていると思います。
まとめ
頻発はしないと思いますが、スキャン用のVMが別のテナントに置かないと行けなかったりする場合でも問題なく閉域ネットワークを作成することができました。
Ingest プライベートエンドポイントを作成するときに Purview アカウント自体ではなくマネージドリソースを対象としないといけない点、プライベートエンドポイントを作成したら名前解決ができるように設定をしてあげる必要がある点はあまり慣れていない方だと躓きやすいポイントかと思います。













