クイックスタート: Azure CLI を使用してプライベート エンドポイントを作成する
プライベート エンドポイントを使用して Azure Web アプリに安全に接続することにより、Azure Private Link の使用を開始します。
このクイックスタートでは、Azure Web アプリのプライベート エンドポイントを作成した後、仮想マシンを作成およびデプロイしてプライベート接続をテストします。
Azure SQL や Azure Storage など、さまざまな Azure サービスに対してプライベート エンドポイントを作成できます。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 Azure アカウントをまだ持っていない場合は、無料でアカウントを作成します。
サブスクリプションがアクティブであることを確認するには、Azure portal にサインインし、
az login
を実行してバージョンを確認します。対象の Azure サブスクリプションにデプロイされている "PremiumV2 レベル" 以上のアプリ サービス プランを持つ Azure Web アプリ。
詳細および例については、「クイックスタート: Azure に ASP.NET Core Web アプリを作成する」を参照してください。
この記事の Web アプリの例は 、myWebApp1979 という名前です。 この例をお使いの Web アプリの名前に置き換えます。
インストールされている Azure CLI の最新バージョン。
az --version
を実行して、ターミナルまたはコマンド ウィンドウの Azure CLI のバージョンを確認します。 最新バージョンについては、最新のリリース ノートを参照してください。Azure CLI の最新バージョンがない場合は、お使いのオペレーティング システムまたはプラットフォームのインストール ガイドに従ってそれを更新します。
リソース グループを作成する
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
まず az group create を使用してリソース グループを作成します。
az group create \
--name CreatePrivateEndpointQS-rg \
--location eastus
仮想ネットワークと bastion ホストの作成
プライベート エンドポイントのプライベート IP アドレスをホストするには、仮想ネットワークとサブネットが必要です。 仮想マシンに安全に接続してプライベート エンドポイントをテストするための bastion ホストを作成します。 仮想マシンは、後のセクションで作成します。
az network vnet create を使用して仮想ネットワークを作成します。
az network vnet create \
--resource-group CreatePrivateEndpointQS-rg \
--location eastus \
--name myVNet \
--address-prefixes 10.0.0.0/16 \
--subnet-name myBackendSubnet \
--subnet-prefixes 10.0.0.0/24
az network vnet subnet create を使用して、bastion サブネットを作成します。
az network vnet subnet create \
--resource-group CreatePrivateEndpointQS-rg \
--name AzureBastionSubnet \
--vnet-name myVNet \
--address-prefixes 10.0.1.0/27
az network public-ip create を使用して、bastion ホストのパブリック IP アドレスを作成します。
az network public-ip create \
--resource-group CreatePrivateEndpointQS-rg \
--name myBastionIP \
--sku Standard \
--zone 1 2 3
az network bastion create を使用して、bastion ホストを作成します。
az network bastion create \
--resource-group CreatePrivateEndpointQS-rg \
--name myBastionHost \
--public-ip-address myBastionIP \
--vnet-name myVNet \
--location eastus
Azure Bastion ホストがデプロイされるまでに数分かかる場合があります。
プライベート エンドポイントの作成
プライベート エンドポイントをサポートする Azure サービスは、プライベート エンドポイントと仮想ネットワークへの接続を設定するために必要です。 この記事の例では、前提条件の Azure WebApp を使用します。 プライベート エンドポイントをサポートする Azure サービスの詳細については、「Azure Private Link の可用性」を参照してください。
プライベート エンドポイントは、静的な、または動的に割り当てられた IP アドレスを持つことができます。
重要
この記事の手順を続行するには、以前にデプロイした Azure WebApp が必要です。 詳細については、「前提条件」を参照してください。
az webapp list を使用して、以前に作成した Web アプリのリソース ID をシェル変数に配置します。 az network private-endpoint create を使用してプライベート エンドポイントを作成します。
id=$(az webapp list \
--resource-group CreatePrivateEndpointQS-rg \
--query '[].[id]' \
--output tsv)
az network private-endpoint create \
--connection-name myConnection
--name myPrivateEndpoint \
--private-connection-resource-id $id \
--resource-group CreatePrivateEndpointQS-rg \
--subnet myBackendSubnet \
--group-id sites \
--vnet-name myVNet
プライベート DNS ゾーンを構成する
プライベート DNS ゾーンは、仮想ネットワーク内のプライベート エンドポイントの DNS 名を解決するために使用されます。 この例では、Azure WebApp の DNS 情報を使用しています。プライベート エンドポイントの DNS 構成の詳細については、「Azure プライベート エンドポイントの DNS 構成」を参照してください。
az network private-dns zone create を使用して、新しいプライベート Azure DNS ゾーンを作成します。
az network private-dns zone create \
--resource-group CreatePrivateEndpointQS-rg \
--name "privatelink.azurewebsites.net"
az network private-dns link vnet create を使用して、前に作成した仮想ネットワークに DNS ゾーンをリンクします。
az network private-dns link vnet create \
--resource-group CreatePrivateEndpointQS-rg \
--zone-name "privatelink.azurewebsites.net" \
--name MyDNSLink \
--virtual-network myVNet \
--registration-enabled false
az network private-endpoint dns-zone-group create を使用して、DNS ゾーン グループを作成します。
az network private-endpoint dns-zone-group create \
--resource-group CreatePrivateEndpointQS-rg \
--endpoint-name myPrivateEndpoint \
--name MyZoneGroup \
--private-dns-zone "privatelink.azurewebsites.net" \
--zone-name webapp
テスト用の仮想マシンを作成する
静的 IP アドレスとプライベート エンドポイントの機能を確認するには、テスト仮想マシンが仮想ネットワークに接続されている必要があります。
az vm create を使用して、仮想マシンを作成します。
az vm create \
--resource-group CreatePrivateEndpointQS-rg \
--name myVM \
--image Win2019Datacenter \
--public-ip-address "" \
--vnet-name myVNet \
--subnet myBackendSubnet \
--admin-username azureuser
注意
パブリック IP アドレスが割り当てられていないか、内部の Basic Azure Load Balancer のバックエンド プールにある VM に対しては、Azure によってデフォルト送信アクセス IP が提供されます。 デフォルト送信アクセス IP メカニズムは、構成できないアウトバウンド IP アドレスを提供します。
パブリック IP アドレスが VM に割り当てられている場合、アウトバウンド規則の有無にかかわらず VM が Standard Load Balancer のバックエンド プールに配置されている場合、または VM のサブネットに Azure Virtual Network NAT ゲートウェイ リソースが割り当てられている場合、既定の送信アクセス IP は無効になります。
フレキシブル オーケストレーション モードの仮想マシン スケール セットによって作成された VM には、既定の送信アクセスがありません。
Azure のアウトバウンド接続の詳細については、「Azure での既定の送信アクセス」および「送信接続での送信元ネットワーク アドレス変換 (SNAT)を使用する」を参照してください。
プライベート エンドポイントへの接続をテストする
前の手順で作成した VM を使用して、プライベート エンドポイント経由で Web アプリに接続します。
Azure portal にサインインします。
ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 [仮想マシン] を選択します。
[myVM] を選択します。
myVM の [概要] ページで [接続]、[Bastion] の順に選択します。
VM の作成時に使用したユーザー名とパスワードを入力します。 [接続] を選択します。
接続した後、サーバーで PowerShell を開きます。
「
nslookup mywebapp1979.azurewebsites.net
」と入力します。 mywebapp1979 は、先ほど作成した Web アプリの名前に置き換えてください。 次の例のようなメッセージが表示されます。Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: mywebapp1979.privatelink.azurewebsites.net Address: 10.0.0.10 Aliases: mywebapp1979.azurewebsites.net
myVM への bastion 接続で、Web ブラウザーを開きます。
Web アプリ
https://mywebapp1979.azurewebsites.net
の URL を入力します。Web アプリがデプロイされていない場合は、次の既定の Web アプリ ページが表示されます。
myVM への接続を閉じます。
リソースをクリーンアップする
必要なくなったら、az group delete コマンドを使用して、リソース グループ、Private Link サービス、ロード バランサー、すべての関連リソースを削除します。
az group delete \
--name CreatePrivateEndpointQS-rg
次のステップ
プライベート エンドポイントをサポートするサービスの詳細については、以下を参照してください。