異なるAzureアカウント間でVMからSQLDBへセキュアに接続する方法を試したので書き残します。
アーキテクチャ図
-
以下のようにSubscription AのVMから、Subscription BのSQL Databaseへのプライベート接続ができたらOKです!

-
Azure VM、SQL Database、vNetといった主要リソースの作成手順は割愛します。
-
SQL Databaseのファイアウォールは一切許可していません。
SQL Databaseへのプライベートエンドポイント設定

-
Azure PortalよりSQL Serverを選択し、左バーから[プライベートエンドポイント接続]を選択します。

-
[+プライベートエンドポイント]を選択します。

-
名称とリージョンを選択します。

-
リソースの種類に[Microsoft.Sql/servers]を、リソースにアクセス対象のSQL Serverを、対象サブリソースに[sqlServer]を選択します。

-
事前に準備しておいたvNetとSubnetを選択します。

-
プライベートDNSはOnにします。

-
上記設定でプライベートエンドポイントを作成します。
-
SQL Serverのプライベートエンドポイント設定画面で、新規に追加されていればOKです。

異なるサブスクリプション間でvNet Peeringを設定する
権限設定

-
[Subscription B]のActive Directoryから[Account A]をゲストアカウントとして招待してもらいます。

-
[vNet B]のIAM設定を開き、[追加]を選択します。

-
ゲストアカウントとして追加した[Account A]に「ネットワーク共同作成者」権限を付与します

vNetピアリング

-
VMが配置されたSubscription Aの仮想ネットワークから、SQL Databaseが配置されたSubscription Bの仮想ネットワークに向けてピアリングします。
-
Azure Portalより、Subscription Bの仮想ネットワークの[プロパティ]を選択します。

-
[リソースID]をメモしておきます。

-
Azure Portalより、Subscription Aの仮想ネットワークの[ピアリング]を選択します。

-
[+追加]を選択します。

-
[ピアリングの名前]を入力します。

-
[リソースIDを知っている]にチェックを入れ、先ほどメモしたリソースIDを貼り付けます。

-
Subscription Bのディレクトリを選択し、認証を押下しピアリングを作成します。

-
ピアリングが[開始済み]になればOKです。

-
逆向きも同じ手順でピアリングします。
-
ピアリングが[開始済み]から[接続済み]になればOKです。

仮想ネットワークリンク

-
このままだとVMからSQLDBへ名前解決してもグローバルIPが引かれてしまうため、プライベートIPで接続できるようにします。
-
Subscription BのAzure Portalから[プライベートDNSゾーン]を選択します。

-
DNSゾーンを選択します。

-
左メニューより[仮想ネットワークリンク]を選択します。

-
[+追加]を選択します。

-
任意のリンク名を入力します。

-
[仮想ネットワークのリソースIDを知っています]にチェックを付け、Subscription Aの仮想ネットワークのリソースIDを貼り付けます。

-
Subscription Bのディレクトリを選択し、認証を押下します。

-
[自動登録を有効にする]にチェックを付けて、仮想ネットワークリンクを作成します。

-
リンクの状態[完了]で追加されていればOKです。

接続確認
- これでVMからSQL Databaseにアクセスするとプライベートリンク経由でのアクセスが可能になります。
以上