Azure Static Web Apps でのプライベート エンドポイントの構成
プライベート エンドポイント (プライベート リンクとも呼びます) を使用して、静的 Web アプリへのアクセスを制限し、プライベート ネットワーク以外からのアクセスを禁止することができます。
動作方法
Azure Virtual Network (VNet) は、従来のデータ センターにあるものと同様のネットワークですが、VNet 内のリソースは、Microsoft のバックボーン ネットワーク上で互いに安全に通信します。
Static Web Apps にプライベート エンドポイントを構成すると、VNet のプライベート IP アドレスを使用できるようになります。 このリンクが作成されると、静的 Web アプリが VNet に統合されます。 その結果、静的 Web アプリはパブリック インターネットから利用できなくなり、Azure VNet 内のマシンからのアクセスのみが可能になります。
Note
プライベート エンドポイントの背後に配置されたアプリケーションは、VNet が位置しているリージョンでしか利用できません。 その結果、複数のポイント オブ プレゼンスでアプリケーションを利用することはできなくなります。
アプリでプライベート エンドポイントが有効になっているとき、要求元がパブリック IP アドレスの場合、サーバーから 403
ステータス コードが返されます。 この動作は実稼働環境とあらゆるステージング環境の両方に適用されます。 アプリにアクセスする唯一の方法は VNet 内にデプロイされているプライベート エンドポイントを使用することです。
静的 Web アプリの既定の DNS 解決方法は引き続き存在し、パブリック IP アドレスにルーティングされます。 プライベート エンドポイントからは VNet 内で 2 つの IP アドレスが公開されます。1 つは実稼働環境用、もう 1 つはステージング環境用です。 クライアントがアプリに正しくアクセスできるよう、クライアントでアプリのホスト名をプライベート エンドポイントの該当 IP アドレスに解決されることを確認してください。 これは、既定のホスト名と、静的 Web アプリに構成されているカスタム ドメインに必要です。 プライベート エンドポイントの作成時にプライベート DNS ゾーンを選択した場合 (下の例を参照)、この解決方法は自動的に行われます。推奨される解決方法です。
オンプレミスから接続する場合、あるいはプライベート DNS ゾーンを試用しない場合、要求がプライベート エンドポイントの該当 IP アドレスにルーティングされるよう、アプリケーションの DNS レコードを手動で構成します。 プライベート エンドポイント DNS 解決に関する詳細はこちらにあります。
Note
プライベート エンドポイントは、Web サイトに送信される受信トラフィックを特定の仮想ネットワークに制限します。 新しいサイト資産の展開には適用されません。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。
- Azure VNet。
- Azure Static Web Apps を使用してデプロイされ、Standard ホスティング プランを使用するアプリケーション。
プライベート エンドポイントの作成
ここでは、静的 Web アプリのプライベート エンドポイントを作成します。
重要
プライベート エンドポイントを使用するには、Standard ホスティング プランで静的 Web アプリをデプロイする必要があります。 ホスティング プランは、サイド メニューの [ホスティング プラン] オプションから変更できます。
ポータルで静的 Web アプリを開きます。
サイド メニューから [プライベート エンドポイント] オプションを選択します。
[追加] を選択します。
[Add Private Endpoint] (プライベート エンドポイントの追加) ダイアログで、次の情報を入力します。
設定 値 名前 「myPrivateEndpoint」と入力します。 サブスクリプション サブスクリプションを選択します。 Virtual Network 仮想ネットワークを選択します。 Subnet サブネットを選択します。 プライベート DNS ゾーンとの統合 既定値の [はい] のままにします。 [OK] を選択します。
Note
プライベート DNS ゾーンの名前は、Static Web Apps の既定のドメイン名サフィックスに依存します。 たとえば、アプリの既定のドメイン サフィックスが 3.azurestaticapps.net
の場合、プライベート DNS ゾーンの名前は privatelink.3.azurestaticapps.net
です。 新しい Static Web Apps が作成されると、既定のドメイン サフィックスが以前の Static Web Apps の既定のドメイン サフィックスと異なる場合があります。 自動デプロイ プロセスを使用してプライベート DNS ゾーンを作成する場合は、アプリで DefaultHostname
プロパティを使用して、プログラムによってドメイン サフィックスを抽出できます。 DefaultHostname
プロパティの値は <STATIC_WEB_APP_DEFAULT_DOMAIN_PREFIX>.<PARTITION_ID>.azurestaticapps.net
または STATIC_WEB_APP_DEFAULT_DOMAIN_PREFIX.azurestaticapps.net
のようになります。 既定のドメイン サフィックスは <PARTITION_ID>.azurestaticapps.net
または azurestaticapps.net
のようになります。
プライベート エンドポイントのテスト
アプリケーションは非公開になり、仮想ネットワークの内部からしかアクセスできなくなりました。 テストするには、仮想ネットワーク内に仮想マシンをセットアップし、サイトにアクセスします。