こんにちは。インフラエンジニアの佐藤です。
今回はAzure仮想ネットワークにおける「サービスエンドポイント」の利用について紹介します。
サービスエンドポイント(Service Endpoint)とは
仮想ネットワーク内からAzurePaaSへ接続する際、送信元のパブリックIPから、PaaSの持つパブリックIPに対して接続が行われます。
しかし、ネットワークセキュリティグループ(NSG)側で外部への送信を拒否している場合や、ルーティングを構成している場合PaaSへの接続が出来ません。
このような閉じた環境からPaaSへのアクセスを行う際、サービスエンドポイントを構成することで、プライベートIPを利用して接続をすることが可能です。
具体的な利用方法として、
・ExpressRoute等の閉域接続時のAzure内からのPaaS利用
・フロントが動的IPを持つPaaSサービスへのアクセス
などが一般的な使い方となります。
対応リソース(一部)
・Azure Storage
・SQL Server
・Key Vault
・App Service
など
設定方法
今回は閉域のネットワークにデプロイしたAzureVMと、ストレージアカウントを利用して実際に接続を試してみます。
まずストレージ側にテキストファイルを用意します。


VNET側で東日本リージョンに対してサービスエンドポイントを有効にします
※ストレージの場合、デフォルトでペアリージョンへの接続が有効となります

ストレージ側でもサービスエンドポイントを有効にします


ストレージへ接続し、テキストの中身が表示されました

閉じた環境のVMから、サービスエンドポイント経由でストレージに接続が出来ました。
注意点
・PaaSからVNETへの接続
サービスエンドポイントはVNET内→PaaSへの一方通行となるため、PaaSからVNET内へアクセスする際には利用出来ないので注意
・リージョン
基本的に同一リージョン内での構成となるため、SQLServerなどペアリージョンでフェールオーバグループを構成する場合、切り替え時のオペレーションの注意が必要となる(ストレージのように伊津部例外もある)
おわりに
同様の条件でより厳密なセキュリティ対策を施す場合、Private Link(プレビュー)の利用を推奨します。
Private Linkについてはこちらの記事が参考になります。