2023年12月21日木曜日

【Azure】エンドポイント

Azureのサービスへのアクセス場所(URL)を「エンドポイント」と呼びます。

エンドポイントは以下の3種類があります。

  • パブリックエンドポイント
  • サービスエンドポイント
  • プライベートエンドポイント

パブリックエンドポイント

パブリックエンドポイントは、インターネットに公開されるURLで、権限さえあれば誰でも利用できます。インターネット上に存在するので、アクセス元IPアドレスもパブリックIPアドレスでないといけません。

ストレージアカウントには「ストレージアカウントファイアウォール」という機能があり、以下のような使い方ができます。

  • パブリックエンドポイントの利用を禁止して、サービスエンドポイントのみを許可
    (この場合でもプライベートエンドポイントの利用は可能)
  • パブリックエンドポイントの利用を、指定したパブリックIPアドレスのみ例外として許可

ただし、パブリックエンドポイントのアクセスを許可できるIPアドレスは以下の条件があります。

  • プライベートIPアドレス不可(つまりサービスエンドポイントは制限できない)
  • AzureサービスのパブリックIPアドレス不可
    (つまりAzure上の仮想マシンは制限できない

そのため、ストレージアカウントファイアウォールでは、パブリックエンドポイントの利用を制限しながら、Azure上の仮想マシンに対してアクセスを許可するには、サービスエンドポイントを使うしかありません。

後述するサービスエンドポイントは、Azure内にのみ公開されるため、Azure上の仮想ネットワーク(VNET)からのみアクセスできます。多くの場合、アクセス元はAzure仮想マシン(Azure VM)です

サービスエンドポイント

サービスエンドポイントを利用するには、VNETのサブネットに対して「どのサービスをサービスエンドポイント経由で使うか」を指定します。これにより、ルーティングテーブルが更新され、インターネットではなくAzureネットワークを経由してアクセスできるようになります。

更新されるルーティングテーブルはサブネットに割り当てられたものなので、設定はサブネット単位です。また、該当サブネットから発信されなかった場合、たとえばVPN接続された社内ネットワークなどからは利用できません。

この時、アクセス元のIPアドレスはVNET上のプライベートIPアドレスになりますが、アクセス先のIPアドレス自体はパブリックIPアドレスのままです。

プライベートエンドポイント

プライベートエンドポイントは、AzureサービスをVNETに引き込んだようなイメージで、VNETに割り当てられたプライベートアドレスを持ちます。もちろんアクセス元もプライベートIPアドレスのままです。

プライベートアドレスなので、基本的にはVNETからのみアクセスできるのですが、プライベートIPアドレスが明示的に与えられるため、VPNなどを使うことで社内からも利用できます。

まとめ

3つのエンドポイントそれぞれのアクセス経路は以下の図のように考えると分かりやすいでしょう。

サービスエンドポイント

アクセス元とアクセス先のIPアドレスをまとめました。

エンドポイントの種類 送信元 宛先
パブリックエンドポイント パブリックIP パブリックIP
サービスエンドポイント プライベートIP パブリックIP
プライベートエンドポイント プライベートIP プライベートIP