次の方法で共有


Azure App Service で仮想ネットワーク統合を有効にする

Azure App Service アプリから Azure 仮想ネットワークと統合すると、仮想ネットワーク内のアプリからプライベート リソースにアクセスできます。

前提条件

仮想ネットワーク統合機能には以下が必要です。

サブネットは Microsoft.Web/serverFarms に委任する必要があります。 統合前に委任しない場合は、プロビジョニング プロセスによってこの委任が構成されます。 サブネットには、IPv4 /28 ブロック (16 アドレス) を割り当てる必要があります。 水平方向の最大スケールを可能にするために、少なくとも 64 個のアドレス (IPv4 /26 ブロック) を使用することをお勧めします。

仮想ネットワークがアプリとは異なるサブスクリプションにある場合は、仮想ネットワークがあるサブスクリプションが Microsoft.Web リソース プロバイダーに登録されていることを確かめてください。 プロバイダーは、サブスクリプションで最初の Web アプリを作成するときに登録されます。 プロバイダーを明示的に登録する場合は、「リソース プロバイダーの登録」を参照してください。

Azure portal で構成する

  1. Azure portal でアプリに移動します。 [設定]>[ネットワーク] の順に選択します。 [送信トラフィック構成] で、[仮想ネットワーク統合] の横にある [未構成] リンクを選択します。

  2. [仮想ネットワーク統合を追加する] を選択します。

    仮想ネットワーク統合の選択を示すスクリーンショット。

  3. サブスクリプションと仮想ネットワークを選択します。

  4. [サブネット] のドロップダウン リストには、お使いのサブスクリプションで同じリージョンに存在するすべての仮想ネットワークが含まれています。 空の既存のサブネットを選択するか、新しいサブネットを作成します。 [接続] を選択します。

    仮想ネットワークの選択を示すスクリーンショット。

統合中にアプリは再起動されます。 統合が完了すると、統合した仮想ネットワークの詳細が表示されます。

Azure CLI を使用して構成する

Azure CLI を使用して仮想ネットワーク統合を構成することもできます。

az webapp vnet-integration add --resource-group <group-name> --name <app-name> --vnet <vnet-name> --subnet <subnet-name>

Note

このコマンドでは、サブネットが Microsoft.Web/serverFarms に委任されているかどうかを確認します。 構成されていない場合、このコマンドでは必要な委任を適用します。 サブネットが構成済みで、これを確認するアクセス許可が付与されていない場合、または仮想ネットワークが別のサブスクリプションにある場合は、--skip-delegation-check パラメーターを使用してこの検証をバイパスできます。

Azure PowerShell を使用して構成する

  1. パラメーターを準備します。

    $siteName = '<app-name>'
    $vNetResourceGroupName = '<group-name>'
    $webAppResourceGroupName = '<group-name>'
    $vNetName = '<vnet-name>'
    $integrationSubnetName = '<subnet-name>'
    $vNetSubscriptionId = '<subscription-guid>'
    

    Note

    仮想ネットワークが Web アプリ以外のサブスクリプションにある場合は、Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" コマンドを使用して現在のサブスクリプション コンテキストを設定できます。 現在のサブスクリプション コンテキストを、仮想ネットワークがデプロイされたサブスクリプションに設定します。

  2. サブネットが Microsoft.Web/serverFarms に委任されていることを確認します。

    $vnet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroupName
    $subnet = Get-AzVirtualNetworkSubnetConfig -Name $integrationSubnetName -VirtualNetwork $vnet
    Get-AzDelegation -Subnet $subnet
    
  3. サブネットが Microsoft.Web/serverFarms に委任されていない場合は、次のコマンドを使用して委任を追加します。

    $subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Web/serverFarms" -Subnet $subnet
    Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  4. 仮想ネットワーク統合を構成する

    $subnetResourceId = "/subscriptions/$vNetSubscriptionId/resourceGroups/$vNetResourceGroupName/providers/Microsoft.Network/virtualNetworks/$vNetName/subnets/$integrationSubnetName"
    $webApp = Get-AzResource -ResourceType Microsoft.Web/sites -ResourceGroupName $webAppResourceGroupName -ResourceName $siteName
    $webApp.Properties.virtualNetworkSubnetId = $subnetResourceId
    $webApp.Properties.vnetRouteAllEnabled = 'true'
    $webApp | Set-AzResource -Force
    

    Note

    Web アプリが仮想ネットワーク以外のサブスクリプションにある場合は、Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" コマンドを使用して現在のサブスクリプション コンテキストを設定できます。 現在のサブスクリプション コンテキストを、Web アプリがデプロイされたサブスクリプションに設定します。