クイックスタート: Azure PowerShell を使用して Private Link サービスを作成する
自分のサービスを参照する Private Link サービスを作成してみましょう。 Private Link には、Azure Standard Load Balancer の背後にデプロイされたサービスやリソースへのアクセス権を付与することができます。 サービスのユーザーは、各自の仮想ネットワークからプライベートにアクセスすることができます
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
Azure Cloud Shell または Azure PowerShell。
このクイックスタートの手順では、Azure Cloud Shell で Azure PowerShell コマンドレットを対話型で実行します。 Cloud Shell でコマンドを実行するには、コード ブロックの右上隅にある [Cloudshell を開く] を選択します。 [コピー] を選択してコードをコピーし、続いて Cloud Shell に貼り付けて実行します。 Azure portal 内から Cloud Shell を実行することもできます。
また、Azure PowerShell をローカルにインストールしてコマンドレットを実行することもできます。 この記事の手順では、バージョン 5.4.1 以降の Azure PowerShell モジュールが必要です。
Get-Module -ListAvailable Az
を実行して、インストールされているバージョンを見つけます。 アップグレードする必要がある場合は、Azure PowerShell モジュールの更新を参照してください。PowerShell をローカルで実行する場合は、
Connect-AzAccount
を実行して Azure に接続します。
リソース グループを作成する
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
New-AzResourceGroup を使用して、次のようにリソース グループを作成します。
New-AzResourceGroup -Name 'test-rg' -Location 'eastus2'
内部ロード バランサーを作成します。
このセクションでは、仮想ネットワークと内部 Azure Load Balancer を作成します。
仮想ネットワーク
このセクションでは、Private Link サービスにアクセスするロード バランサーのホストとなる仮想ネットワークとサブネットを作成します。
- New-AzVirtualNetwork を使用して仮想ネットワークを作成します。
## Create backend subnet config ##
$subnet = @{
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create the virtual network ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
Subnet = $subnetConfig
}
$vnet = New-AzVirtualNetwork @net
Standard ロード バランサーを作成する
このセクションでは、ロード バランサーの以下のコンポーネントを作成および構成する方法について説明します。
フロントエンド IP プールに対し、New-AzLoadBalancerFrontendIpConfig を使用して、次のようにフロントエンド IP を作成します。 ロード バランサーでは、この IP で受信トラフィックを受け取ります。
ロード バランサーのフロントエンドから送信されるトラフィック用に、New-AzLoadBalancerBackendAddressPoolConfig でバックエンド アドレス プールを作成します。 このプールが、バックエンド仮想マシンのデプロイ先となります。
バックエンド VM インスタンスの正常性を調べる正常性プローブを Add-AzLoadBalancerProbeConfig で作成します。
複数の VM に対してどのようにトラフィックを分散させるかを定義するロード バランサー規則を Add-AzLoadBalancerRuleConfig で作成します。
New-AzLoadBalancer を使用して、次のようにパブリック ロード バランサーを作成します。
## Place virtual network created in previous step into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'
## Create load balancer frontend configuration and place in variable. ##
$lbip = @{
Name = 'frontend'
PrivateIpAddress = '10.0.0.4'
SubnetId = $vnet.subnets[0].Id
}
$feip = New-AzLoadBalancerFrontendIpConfig @lbip
## Create backend address pool configuration and place in variable. ##
$bepool = New-AzLoadBalancerBackendAddressPoolConfig -Name 'backend-pool'
## Create the health probe and place in variable. ##
$probe = @{
Name = 'health-probe'
Protocol = 'http'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
RequestPath = '/'
}
$healthprobe = New-AzLoadBalancerProbeConfig @probe
## Create the load balancer rule and place in variable. ##
$lbrule = @{
Name = 'http-rule'
Protocol = 'tcp'
FrontendPort = '80'
BackendPort = '80'
IdleTimeoutInMinutes = '15'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
}
$rule = New-AzLoadBalancerRuleConfig @lbrule -EnableTcpReset
## Create the load balancer resource. ##
$loadbalancer = @{
ResourceGroupName = 'test-rg'
Name = 'load-balancer'
Location = 'eastus2'
Sku = 'Standard'
FrontendIpConfiguration = $feip
BackendAddressPool = $bePool
LoadBalancingRule = $rule
Probe = $healthprobe
}
New-AzLoadBalancer @loadbalancer
ネットワーク ポリシーを無効にする
プライベート リンク サービスを仮想ネットワークに作成する前に、設定 privateLinkServiceNetworkPolicies
を無効にする必要があります。
- Set-AzVirtualNetwork を使用してネットワーク ポリシーを無効にします。
## Place the subnet name into a variable. ##
$subnet = 'subnet-1'
## Place the virtual network configuration into a variable. ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Set the policy as disabled on the virtual network. ##
($vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq $subnet}).privateLinkServiceNetworkPolicies = "Disabled"
## Save the configuration changes to the virtual network. ##
$vnet | Set-AzVirtualNetwork
プライベート リンク サービスを作成する
このセクションでは、前の手順で作成した Standard Azure Load Balancer を使用するプライベート リンク サービスを作成します。
New-AzPrivateLinkServiceIpConfig を使用してプライベート リンク サービスの IP 構成を作成します。
New-AzPrivateLinkService を使用してプライベート リンク サービスを作成します。
## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'
## Create the IP configuration for the private link service. ##
$ipsettings = @{
Name = 'ipconfig-1'
PrivateIpAddress = '10.0.0.5'
Subnet = $vnet.subnets[0]
}
$ipconfig = New-AzPrivateLinkServiceIpConfig @ipsettings
## Place the load balancer frontend configuration into a variable. ##
$par = @{
Name = 'load-balancer'
ResourceGroupName = 'test-rg'
}
$fe = Get-AzLoadBalancer @par | Get-AzLoadBalancerFrontendIpConfig
## Create the private link service for the load balancer. ##
$privlinksettings = @{
Name = 'private-link-service'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
LoadBalancerFrontendIpConfiguration = $fe
IpConfiguration = $ipconfig
}
New-AzPrivateLinkService @privlinksettings
プライベート リンク サービスが作成され、トラフィックを受信できるようになります。 トラフィック フローを確認する場合は、ご利用のアプリケーションを Standard ロード バランサーの背後に構成します。
プライベート エンドポイントの作成
このセクションでは、プライベート リンク サービスをプライベート エンドポイントにマップします。 仮想ネットワークには、プライベート リンク サービス用のプライベート エンドポイントが含まれています。 この仮想ネットワークには、プライベート リンク サービスにアクセスするリソースが含まれています。
プライベート エンドポイント仮想ネットワークを作成する
- New-AzVirtualNetwork を使用して仮想ネットワークを作成します。
## Create backend subnet config ##
$subnet = @{
Name = 'subnet-pe'
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create the virtual network ##
$net = @{
Name = 'vnet-pe'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig
}
$vnetpe = New-AzVirtualNetwork @net
エンドポイントと接続を作成する
前に作成したプライベート リンク サービスの構成を後で使用できるように変数に配置するには、Get-AzPrivateLinkService を使用します。
接続構成を作成するには、New-AzPrivateLinkServiceConnection を使用します。
エンドポイントを作成するには、New-AzPrivateEndpoint を使用します。
## Place the private link service configuration into variable. ##
$par1 = @{
Name = 'private-link-service'
ResourceGroupName = 'test-rg'
}
$pls = Get-AzPrivateLinkService @par1
## Create the private link configuration and place in variable. ##
$par2 = @{
Name = 'connection-1'
PrivateLinkServiceId = $pls.Id
}
$plsConnection = New-AzPrivateLinkServiceConnection @par2
## Place the virtual network into a variable. ##
$par3 = @{
Name = 'vnet-pe'
ResourceGroupName = 'test-rg'
}
$vnetpe = Get-AzVirtualNetwork @par3
## Create private endpoint ##
$par4 = @{
Name = 'private-endpoint'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Subnet = $vnetpe.subnets[0]
PrivateLinkServiceConnection = $plsConnection
}
New-AzPrivateEndpoint @par4 -ByManualRequest
プライベート エンドポイント接続を承認する
このセクションでは、前の手順で作成した接続を承認します。
- 接続を承認するには、Approve-AzPrivateEndpointConnection を使用します。
## Place the private link service configuration into variable. ##
$par1 = @{
Name = 'private-link-service'
ResourceGroupName = 'test-rg'
}
$pls = Get-AzPrivateLinkService @par1
$par2 = @{
Name = $pls.PrivateEndpointConnections[0].Name
ServiceName = 'private-link-service'
ResourceGroupName = 'test-rg'
Description = 'Approved'
PrivateLinkResourceType = 'Microsoft.Network/privateLinkServices'
}
Approve-AzPrivateEndpointConnection @par2
プライベート エンドポイントの IP アドレス
このセクションでは、ロード バランサーとプライベート リンク サービスに対応するプライベート エンドポイントの IP アドレスについて説明します。
- IP アドレスを取得するには、Get-AzPrivateEndpoint を使用します。
## Get private endpoint and the IP address and place in a variable for display. ##
$par1 = @{
Name = 'private-endpoint'
ResourceGroupName = 'test-rg'
ExpandResource = 'networkinterfaces'
}
$pe = Get-AzPrivateEndpoint @par1
## Display the IP address by expanding the variable. ##
$pe.NetworkInterfaces[0].IpConfigurations[0].PrivateIpAddress
❯ $pe.NetworkInterfaces[0].IpConfigurations[0].PrivateIpAddress
10.1.0.4
リソースをクリーンアップする
必要がなくなれば、Remove-AzResourceGroup コマンドを使用して、リソース グループやロード バランサー、その他のリソースを削除できます。
Remove-AzResourceGroup -Name 'test-rg'
次のステップ
このクイック スタートでは次の作業を行います。
仮想ネットワークと内部 Azure Load Balancer を作成しました。
Private Link サービスを作成しました。
Azure プライベート エンドポイントについてさらに学習するには、次の記事に進んでください。