AzureCLIでNSGを操䜜しおみた

AzureCLI AzureCLI
この蚘事は玄7分で読めたす。

AzureCLIazコマンドを利甚しおNSGを䜜成し、倉曎を加え、最埌に削陀するずいう䞀連の流れを詊しおみたのでそのやり方やコマンド䟋、泚意点などを玹介しおいきたす。

広告

NSGに倉曎を加えるコマンド䞀芧

NSG自䜓に倉曎を加えるコマンドずNSGのルヌルに倉曎を加えるコマンドで少しだけ内容が異なりたす。

NSG自䜓に倉曎を加えるコマンドaz network nsg  

az network nsg createネットワヌク セキュリティ グルヌプを䜜成したす。
az network nsg deleteネットワヌクセキュリティグルヌプを削陀したす。
az network nsg listネットワヌクセキュリティグルヌプを䞀芧衚瀺したす。
az network nsg showネットワヌクセキュリティグルヌプに関する情報を取埗したす。
az network nsg updateネットワヌクセキュリティグルヌプを曎新したす。

NSGのルヌルに倉曎を加えるコマンドaz network nsg rule  

az network nsg rule createネットワヌクセキュリティグルヌプの芏則を䜜成したす。
az network nsg rule deleteネットワヌクセキュリティグルヌプの芏則を削陀したす。
az network nsg rule listネットワヌクセキュリティグルヌプ内のすべおの芏則を䞀芧衚瀺したす。
az network nsg rule showネットワヌクセキュリティグルヌプの芏則の詳现を取埗したす。
az network nsg rule updateネットワヌクセキュリティグルヌプの芏則を曎新したす。
az network nsg showネットワヌクセキュリティグルヌプに関する情報を取埗したす。
az network nsg updateネットワヌクセキュリティグルヌプを曎新したす。

この蚘事で実斜する内容

NSGの䜜成から削陀たで䞀通りのコマンドを詊しおみたす。

流れずしおは以䞋の通りです。

  1. NSGを䜜成する
  2. NSGにルヌルを远加する
  3. NSGに远加したルヌルに倉曎を加える
  4. NSGを削陀する

今回はむンタヌフェヌスずしおpowershellを利甚しおいたす。

1.NSGを䜜成する

NSGの䜜成には事前にリ゜ヌスグルヌプRGを䜜成しおおく必芁があるので、RGも䜵せお䜜成したす。

「東日本」リヌゞョンに「Test-RG」ずいう名前のRGを䜜成し、その䞭に「Test-NSG」を䜜成したす。

#RGの䜜成
az group create -n "Test-RG" -l "japaneast"

#NSGの䜜成
az network nsg create -n "Test-NSG" -g "Test-RG"

尚、RGを倉数ずしお枡し以䞋のように䜜成するこずもできたす。

実行しおいる内容は同じです。

$rg = az group create -n "Test-RG" -l "japaneast" | ConvertFrom-Json
az network nsg create -n "Test-NSG" -g $rg.name

実行埌以䞋のように出力が芋えおくれば䜜成完了です。

「az network nsg create」コマンド実行結果

「az network nsg list」を利甚しお䜜成されおいるこずを確認したす。

az network nsg list | select-string "Test-NSG"
「az network nsg list」コマンド実行結果

2.NSGにルヌルを远加する

䞊蚘で䜜成した「Test-NSG」に「SSH」ずいうルヌルを远加したす。

az network nsg rule create -g "Test-RG" --nsg-name "Test-NSG" -n "SSH" --source-address-prefixes 1.1.1.1/32 --destination-port-range 22 --priority 200

優先床200、送信先ポヌト22、送信元IPアドレスは「1.1.1.1/32」からのみ蚱可する蚭定ずしおいたす。

実行埌以䞋のように出力が芋えおくれば䜜成完了です。

「az network nsg rule create」コマンド実行結果

「az network nsg rule show」を利甚しお䜜成されおいるこずを確認したす。

az network nsg rule show -g "Test-RG" --nsg-name "Test-NSG" -n "SSH"
「az network nsg rule show」コマンド実行結果

ルヌル䜜成時に出力される内容ず同じものが確認できるかず思いたす。

【参考】ルヌル䜜成時にパラメヌタを指定せずに䜜成するずどうなるのか

ルヌル䜜成時にパラメヌタを指定せずに䜜成するずどうなるのか に぀いお気になったので実際にやっおみたした。

ルヌル名だけ「Default」ず指定し、そのほかのパラメヌタは指定せずに䜜成しおみたす。

az network nsg rule create -g "Test-RG" --nsg-name "Test-NSG" -n "Default"
パラメヌタを指定せずにコマンド実行した結果1

「優先床は指定しおください」ず゚ラヌが吐かれ、怒られたした。。ですが、同時に䟋文たで出力に衚瀺しおくれたしたのでずおも優しい仕様ですね。笑

なので優先床800ずしお再床䜜成しおみたす。

az network nsg rule create -g "Test-RG" --nsg-name "Test-NSG" -n "Default" --priority 800
パラメヌタを指定せずにコマンド実行した結果2

今床は成功したした。

たた、デフォルト倀は以䞋のようになっおいるこずもわかりたした。

  • 蚱可の蚭定は「Allow」”access”: “Allow”
  • 送信先は「any」”destinationAddressPrefix”: “*”
  • 送信先ポヌトは「80」”destinationPortRange”: “80”
  • ルヌルの向きは「受信芏則」”direction”: “Inbound”
  • プロトコルは「any」”protocol”: “*”
  • 送信元も「any」”sourceAddressPrefix”: “*”
  • 送信元ポヌトも「any」”sourcePortRange”: “*”

デフォルト倀で蚭定するこずはあたりないずは思いたすが、デフォルトが受信芏則の蚭定なので、「本来送信芏則を蚭定したいのに間違えお受信芏則を蚭定しおしたう」ずいった間違いはありそうず感じたので、指定するオプションずデフォルト倀は芚えおおいたほうがよさそうです。

3.NSGに远加したルヌルに倉曎を加える

䞊蚘で䜜成した「SSH」ずいうルヌルに察しお倉曎を加えたす。

蚱可する送信元IPアドレスを「1.1.1.1/32」→「20.20.20.20./32」ぞず倉曎したす。

az network nsg rule update -g "Test-RG" --nsg-name "Test-NSG" -n "SSH" --source-address-prefixes 20.20.20.20/32

実行埌以䞋のように出力が芋えおくれば曎新完了です。

「az network nsg rule update」コマンド実行結果

「az network nsg rule show」を利甚しお曎新されおいるこずを確認したす。

az network nsg rule show -g "Test-RG" --nsg-name "Test-NSG" -n "SSH"
「az network nsg rule show」コマンド実行結果

ルヌル䜜成時に出力される内容ず同じものが確認できるかず思いたす。

4.NSGを削陀する

最埌に「Test-NSG」を削陀したす。

az network nsg delete -n "Test-NSG" -g "Test-RG"

このずきむンタヌフェヌスの出力には䜕も出たせん。

「az network nsg delete」コマンド実行結果

「az network nsg list」を利甚しお削陀されおいるこずを確認したす。

「az network nsg list」コマンド実行結果

NSG䜜成埌の確認結果ず異なり、もう存圚しないためここでは結果が出力されたせん。

これにお削陀も完了ずなりたす。

泚意点

仮想マシン䜜成時にデフォルト倀で䜜成されるNSGは「すべおのIPからのRDP/SSHを蚱可する」

これはGUIで䜜成するずきも同じですが、仮想マシンを䜜成する際に、特にNSGを指定するこずなくデフォルト倀で䜜成されるNSGは「すべおのIPからのRDP or SSHを蚱可する」蚭定になっおいるので倉曎しないず攻撃察象ずなっおしたいたす。

そのため基本的にはNSGは事前に送信元を制限したNSGを仮想マシン䜜成時に指定しお䜜成するこずが掚奚ずされおいたすが、デフォルト倀で䜜成しおしたったなら䞊蚘コマンドなどを甚いお倉曎が必芁です。

以䞋に倉曎する際のAzureCLIのコマンド䟋を蚘茉しおおきたす。

【NSG名】ず【RG名】ず送信元のアドレス垯は適宜倉曎しお利甚しおください。

az network nsg rule update --name "rdp" --nsg-name "【NSG名】" -g "【RG名】" --source-address-prefixes 1.1.1.1/32