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

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

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

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

前提条件

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

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

PowerShell をインストールしてローカルで使用する場合、この記事では Azure PowerShell モジュール バージョン 5.4.1 以降が必要になります。 インストールされているバージョンを確認するには、Get-Module -ListAvailable Az を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount を実行して Azure との接続を作成することも必要です。

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

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

New-AzResourceGroup を使用して、次のようにリソース グループを作成します。

New-AzResourceGroup -Name 'CreatePrivateEndpointQS-rg' -Location 'eastus'

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

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

このセクションでは、次のことを行います。

## Configure the back-end subnet. ##
$subnetConfig = New-AzVirtualNetworkSubnetConfig -Name myBackendSubnet -AddressPrefix 10.0.0.0/24

## Create the Azure Bastion subnet. ##
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig -Name AzureBastionSubnet -AddressPrefix 10.0.1.0/24

## Create the virtual network. ##
$net = @{
    Name = 'MyVNet'
    ResourceGroupName = 'CreatePrivateEndpointQS-rg'
    Location = 'eastus'
    AddressPrefix = '10.0.0.0/16'
    Subnet = $subnetConfig, $bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net

## Create the public IP address for the bastion host. ##
$ip = @{
    Name = 'myBastionIP'
    ResourceGroupName = 'CreatePrivateEndpointQS-rg'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    Zone = 1,2,3
}
$publicip = New-AzPublicIpAddress @ip

## Create the bastion host. ##
$bastion = @{
    ResourceGroupName = 'CreatePrivateEndpointQS-rg'
    Name = 'myBastion'
    PublicIpAddress = $publicip
    VirtualNetwork = $vnet
}
New-AzBastion @bastion -AsJob

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

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

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

重要

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

このセクションでは、次のことを行います。

## Place the previously created webapp into a variable. ##
$webapp = Get-AzWebApp -ResourceGroupName CreatePrivateEndpointQS-rg -Name myWebApp1979

## Create the private endpoint connection. ## 
$pec = @{
    Name = 'myConnection'
    PrivateLinkServiceId = $webapp.ID
    GroupID = 'sites'
}
$privateEndpointConnection = New-AzPrivateLinkServiceConnection @pec

## Place the virtual network you created previously into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'CreatePrivateEndpointQS-rg' -Name 'myVNet'

## Create the private endpoint. ##
$pe = @{
    ResourceGroupName = 'CreatePrivateEndpointQS-rg'
    Name = 'myPrivateEndpoint'
    Location = 'eastus'
    Subnet = $vnet.Subnets[0]
    PrivateLinkServiceConnection = $privateEndpointConnection
}
New-AzPrivateEndpoint @pe

プライベート DNS ゾーンを構成する

プライベート DNS ゾーンは、仮想ネットワーク内のプライベート エンドポイントの DNS 名を解決するために使用されます。 この例では、Azure WebApp の DNS 情報を使用しています。プライベート エンドポイントの DNS 構成の詳細については、「Azure プライベート エンドポイントの DNS 構成」を参照してください。

このセクションでは、次のことを行います。

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -ResourceGroupName 'CreatePrivateEndpointQS-rg' -Name 'myVNet'

## Create the private DNS zone. ##
$zn = @{
    ResourceGroupName = 'CreatePrivateEndpointQS-rg'
    Name = 'privatelink.azurewebsites.net'
}
$zone = New-AzPrivateDnsZone @zn

## Create a DNS network link. ##
$lk = @{
    ResourceGroupName = 'CreatePrivateEndpointQS-rg'
    ZoneName = 'privatelink.azurewebsites.net'
    Name = 'myLink'
    VirtualNetworkId = $vnet.Id
}
$link = New-AzPrivateDnsVirtualNetworkLink @lk

## Configure the DNS zone. ##
$cg = @{
    Name = 'privatelink.azurewebsites.net'
    PrivateDnsZoneId = $zone.ResourceId
}
$config = New-AzPrivateDnsZoneConfig @cg

## Create the DNS zone group. ##
$zg = @{
    ResourceGroupName = 'CreatePrivateEndpointQS-rg'
    PrivateEndpointName = 'myPrivateEndpoint'
    Name = 'myZoneGroup'
    PrivateDnsZoneConfig = $config
}
New-AzPrivateDnsZoneGroup @zg

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

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

このセクションでは、次のことを行います。

## Create the credential for the virtual machine. Enter a username and password at the prompt. ##
$cred = Get-Credential

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName CreatePrivateEndpointQS-rg

## Create a network interface for the virtual machine. ##
$nic = @{
    Name = 'myNicVM'
    ResourceGroupName = 'CreatePrivateEndpointQS-rg'
    Location = 'eastus'
    Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic

## Create the configuration for the virtual machine. ##
$vm1 = @{
    VMName = 'myVM'
    VMSize = 'Standard_DS1_v2'
}
$vm2 = @{
    ComputerName = 'myVM'
    Credential = $cred
}
$vm3 = @{
    PublisherName = 'MicrosoftWindowsServer'
    Offer = 'WindowsServer'
    Skus = '2019-Datacenter'
    Version = 'latest'
}
$vmConfig = 
New-AzVMConfig @vm1 | Set-AzVMOperatingSystem -Windows @vm2 | Set-AzVMSourceImage @vm3 | Add-AzVMNetworkInterface -Id $nicVM.Id

## Create the virtual machine. ##
New-AzVM -ResourceGroupName 'CreatePrivateEndpointQS-rg' -Location 'eastus' -VM $vmConfig

Note

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

詳細については、「Azure での既定の送信アクセス」を参照してください。

パブリック IP アドレスが VM に割り当てられている場合、またはアウトバウンド規則の有無にかかわらず VM が Standard Load Balancer のバックエンド プールに配置されている場合、既定の送信アクセス IP は無効になります。 Azure Virtual Network ネットワーク アドレス変換 (NAT) ゲートウェイ リソースが仮想マシンのサブネットに割り当てられている場合、デフォルト送信アクセス IP は無効になります。

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

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

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

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

  1. Azure portal にサインインします。

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

  3. [myVM] を選択します。

  4. myVM の [概要] ページで [接続][Bastion] の順に選択します。

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

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

  7. 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
    
  8. myVM への bastion 接続で、Web ブラウザーを開きます。

  9. Web アプリ https://mywebapp1979.azurewebsites.net の URL を入力します。

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

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

  10. myVM への接続を閉じます。

次の手順

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