クイックスタート: Azure CLI を使用してプライベート エンドポイントを作成する

プライベート エンドポイントを作成および使用して Azure Web アプリに安全に接続することにより、Azure Private Link の使用を開始します。

このクイックスタートでは、Azure App Services Web アプリのプライベート エンドポイントを作成した後、仮想マシン (VM) を作成してデブロイしプライベート接続をテストします。

Azure SQL や Azure Storage など、さまざまな Azure サービスに対してプライベート エンドポイントを作成できます。

プライベート エンドポイントのクイックスタートで作成されたリソースの図。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 Azure アカウントをまだ持っていない場合は、無料でアカウントを作成します

  • 対象の Azure サブスクリプションにデプロイされている "PremiumV2 レベル" 以上のアプリ サービス プランを持つ Azure Web アプリ。

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

リソース グループを作成する

Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。

まず az group create を使用してリソース グループを作成します。

az group create \
    --name test-rg \
    --location eastus2

仮想ネットワークと bastion ホストの作成

プライベート エンドポイントのプライベート IP アドレスをホストするには、仮想ネットワークとサブネットが必要です。 仮想マシンに安全に接続してプライベート エンドポイントをテストするための bastion ホストを作成します。 仮想マシンは、後のセクションで作成します。

Note

時間単位の価格は、送信データの使用状況に関係なく、Bastion がデプロイされた時点から開始します。 詳しくは、「価格」および「SKU」を参照してください。 チュートリアルまたはテストの一環で Bastion をデプロイする場合は、使用終了後に該当のリソースを削除することをお勧めします。

az network vnet create を使用して仮想ネットワークを作成します。

az network vnet create \
    --resource-group test-rg \
    --location eastus2 \
    --name vnet-1 \
    --address-prefixes 10.0.0.0/16 \
    --subnet-name subnet-1 \
    --subnet-prefixes 10.0.0.0/24

az network vnet subnet create を使用して、bastion サブネットを作成します。

az network vnet subnet create \
    --resource-group test-rg \
    --name AzureBastionSubnet \
    --vnet-name vnet-1 \
    --address-prefixes 10.0.1.0/26

az network public-ip create を使用して、bastion ホストのパブリック IP アドレスを作成します。

az network public-ip create \
    --resource-group test-rg \
    --name public-ip \
    --sku Standard \
    --zone 1 2 3

az network bastion create を使用して、bastion ホストを作成します。

az network bastion create \
    --resource-group test-rg \
    --name bastion \
    --public-ip-address public-ip \
    --vnet-name vnet-1 \
    --location eastus2

Azure Bastion ホストがデプロイされるまでに数分かかる場合があります。

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

プライベート エンドポイントをサポートする Azure サービスは、プライベート エンドポイントと仮想ネットワークへの接続を設定するために必要です。 この記事の例では、前提条件の Azure WebApp を使用します。 プライベート エンドポイントをサポートする Azure サービスの詳細については、「Azure Private Link の可用性」を参照してください。

プライベート エンドポイントは、静的な、または動的に割り当てられた IP アドレスを持つことができます。

重要

この記事の手順を続けるには、以前にデプロイした Azure App Services WebApp が必要です。 詳細については、「前提条件」を参照してください。

az webapp list を使用して、以前に作成した Web アプリのリソース ID をシェル変数に配置します。 az network private-endpoint create を使用してプライベート エンドポイントを作成します。

id=$(az webapp list \
    --resource-group test-rg \
    --query '[].[id]' \
    --output tsv)

az network private-endpoint create \
    --connection-name connection-1 \
    --name private-endpoint \
    --private-connection-resource-id $id \
    --resource-group test-rg \
    --subnet subnet-1 \
    --group-id sites \
    --vnet-name vnet-1    

プライベート 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 test-rg \
    --name "privatelink.azurewebsites.net"

az network private-dns link vnet create を使用して、前に作成した仮想ネットワークに DNS ゾーンをリンクします。

az network private-dns link vnet create \
    --resource-group test-rg \
    --zone-name "privatelink.azurewebsites.net" \
    --name dns-link \
    --virtual-network vnet-1 \
    --registration-enabled false

az network private-endpoint dns-zone-group create を使用して、DNS ゾーン グループを作成します。

az network private-endpoint dns-zone-group create \
    --resource-group test-rg \
    --endpoint-name private-endpoint \
    --name zone-group \
    --private-dns-zone "privatelink.azurewebsites.net" \
    --zone-name webapp

テスト用の仮想マシンを作成する

静的 IP アドレスとプライベート エンドポイントの機能を確認するには、テスト仮想マシンが仮想ネットワークに接続されている必要があります。

az vm create を使用して、仮想マシンを作成します。

az vm create \
    --resource-group test-rg \
    --name vm-1 \
    --image Win2022Datacenter \
    --public-ip-address "" \
    --vnet-name vnet-1 \
    --subnet subnet-1 \
    --admin-username azureuser

注意

Bastion ホストがある仮想ネットワーク内の仮想マシンには、パブリック IP アドレスが必要ありません。 Bastion がパブリック IP を提供し、VM はプライベート IP を使用してネットワーク内で通信します。 bastion ホストがある仮想ネットワーク内のいずれの VM からも、パブリック IP を削除できます。 詳細については、「パブリック IP アドレスの関連付けを Azure VM から解除する」を参照してください。

Note

パブリック IP が割り当てられていない VM、または内部の Basic Azure Load Balancer のバックエンド プール内にある VM に対しては、Azure によって既定のアウトバウンド アクセス IP が提供されます。 デフォルト送信アクセス IP メカニズムは、構成できないアウトバウンド IP アドレスを提供します。

次のいずれかのイベントが発生すると、既定のアウトバウンド アクセス IP は無効になります。

  • パブリック IP アドレスが VM に割り当てられます。
  • アウトバウンド規則の有無にかかわらず、VM は標準ロード バランサーのバックエンド プール内に配置されます。
  • Azure NAT Gateway リソースが VM のサブネットに割り当てられます。

フレキシブル オーケストレーション モードの仮想マシン スケール セットによって作成された VM には、既定のアウトバウンド アクセスがありません。

Azure のアウトバウンド接続の詳細については、「Azure での既定の送信アクセス」および「送信接続での送信元ネットワーク アドレス変換 (SNAT)を使用する」を参照してください。

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

前に作成した仮想マシンを使用して、プライベート エンドポイント経由で Web アプリに接続します。

  1. ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 [仮想マシン] を選択します。

  2. vm-1 を選択します。

  3. vm-1 の概要ページで、[接続] を選択した後に、[Bastion] タブを選択します。

  4. [Bastion を使用する] を選択します。

  5. VM の作成時に使用したユーザー名とパスワードを入力します。

  6. [接続] を選択します。

  7. 接続した後、サーバーで PowerShell を開きます。

  8. nslookup webapp-1.azurewebsites.net」と入力します。 次の例のようなメッセージが表示されます。

    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    webapp-1.privatelink.azurewebsites.net
    Address:  10.0.0.10
    Aliases:  webapp-1.azurewebsites.net
    

    前の手順で静的 IP アドレスを選択した場合、Web アプリ名として 10.0.0.10 というプライベート IP アドレスが返されます。 このアドレスは、先ほど作成した仮想ネットワークのサブネット内に存在します。

  9. vm-1 への bastion 接続で、Web ブラウザーを開きます。

  10. Web アプリ https://webapp-1.azurewebsites.net の URL を入力します。

    Web アプリがデプロイされていない場合は、次の既定の Web アプリ ページが表示されます。

    ブラウザでの既定の Web アプリ ページのスクリーンショット。

  11. vm-1 への接続を閉じます。

リソースをクリーンアップする

必要なくなったら、az group delete コマンドを使用して、リソース グループ、Private Link サービス、ロード バランサー、すべての関連リソースを削除します。

  az group delete \
    --name test-rg

次のステップ

プライベート エンドポイントをサポートするサービスの詳細については、以下を参照してください。