【Azure】仮想ネットワークサービスエンドポイントとは?

Azureを勉強している中でサービスエンドポイントという用語がでてきたので調べてみました。あと、似ている用語でプライベートエンドポイントというものがありましたのでそれらの違いも記載しておきます。

目次

サービスエンドポイントとは?

ストレージアカウントやSQLデータベースなど仮想ネットワーク内に直接デプロイできないAzureサービスへのアクセスを特定のサブネットからのみに制限し、仮想ネットワークからAzureバックボーンネットワーク上で最適化されたルートを介してそれらのAzureサービスに直接アクセスする機能です。

サービスエンドポイントは、各Azureサービスのファイアウォール機能と連動して動作します。

サービスエンドポイントのメリット

① セキュリティ強化

Azureサービスへのアクセスを仮想ネットワークからのトラフィックのみに限定し、インターネットからの接続を拒否することができます。また、仮想ネットワークからAzureサービスへのアクセスは通常、仮想ネットワークからSNATされたパブリックIPアドレスを接続元IPアドレスとして使用します(不特定のパブリックIPアドレスからのアクセスを許容する必要がある)が、サービスエンドポイントを使用すると、仮想ネットワーク内のプライベートIPアドレスが接続元IPアドレスに切り替わります。そのため、AzureサービスのFW設定による接続制御が可能になります。

② トラフィック最適化

サービスエンドポイントを使用すると、Azureバックボーンネットワーク上で最適化されたルートを経由して、仮想ネットワークからAzureサービスへ安全に直接アクセスできるようになります。そのため、セキュリティだけでなく通信の安定性といったメリットもあります。

③ 設定が簡単

サービスエンドポイントを設定する方法は、サブネットの設定画面で対象サービスのエンドポイントを選択するだけです。以前はパブリックIPアドレスを予約するなどの手間が発生したようですが、今では簡単に設定することが可能です。

サービスエンドポイントの料金

サービスエンドポイントを使用する上で料金は発生しません。Azure Storageなどのサービス利用料金のみが適用されます。

サービスエンドポイントの制限事項・注意点

以下、サービスエンドポイントを使用する上での制限事項・注意点を記載します。

① アクセス先は制御できないため情報漏洩のリスクがある

後述のプライベートエンドポイントの説明でも触れていますが、サービスエンドポイントではアクセス元(仮想ネットワーク)は制御できますが、アクセス先(Azureリソース)は制御できません(*1)。そのため、他のAzureアカウントのAzureリソース(例:ストレージアカウント)にアクセスできてしまう点については注意が必要です。

(*1)サービスエンドポイントポリシーを使用すると、サービスエンドポイント経由のAzure Storageアカウントへのトラフィックを制御することができるようです(任意のストレージアカウントに対してのみアクセスを許可し、それ以外のストレージアカウントへのアクセスを拒否します)。詳細はAzure Storageの仮想ネットワークサービスエンドポイントポリシーを参照してください。

② オンプレミスからのトラフィックに使用不可

サービスエンドポイントを使用してAzureサービスへのアクセスを仮想ネットワークからに限定した場合、基本的にオンプレミスからはアクセスできません。オンプレミスからアクセスする場合は、オンプレミスまたはExpressRouteのパブリックIPアドレス(通常NAT)を許可する必要があります。それらのIPアドレスは、AzureサービスのIPファイアウォール構成を使用して追加します。

③ 仮想ネットワークとAzureサービスのリージョン

Azure Storage(GRSおよびRA-GRSのプライマリアカウント)またはAzure SQL Databaseの場合、仮想ネットワークとAzureサービスは同じリージョンにある必要があります。それ以外のサービスは、任意のリージョンでAzureサービスへのアクセスを仮想ネットワークに限定することができます。

④ サービスエンドポイントの構成中はトラフィックが一時的に中断される

通常、仮想ネットワークからAzureサービスへのトラフィックは、パブリックIPアドレスが発信元IPアドレスになります。サービスエンドポイントを設定すると、仮想ネットワークのプライベートIPアドレスを発信元IPアドレスに切り替えます。この切り替えの間、パブリックIPアドレスを使用している既存のAzureサービスのファイアウォール機能が動作を停止するので、サービスエンドポイントを有効化または無効化するときに重要な処理が動作していないことを確認してください。(仮想マシンに割り当てられたパブリックIPアドレスとやり取りするトラフィックへの影響はありません)

⑤ Azure Resource Managerデプロイモデルを使用してデプロイされた仮想ネットワークでのみ使用可能

サービスエンドポイントを使用した接続は、Azure Resource Managerデプロイモデルを使用してデプロイされた仮想ネットワークでのみ可能です。それ以外の方法でデプロイした仮想ネットワークでは利用できません。

プライベートエンドポイントとは?

サービスエンドポイントと似た用語としてプライベートエンドポイントがあります。これは、Azure Private Linkを使用するサービスにプライベート且つ安全に接続するためのネットワークインターフェイスです。プライベートエンドポイントを使用することで、Azure Private LinkをサポートするPaaSサービスや独自のPrivate Linkサービスに接続可能です。

プライベートエンドポイントのメリット(サービスエンドポイントとの比較)

プライベートエンドポイントも、仮想ネットワーク内のエンドポイントからAzureサービスへのプライベートアクセスを提供できるという点ではサービスエンドポイントと同じです。ここでは、サービスエンドポイントとプライベートエンドポイントで何が違うのか見ていきたいと思います。

① データ漏洩防止

サービスエンドポイントの場合、接続元の仮想ネットワークを制限することはできますが、接続先となるAzureリソースを制限することはできません。これは、サービスエンドポイントの適用範囲がAzureサービス全体(例:”全て”のユーザのストレージアカウント)であるためです(*1)。つまり、「企業のAzure環境から個人のストレージアカウントにデータを格納する」といったことができてしまい情報漏洩になる可能性があります。プライベートエンドポイントの適用範囲は、個々のインスタンス(例:特定のユーザのストレージアカウント)になるため、特定のAzureリソースに対してのみアクセスを許可することが可能です。

(*1)サービスエンドポイントポリシーを使用すると、サービスエンドポイント経由のAzure Storageアカウントへのトラフィックを制御することができるようです(任意のストレージアカウントに対してのみアクセスを許可し、それ以外のストレージアカウントへのアクセスを拒否します)。詳細はAzure Storageの仮想ネットワークサービスエンドポイントポリシーを参照してください。

② プライベートIPアドレス経由でのアクセス

サービスエンドポイントを使用する場合、通常のアクセスと同様、接続先IPアドレスはパブリックIPアドレスのままでした(あくまで接続元を特定の仮想ネットワークに限定するだけ)。プライベートエンドポイントを使用すると、仮想ネットワーク内のプライベートIPアドレスが接続先IPアドレスになります。そのため、Private Linkサービスを利用したサービスを独自の仮想ネットワーク内に構築し、パブリックIPアドレスを用意することなく提供することが可能です。

③ オンプレミスまたは他の仮想ネットワークからAzureリソースへのアクセス

サービスエンドポイントの場合、サービスエンドポイントを作成した仮想ネットワークからのみアクセス可能でしたが、プライベートエンドポイントの場合、オンプレミス(VPNかExpressRoute経由)またはピアリングされた仮想ネットワークからAzureリソースへのプライベートアクセスが可能です。

④ 異なるリージョンからのアクセス

サービスエンドポイントの場合、仮想ネットワークと同じリージョンにあるAzureリソースにのみアクセス可能です(2022年2月時点のAzure Storage(プレビュー版)では、他のリージョンの仮想ネットワークからのアクセスも可能)。プライベートエンドポイントの場合、仮想ネットワークのリージョンと異なるリージョンにあるAzureリソースへもアクセス可能です。

プライベートエンドポイントの料金

プライベートエンドポイントを使用する際は以下の利用料が発生します。(2023年11月時点)

プライベートエンドポイント1.497 [円/時間]
受信データ処理量1.4961 [円/GB] ※1 PBまでの場合(それ以上は数PB単位で値引きされる)
送信データ処理量1.4961 [円/GB] ※1 PBまでの場合(それ以上は数PB単位で値引きされる)

最新情報は以下の公式サイトを確認してください。

プライベートエンドポイントの制限事項・注意点

DNS構成の変更が必要

プライベートエンドポイントを使用すると、接続先IPアドレスがプライベートIPアドレスになリます。仮想ネットワーク内では名前解決はAzure DNS Private Zonesで可能(仮想ネットワークにカスタムDNSの設定をしていない場合のみ)ですが、オンプレミスからアクセスする場合、名前解決によってプライベートIPアドレスを取得できないため、オンプレミスのDNSにAzureサービスのFQDNを登録する(自分でDNSレコードを管理する)必要が出てきます。

この記事を書いた人

目次