Azure VM から Azure SQL Server にプライベート接続したいが失敗する

正津 康弘 0 評価のポイント
2025-04-25T02:58:47.41+00:00

Azure VM から sqlcmd で Azure SQL Server に接続しようとしましたが、以下のエラーで失敗します。

mssql: login error: Reason: An instance-specific error occurred while establishing a connection to SQL Server. Connection was denied since Deny Public Network Access is set to Yes (https://docs.microsoft.com/azure/azure-sql/database/connectivity-settings#deny-public-network-access). To connect to this server, use the Private Endpoint from inside your virtual network (https://docs.microsoft.com/azure/sql-database/sql-database-private-endpoint-overview#how-to-set-up-private-link-for-azure-sql-database).

(このメッセージが計2回)

SQL Serverのネットワーク設定は以下です。

 ・パブリックアクセスは無効

 ・プライベートエンドポイントは SQL Server のネットワーク設定から作成

   ・VNetはVMと同じ場所

   ・プライベートDNS統合を実施

SQL ServerのFQDN名(sqlcmdで指定したサーバ名)にpingすると、プライベートエンドポイントのIPではないものに送信しているように見えます。

プライベートDNSゾーン: privatelink.database.windows.net には Aレコードでサーバ名とプライベートエンドポイントのIPが登録されています。

私の理解では

(1) VMからSQL ServerにFQDN指定してアクセスしようとすると、プライベートDNSで名前解決して、SQL ServerのプライベートエンドポイントのIPアドレスを取得

(2) VMから(1)のIPに向かって送信し、プライベートエンドポイント届いた通信はSQL Serverに転送される

という動きを想定しており、ping先がプライベートエンドポイントのIPではなかったことから(1)で失敗しているのではないかと予想しています。

しかし、そもそも上記の理解が合っているかも自信がない状態のため、調査の方法からしてアドバイス頂けると助かります。

何卒よろしくお願いいたします。

コミュニティ センターは監視されていません
0 件のコメント コメントはありません
{count} 件の投票

1 件の回答

並べ替え方法: 新しい順
  1. 正津 康弘 0 評価のポイント
    2025-05-15T00:39:16.5433333+00:00

    自己解決したので、原因記載しておきます。

    エラーの原因はやはりプライベートDNSで名前解決できていなかったことでした。

    名前解決できていなかった原因は、プライベートDNSゾーンの仮想ネットワークリンクの設定が不足していた(VMが接続しているVNetへのリンクが無かった)ことでした。

    以上です。

    0 件のコメント コメントはありません

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。