Azure Private Link のしくみ
Private Link の基本的な機能とベネフィットについては理解できました。 次に、Private Link のしくみを調べてみましょう。 具体的には、それがプライベート エンドポイントおよび Private Link サービスと連携して、Azure サービスへのプライベート アクセスをどのように提供するのかを考えてみましょう。 この情報は、Private Link が会社に適したソリューションであるかどうかを評価するのに役立ちます。
Private Link が Azure 仮想ネットワークに適合するしくみ
Private Link を使用すると、Azure サービスにプライベートにアクセスできます。 ここで言う "プライベート" とは、インターネットではなく Microsoft Azure のバックボーン ネットワークが接続によって使用されることを意味します。 その切り替えを行うため、Private Link により、Azure リソースの接続方法が、パブリック エンドポイントから "プライベート エンドポイント" に変更されます。
これで、パブリック IP アドレスを使用して Azure リソースにアクセスできなくなります。 代わりに、Azure によってサブネットのアドレス空間からリソースに割り当てられたプライベート IP アドレスを使用します。
重要なポイント。 Azure リソースは、実質的に、仮想ネットワークの一部になります。 ネットワーク上のクライアントは、この "Private Link リソース" に、他のネットワーク リソースと同じようにアクセスできます。
セキュリティをさらに強化するため、リソースへの接続には、Microsoft Azure のバックボーン ネットワークが使用されるようになります。 つまり、リソースとの間でやり取りされるすべてのトラフィックは、パブリック インターネットを完全にバイパスします。
ただし、使用することはなくなりますが、リソースのパブリック エンドポイントはまだ存在しています。 パブリック エンドポイントの存在は、使用されていなくても、セキュリティ上のリスクになります。 幸い、Azure リソースのパブリック エンドポイントを無効にすることができ、これによりその潜在的なセキュリティの問題が回避されます。
Azure プライベート エンドポイントのしくみ
リソースのインターフェイスをパブリックからプライベートに移行するにはどうすればよいでしょうか。 ネットワーク構成に Azure プライベート エンドポイントを追加します。 プライベート エンドポイントは、仮想ネットワークと指定された Azure サービスの間にプライベートな接続を作成するネットワーク インターフェイスです。
プライベート エンドポイントにより、仮想ネットワーク内の指定したサブネットのアドレス空間から、未使用のプライベート IP アドレスが取得されます。 たとえば、アドレス空間 10.1.0.0/24 を使用するサブネットがあるとします。 そのサブネット上の仮想マシンでは、10.1.0.20 や10.1.0.155 などの IP アドレスが使用されます。
プライベート エンドポイントにより、同じアドレス空間から 10.1.0.32 のような IP アドレスが取得されます。 その後、プライベート エンドポイントによって、そのアドレスが指定した Azure サービスにマップされます。 プライベート IP アドレスを使用すると、実質的にサービスが仮想ネットワーク内に取り込まれます。
Note
Private Link リソースに接続するクライアントは、プライベート エンドポイントに割り当てられた IP アドレスを接続文字列で使用する必要はありません。 プライベート DNS ゾーンと統合するようにプライベート エンドポイントを構成すると、代わりに、Azure によって自動的に FQDN がエンドポイントに割り当てられます。 たとえば、Private Link リソースが Azure Storage テーブルの場合、FQDN は mystorageaccount1234.table.core.windows.net のようになります。
プライベート エンドポイントを評価するときに考慮する必要がある重要な点を次に示します。
- プライベート エンドポイントにより、Azure 仮想ネットワーク上の仮想マシンや他のクライアントと、Private Link を使用する Azure サービスの間の、プライベート接続が提供されます。
- プライベート エンドポイントにより、リージョン内でピアリングされた仮想ネットワークと、Private Link を使用する Azure サービスの間の、プライベート接続が提供されます。
- プライベート エンドポイントにより、グローバルにピアリングされた仮想ネットワークと、Private Link を使用する Azure サービスの間の、プライベート接続が提供されます。
- プライベート エンドポイントにより、ExpressRoute プライベート ピアリングまたは VPN を介して接続されたオンプレミス ネットワークと、Private Link を使用する Azure サービスの間の、プライベート接続が提供されます。
- 仮想ネットワークごとに最大で 1,000 のプライベート エンドポイント インターフェイスをデプロイできます。
- Azure サブスクリプションごとに最大で 64,000 のプライベート エンドポイント インターフェイスをデプロイできます。
- 最大で 1,000 のプライベート エンドポイント インターフェイスを、同じ Private Link リソースにマップできます。
注意事項
複数のプライベート エンドポイント インターフェイスを 1 つのリソースにマップすることはできますが、それを行うと、DNS の競合や他の問題が発生する可能性があるため、推奨されません。 ベスト プラクティスは、ただ 1 つのプライベート エンドポイントを、1 つの Private Link リソースにマップすることです。
- 接続は一方向です。つまり、クライアントからプライベート エンドポイント インターフェイスへの接続のみが可能です。 Azure サービスがプライベート エンドポイント インターフェイスにマップされている場合、そのサービスのプロバイダーがプライベート エンドポイント インターフェイスに接続することは (または認識することさえ) できません。
- デプロイされたプライベート エンドポイント インターフェイスは読み取り専用であり、だれも変更できません。 たとえば、インターフェイスを別のリソースにマップすることや、インターフェイスの IP アドレスを変更することは、だれもできません。
- プライベート エンドポイントは、仮想ネットワークと同じリージョンにデプロイする必要がありますが、Private Link リソースは別のリージョンに配置できます。
Note
サービス エンドポイントとプライベート エンドポイントは何が違うのでしょう。 "サービス エンドポイント" を使用すると、Azure リソースは、指定された仮想ネットワークからの接続のみを許可するように構成されます。 ただし、その接続は依然としてリソースのパブリック エンドポイントを介して行われるため、セキュリティ上のリスクが残ります。 プライベート エンドポイントを使用すると、リソースのパブリック エンドポイントを無効にできるので、それらのリスクがなくなります。
Azure Private Link サービスのしくみ
Azure Private Link サービスを使用すると、カスタム Azure サービスで Private Link のベネフィットを利用できるようになります。 唯一の要件は、Azure Standard Load Balancer の内側でカスタム サービスを実行することです。 そのようにすると、Private Link サービス リソースを作成し、それをロード バランサーにアタッチできます。
注意事項
Azure によって提供されるロード バランサーには、Basic と Standard の 2 つのバージョンがあります。 Basic Load Balancer は Private Link サービスに対応していないため、必ず Standard Load Balancer を使用してください。
Private Link サービス リソースを作成すると、Azure によってリソースの "エイリアス" が発行されます。これは、prefix.guid.suffix という構文の、グローバルに一意の読み取り専用文字列です。
- prefix。 ユーザーが指定するカスタム サービスの名前。
- guid。 Azure によって自動的に生成されるグローバル一意 ID。
- suffix。 region.azure.privatelinkservice というテキスト。region は、Private Link サービスがデプロイされているリージョンです。
Private Link サービスのエイリアスを、カスタム サービスのコンシューマーと共有します。 各コンシューマーは、独自の Azure 仮想ネットワーク内にプライベート エンドポイントを設定します。 その後、コンシューマーは、そのエンドポイントを Private Link サービスのエイリアスにマップします。
Private Link サービスを評価するときに考慮する必要がある重要な点を次に示します。
- Private Link サービスには、任意のパブリック リージョン内のプライベート エンドポイント経由でアクセスできます。
- Private Link サービスは、Standard Load Balancer およびカスタム Azure サービスがホストされている仮想ネットワークと同じリージョンに、デプロイする必要があります。
- Azure サブスクリプションごとに最大で 800 の Private Link サービス リソースをデプロイできます。
- 最大で 1,000 のプライベート エンドポイント インターフェイスを、1 つの Private Link サービス リソースにマップできます。
- 複数の Private Link サービス リソースを、異なるフロントエンド IP 構成を使用して、同じ Standard Load Balancer にデプロイできます。
まとめ
目標は、パブリック インターネットを使用しないで Azure リソースにアクセスすることですか。 カスタム Azure リソースをプライベートに提供する必要がありますか。 どちらか一方または両方の質問に対する答えが "はい" の場合、Private Link、プライベート エンドポイント、Private Link サービスを使用して次のように実現できます。
- Microsoft パートナーから Azure PaaS サービスまたは Azure サービスにプライベートにアクセスするには、お使いの Azure 仮想ネットワークのサブネット内にプライベート エンドポイントを作成します。 そのプライベート エンドポイントで、Private Link を使用して、Microsoft Azure バックボーン経由でプライベート IP アドレスを使用して Azure サービスにアクセスします。 ExpressRoute プライベート ピアリングまたは VPN トンネルを使用する、ピアリングされた仮想ネットワークとオンプレミス ネットワークからは、プライベート エンドポイント経由で Azure サービスにアクセスすることもできます。
- カスタム Azure サービスへのプライベート アクセスを提供するには、Standard Load Balancer の内側にサービスを配置し、Private Link サービス リソースを作成して、それを Load Balancer のフロントエンド IP 構成にアタッチします。