公式にはPowershell の方法しか書いてないように見えたので、Azure CLIの場合を書いてみました。
公式はこちら:
https://learn.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-howto-point-to-site-rm-ps
実行環境はWindows 内WSL です。
Login and Subscription setting
az account show -o table
az account set --subscription "Pay-As-You-Go"
az account show -o table
Declare variables
FESubName="FrontEnd"
GWSubName="GatewaySubnet"
VNetPrefix="10.1.0.0/16"
FESubPrefix="10.1.0.0/24"
GWSubPrefix="10.1.255.0/27"
VPNClientAddressPool="172.16.201.0/24"
RG="TestRG1"
Location="EastUS"
GWName="VNet1GW"
GWIPName="VNet1GWpip"
GWIPconfName="gwipconf"
DNS="10.2.1.4"
Create Vnet and vnet-gateway
az network vnet create --name $VNetName --resource-group $RG --location $Location --address-prefixes $VNetPrefix --dns-servers $DNS
az network vnet subnet create --name $FESubName --resource-group $RG --vnet-name $VNetName --address-prefixes $FESubPrefix
az network vnet subnet create --name $GWSubName --resource-group $RG --vnet-name $VNetName --address-prefixes $GWSubPrefix
az network vnet show --resource-group $RG -n $VNetName -o table
az network vnet subnet list --resource-group $RG --vnet-name $VNetName -o table
pip=$(az network public-ip create --name $GWIPName --resource-group $RG --location $Location --allocation-method Dynamic)
az network vnet-gateway create -g $RG -n $GWName --public-ip-address $GWIPName --vnet $VNetName --gateway-type Vpn --sku VpnGw1 --vpn-type RouteBased
az network vnet-gateway show -g $RG -n $GWName -o table
az network vnet-gateway update --resource-group $RG --name $GWName --address-prefix $VPNClientAddressPool
Certification
azure cli の記述見つけられず。。Powershell 以外の方法があれば教えてください。
ひとまずPowershell で結局作業し回避。
https://learn.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-howto-point-to-site-rm-ps#upload
Generate VPN setting
az network vnet-gateway vpn-client generate --resource-group $RG --name $GWName --authentication-method "EapTls"
あとは上記コマンドで出力されるzip ファイルを展開して、config ファイルからAzure VPN cient でVPN接続すれば完了です。
Conclusion
背景としては検証環境をたまに使いたいけれども余分なコストを発生したくないので、利用したいときのみVPN Gatewayを作成する仕組みを作っておきたいということからでした。
bash 化したので、これを実行するボタンを作成しておき、特定ユーザが利用したいときに検証環境を立ててそれにアクセスするというのができれば良いかなと思っています。
下記にbash はまとめてあります。
https://github.com/tetsu-m7/azure_setting/blob/main/create_s2pvpn.sh
Reference: