広告

Azure Private Link と サービスエンドポイント

Azure

Azure Private Link と サービスエンドポイント

AzureのPaaSサービス(例えばAzure StorageやSQL Databaseなど)は、デフォルトではインターネットからアクセスされるようなものです。
ただ、多くの場合、内部でこれらの機能を使用した場合、外部公開はセキュリティ的に望ましくないことが多いです。
各PaaSサービスのファイアウォール機能を設定すれば、アクセスの制限はできますが、内部のみの通信なのに、わざわざインターネット経由でアクセスさせるのは無駄が多いです。

そこで、Azure Private Linkサービスエンドポイントの登場です。

Azure Private Linkとサービスエンドポイントはどちらでも内部ネットワーク(仮想ネットワーク)から直接PaaSサービスへアクセスを可能にする
これができることで、PaaSサービスへのインターネットからのアクセスを全閉じして、セキュリティを向上させることが可能になります。

Azure Private Link

Azure Private Linkの仕組みは以下の2部分で成り立ちます。

  • プライベートエンドポイント
  • Private Link Service

※ プライベートエンドポイントはサービスエンドポイントと全く別物なので、混乱しないように

Azure Private Linkの動作イメージ

公式ドキュメントのイメージ図が素晴らしかったので、使わせていただきます。

Private Link

イメージ図の通り、Private Linkを成り立つには、以下の部分があります。

  • PaaSサービス(またはStandard LoadBalancer)に紐付けているPrivate Link Service
  • アクセス元の仮想ネットワークにあるプライベートエンドポイント
  • プライベートエンドポイントとPrivate Link Serviceのリンク(Private Link)

プライベートエンドポイントへアクセスすることで、PaaSサービス(またはStandard LoadBalancer)へ直接アクセスするようにできます。

用途

上記の仕様から、基本Azure Private Linkは以下の2つの用途があります。

  • PaaSサービスを内部ネットワークから直接アクセスできるようにする
  • 自分が作ったサービス(Standard LoadBalancerと併用が必要)をPaaSサービスみたいな形で外の環境へ提供する

※ Standard LoadBalancer:SLB

特徴

イメージ図を細かく見ていくと、以下のAzure Private Linkの特徴がわかります。

  • プライベートエンドポイントは仮想ネットワークの内部IPを持つ
    • 作成いされたVNetのIPを動的に取得し(取得後不変となる)、プライベートエンドポイントが削除されるまで保持し続ける(IP変わらない)
  • オンプレミスから専用線(Expressroute、VPNなど)からでもプライベートエンドポイントへアクセス可能
  • VNetピアリングからでもプライベートエンドポイントへアクセス可能
  • プライベートエンドポイントとリンクするPrivate Link Serviceはテナント、サブスクリプション、リージョンを跨ぐことができる
  • プライベートエンドポイントへのアクセスはOutboundを開けなくても、Private Link Serviceへ通信は可能
  • Private Link Service側はInbound開けなくてもで、プライベートエンドポイントからの通信は可能
  • プライベートエンドポイントとPrivate Link Serviceの通信はMicrosoft内部ネットワーク経由する
    • インターネット経由はなし

また、AzureのPaaSサービスは上記のPrivate Link Serviceの一種と考えてれば、内部ネットワークから直接アクセスできる理由がわかると思います。
※ 実際、PaaSサービスは内部でPrivate Link Serviceのように(SLBあり)作られていると推測できるでしょう

PaaSサービスのプライベートエンドポイント作成

PaaSサービスを内部ネットワークでアクセスするには、プライベートエンドポイントを作成するだけで出来上がります。

【2021/02/07修正】
プライベートリンクがサポートするPaaSサービスの一覧は公式ドキュメント でご確認ください。
※ Azureは日々GAしていくため、公式資料を確認したほうが最新の状況が確認できます。
参考

NSGに関する制限事項

【2021/03/22更新】
プライベートリンクを構成すると、プライベートのIPを持つようになりますが、vNic(仮想NIC)を持っているわけではありません。そのため、NSGのルールは適用できません。
プライベートリンクを構成すると、プライベートのIPを持つようになります。
読み取り専用のvNic(仮想NIC)が作成されます。ただし、どのVMとも紐づいていないため、NSGのルールは適用できません。(サブネットのNSGルールも適用されない)

影響としては、例えばプライベートリンクへ「Inbound」でネットワーク内部からのアクセス制限ができなくなってしまいます。

ただ、ネットワーク内の他のワークロードにNSGの適用は可能なので、他のリソースの「Outbound」で制限することで、対策は可能です。
参考

作成

作成手順はここでは割愛しますが、公式ドキュメントに詳細な手順がございますので、ご参考いただければと思います。

サービスエンドポイント

サービスエンドポイントは仮想ネットワークの機能の一つで、仮想ネットワークから指定のPaaSサービスへ直接通信できるようにする設定です。
サービスエンドポイントもMicrosoftの内部ネットワーク(バックボーン)経由でPaaSサービスと通信しますので、インターネット経由しません(セキュア)。

【2021/02/07追記】
サービス エンドポイントを追加しても、パブリック エンドポイント(インターネットからの入口)は削除されません。 トラフィックがリダイレクトされるようになるだけです。
即ち、特定のAzureサービスのサービスエンドポイントを仮想ネットワークに追加したことで、追加したサービスへの通信はインターネットを経由しなくなります。

サービスエンドポイントがサポートするPaaSサービスの一覧は公式ドキュメント でご確認ください。
※ 対応可能なサービスはプライベートリンクよりは少ない

※ 2020/02/07時点では、Azure Container Registry (Microsoft.ContainerRegistry)はまだプレビュー状態です。

作成

作成手順はここでは割愛しますが、公式ドキュメント に詳細な手順がございますので、ご参考いただければと思います。

比較

どちらでもPaaSサービスを内部ネットワークからアクセスさせることを可能にできますが、サービスエンドポイントでは一部劣っている部分があります。

  • 対応しているPaaSサービスの種類:Private Linkの方が現時点多い
  • オンプレミスからのアクセス:サービスエンドポイントは、デフォルトで、オンプレミスから(ExpressRoute)の通信はできない
    • オンプレミスのNAT IPをAzureサービス リソースのIPファイアウォールで許可することで、通信が可能になる

最後に

最近サービスエンドポイントのキーワードがよく耳にしたので、関連するAzure Private Linkも一緒に調べてみました。
以前、自分もここら辺あやふやで、似たようなキーワードが出てきてよくわからなかったので、この記事ですっきりしていただける方がいたらありがたいです。

ここまで読んでいただいて、お疲れ様でした。

コメント

タイトルとURLをコピーしました