こんにちは、今日は Azure のネットワークで理解と使い分けが難しい「サービスエンドポイント」と「プライベートエンドポイント」についてまとめてみました
Azure の PaaS のエンドポイント
Azure の PaaS サービスの多くはパブリック IP アドレス経由で利用します
これは大前提なので特別な構成(App Service Environment や SQL DB Managed Instanceなど)を使わないと防ぐことできません
しかも特別な構成は費用がとても高くなります
そこで登場するのがサービスエンドポイントとプライベートエンドポイントです
サービスエンドポイントとは
サービスエンドポイントとは PaaS サービスにファイアウォールを設定しアクセス可能な範囲を絞る方法です
何も設定していないと以下のようにどこからでもアクセスが可能です
※もちろん接続文字列や適切な権限がないとアクセスができません。しかしそれが流出すると、どこからでもアクセスが可能になります
サービスエンドポイントを有効化すると特定の Azure Vnet から(正確にはサブネットから)のみにアクセスを制限することができます
そしてファイアウォールの設定をすると特定のオンプレミスからのアクセスを許可することもできます
この時エンドポイントはパブリック IP のままとなります
以下の注意点があります
- NSGでストレージアカウントを許可する必要がある
- オンプレミス間でExpreeRouteを使用している場合、Microsoft ピアリングを使用する必要がある
Azure 仮想ネットワーク サービス エンドポイント | Microsoft Learn
プライベートエンドポイント
サービスエンドポイントはアクセス元を制限できる一方でパブリック IP を使うのはそのままでした
プライベートエンドポイントを使うと PaaS サービスにプライベート IP 経由でアクセスすることが可能になります
プライベート IP は Vnet 内に作成されますそのため
- NSGでストレージアカウントを許可する必要がある
→NSGでVnet内だけを許可すればよい - オンプレミス間でExpreeRouteを使用している場合、Microsoft ピアリングを使用する必要がある
→プライベート ピアリングだけでよい
というようにサービスエンドポイントでの注意点をクリアすることができます
ただし、DNS での名前解決をプライベート IP にしないといけないため DNS レコードの管理が必要になります
Azure のサービスを利用する場合はプライベート DNS ゾーンや IaaS VM 上に DNS を立てるなどの方法があります
プライベート エンドポイントとは - Azure Private Link | Microsoft Learn
まとめ
今回はサービスエンドポイントとプライベートエンドポイントについてまとめました
次回は NSG がプライベートエンドポイントに対応したのでこちらをまとめてみたいと思います