AzureCLI でAzureBastionを作成してみました。
事前準備
AzureBastionを作成するにあたって事前に作成が必要な以下のリソースを作成していきます。
- リソースグループ(ResourceGroup)
- 仮想ネットワーク(VirtualNetwork)
- パブリックIPアドレス(PublicIPAddress)
既に作成済みなどであればこれらのリソースの作成は不要です。
リソースグループ作成
以下のコマンドで作成します。
az group create --name <リソースグループ名> --location <リージョン>
・記載例
az group create --name RG-Test-AzureBastion --location japaneast
今回は東日本リージョンに作成していきます。
仮想ネットワーク作成
AzureBastionを作成する場合には、AzureBastionSubnet という名前のサブネットを作成する必要があり、そのサブネットは最小でも /26 のIPアドレスレンジが必要です。
/25 や /24 でも作成可能ですが、現時点では余計にIPアドレスを利用することになるためおすすめはしません。
以下のコマンドで作成します。
az network vnet create --name <仮想ネットワーク名> `
--resource-group <リソースグループ名> `
--location <リージョン名> `
--address-prefix <仮想ネットワークのIPアドレス帯> `
--subnet-name AzureBastionSubnet `
--subnet-prefix <AzureBastion用サブネットのIPアドレス帯(/26)>
・記載例
az network vnet create --name Vnet-Test `
--resource-group RG-Test-AzureBastion `
--location japaneast `
--address-prefix 10.0.0.0/24 `
--subnet-name AzureBastionSubnet `
--subnet-prefix 10.0.0.0/26
上記ではインターフェースとしてPowershellを利用しているので、改行する際には ` を利用していますが、コマンドプロンプトを利用する場合には、^ を利用する必要がありますのでその点は注意してください。
パブリックIPアドレス作成
今回パブリックIPのSKU は Standard で作成します。
逆に Basic を指定して作成するとエラーとなりBastionを作成できません。
詳細は下部の「パブリックIPの SKU が Basic だと AzureBastion を作成できない」に記載しています。
また、パブリック IP アドレスは Bastion リソースと同じリージョン内にする必要があります。
以下のコマンドで作成します。
az network public-ip create `
--name <パブリックIPアドレス名> `
--resource-group <リソースグループ名> `
--location <リージョン> `
--allocation-method static `
--sku standard
・記載例
az network public-ip create `
--name pip-Test-AzureBation `
--resource-group RG-Test-AzureBastion `
--location japaneast `
--allocation-method static `
--sku standard
AzureBastion を作成する
事前準備が完了したら AzureBastion を作成します。
以下のコマンドで作成可能です。
#AzureBastionの作成
az network bastion create `
--resource-group <リソースグループ名> `
--location <リージョン> `
--name <AzureBastion名> `
--vnet-name <仮想ネットワーク名> `
--public-ip-address <パブリックIPアドレス名>
・記載例
az network bastion create `
--resource-group RG-Test-AzureBastion `
--location japaneast `
--name AzureBation-Test `
--vnet-name Vnet-Test `
--public-ip-address pip-Test-AzureBation
上記コマンド実行後にも作成されたリソースの詳細が表示されますが、
以下のコマンドでも作成されたAzureBastionの設定を確認することができます。
#作成されたAzureBastionの確認
az network bastion list
やってみて気づいたこと
デフォルトで作成される AzureBastion のSKUは Standard
コマンドで作成する際にSKUを指定せずにAzureBastionを作成すると、SKUはStandardで作成されます。
・コマンド実行後の表示での確認
・Azureポータル上の表示での確認
なので、Basicを利用したい場合にはコマンドのパラメータで明示的にSKUを指定する必要があります。
#AzureBastionの作成
az network bastion create `
--resource-group <リソースグループ名> `
--location <リージョン> `
--name <AzureBastion名> `
--vnet-name <仮想ネットワーク名> `
--public-ip-address <パブリックIPアドレス名>`
--sku <Basic or Standard>
パブリックIPの SKU が Basic だと AzureBastion を作成できない
パブリックIPの SKU が Basic だと AzureBastion を作成できません。
試しにパブリックIPのSKUを Basic として、以下のコマンドで Bastionを作成してみましたが、
#パブリックIPを basic で作成
az network public-ip create `
--name pip-Test-AzureBation-basic `
--resource-group RG-Test-AzureBastion `
--location japaneast `
--allocation-method static `
--sku basic
#Bastionを作成
az network bastion create `
--resource-group RG-Test-AzureBastion `
--location japaneast `
--name AzureBation-Test `
--vnet-name Vnet-Test `
--public-ip-address pip-Test-AzureBation-basic
以下のように「BastionHostPublicIPNotStandard」という表示が出て作成できませんでした。
これはAzureBationのSKUを Basic として指定しても同じでした。
なのでBastionを作成する際にはパブリックIPは Standard を利用する必要があります。