AzureCLIでAzureBastionを作成してみた

AzureCLI AzureBastion

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ポータル上の表示での確認

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」という表示が出て作成できませんでした。

「BastionHostPublicIPNotStandard」という表示が出て作成できない

これはAzureBationのSKUを Basic として指定しても同じでした。

なのでBastionを作成する際にはパブリックIPは Standard を利用する必要があります

タイトルとURLをコピーしました