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 解決に関する詳細はこちらにあります。

前提条件

プライベート エンドポイントの作成

ここでは、静的 Web アプリのプライベート エンドポイントを作成します。

重要

プライベート エンドポイントを使用するには、Standard ホスティング プランで静的 Web アプリをデプロイする必要があります。 ホスティング プランは、サイド メニューの [ホスティング プラン] オプションから変更できます。

  1. ポータルで静的 Web アプリを開きます。

  2. サイド メニューから [プライベート エンドポイント] オプションを選択します。

  3. [追加] を選択します。

  4. [Add Private Endpoint] (プライベート エンドポイントの追加) ダイアログで、次の情報を入力します。

    設定
    名前 myPrivateEndpoint」と入力します。
    サブスクリプション サブスクリプションを選択します。
    Virtual Network 仮想ネットワークを選択します。
    Subnet サブネットを選択します。
    プライベート DNS ゾーンとの統合 既定値の [はい] のままにします。

    ./media/create-private-link-dialog.png

  5. [OK] を選択します。

Note

プライベート DNS ゾーンの名前は、静的 Web アプリの既定のドメイン名サフィックスによって異なります。 たとえば、アプリの既定のドメイン サフィックスが の場合、 3.azurestaticapps.netプライベート DNS ゾーンの名前は です privatelink.3.azurestaticapps.net。 新しい静的 Web アプリを作成すると、既定のドメイン サフィックスが、以前の静的 Web アプリの既定のドメイン サフィックスとは異なる場合があります。 自動デプロイ プロセスを使用してプライベート DNS ゾーンを作成する場合は、アプリで プロパティを DefaultHostname 使用して、プログラムによってドメイン サフィックスを抽出できます。 プロパティの値はDefaultHostname、 または のようになります<STATIC_WEB_APP_DEFAULT_DOMAIN_PREFIX>.<PARTITION_ID>.azurestaticapps.netSTATIC_WEB_APP_DEFAULT_DOMAIN_PREFIX.azurestaticapps.net。 既定のドメイン サフィックスは、 または のようになります<PARTITION_ID>.azurestaticapps.netazurestaticapps.net

プライベート エンドポイントのテスト

アプリケーションは非公開になり、仮想ネットワークの内部からしかアクセスできなくなりました。 テストするには、仮想ネットワーク内に仮想マシンをセットアップし、サイトにアクセスします。

次のステップ