https://learn.microsoft.com/ja-jp/azure/private-link/create-private-endpoint-cli?tabs=static-ip
-- 1. 前作業
az login --use-device-code
az account show
az version
az configure --list-defaults
az configure --defaults location=japaneast
az configure --list-defaults
az group create \
--name rg01 \
--location japaneast
az group list
-- 2. App Service プラン作成
※sku F1ではプライベート エンドポイント作成時にエラーとなる。
"PremiumV2 レベル" 以上のアプリ サービス プランを持つ Azure Web アプリの必要がある模様
az appservice plan create --name plan01 \
--resource-group rg01 \
--sku P1v2
az appservice plan list \
--resource-group rg01
-- 3. App Service アプリ作成
az webapp list-runtimes
az webapp create \
--name app123 \
--plan plan01 \
--resource-group rg01 \
--runtime "ASPNET:V4.8"
az webapp list \
--resource-group rg01
-- 4. 仮想ネットワークと bastion ホストの作成
az network vnet create \
--resource-group rg01 \
--location japaneast \
--name vnet01 \
--address-prefixes 10.0.0.0/16 \
--subnet-name subnet01 \
--subnet-prefixes 10.0.0.0/24
az network vnet subnet create \
--resource-group rg01 \
--name AzureBastionSubnet \
--vnet-name vnet01 \
--address-prefixes 10.0.1.0/24
az network vnet list
az network vnet subnet list \
--resource-group rg01 \
--vnet-name vnet01
az network public-ip create \
--resource-group rg01 \
--name pip01 \
--sku Standard \
--zone 1 2 3
az network public-ip list
az network bastion create \
--resource-group rg01 \
--name bastion01 \
--public-ip-address pip01 \
--vnet-name vnet01 \
--location japaneast
az network bastion list \
--resource-group rg01
-- 5. プライベート エンドポイントの作成
id=$(az webapp list \
--resource-group rg01 \
--query '[].[id]' \
--output tsv)
echo $id
az network private-endpoint create \
--connection-name conn01 \
--name ep01 \
--private-connection-resource-id $id \
--resource-group rg01 \
--subnet subnet01 \
--group-id sites \
--ip-config name=ipconfig01 group-id=sites member-name=sites private-ip-address=10.0.0.10 \
--vnet-name vnet01
az network private-endpoint list \
--resource-group rg01
-- 6. プライベート DNS ゾーンを作成する
az network private-dns zone create \
--resource-group rg01 \
--name "privatelink.azurewebsites.net"
az network private-dns zone list \
--resource-group rg01
-- 7. 仮想ネットワークに DNS ゾーンをリンクする
az network private-dns link vnet create \
--resource-group rg01 \
--zone-name "privatelink.azurewebsites.net" \
--name dnslink01 \
--virtual-network vnet01 \
--registration-enabled false
az network private-dns link vnet list \
--resource-group rg01 \
--zone-name "privatelink.azurewebsites.net"
-- 8. DNS ゾーン グループを作成する
az network private-endpoint dns-zone-group create \
--resource-group rg01 \
--endpoint-name ep01 \
--name zg01 \
--private-dns-zone "privatelink.azurewebsites.net" \
--zone-name zone01
az network private-endpoint dns-zone-group list \
--resource-group rg01 \
--endpoint-name ep01
-- 9. テスト用の仮想マシンを作成する
az vm create \
--resource-group rg01 \
--name vm01 \
--image Win2019Datacenter \
--size Standard_B1s \
--public-ip-address "" \
--vnet-name vnet01 \
--subnet subnet01 \
--admin-username azureuser \
--admin-password 'passwordpassword'
az vm list \
--resource-group rg01
-- 10. プライベート エンドポイントへの接続をテストする
nslookup app123.azurewebsites.net
curl https://app123.azurewebsites.net
-- 11. クリーンアップ
az group list
az group delete \
--name rg01 \
--yes