このページの本文へ

ポイントを速習!「Azureの基礎(AZ900)」をみんなで学ぶ 第13回

実際にNSG(Network Security Group)とVNet Service Endpointを構成してみる

Azureのセキュリティで知っておきたいこと、対策の基礎【後編】

2021年03月26日 08時00分更新

文● 椎名泰之/FIXER 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

[実践]NSGを使って接続を制限する

NSGのハンズオンで構成するリソース群の概要図

 ここまで各機能の解説をしてきましたが、ここからはNSGを使って、実際に手を動かしながら通信の出入りをコントロールしてみましょう。

 上記の図は、これから構築するリソース群の概要を示しています。アプリケーションサーバーからデータサーバーへアクセスするときにはHTTP通信を許可しますが、逆方向のデータサーバーからアプリケーションサーバーへのHTTP通信は拒否するというものです。

VNetとNSGを作成する

 まず、Azure上にリソースグループ(以下、RG)とVNet、サブネットを作成し、その後にNSGを作ります。なお、以下ではCloud Shellターミナル(Bash)上でのコマンドライン操作となりますが、以下に掲載しているコマンドを適宜コピーして、ターミナルへ右クリックでペーストすると便利です。

1. Azure Portalの右上のボタン①からCloud Shellターミナル(Bash)を開き、リソースを作成したいサブスクリプションのあるディレクトリにログインします。ディレクトリ名は、右上のディレクトリ選択ボタン②から確認できる「~.onmicrosoft.com」で終わる文字列になるので、以下のコマンドラインの部分に入れて下さい。


az login --tenant 
2. 今回のリソース群をデプロイするリージョン名を選びます。たとえば東日本リージョンならば「japaneast」です。その他のリージョン名は、以下のコマンドで表示されるリストの「Name」カラムから選択してください。


az account list-locations -o table

3. RG名を入れる変数(rg)を設定したうえで、RGを作成します。《rg name》部分にはお好みのRG名を、《location》部分には「japaneast」など先ほど選んだデプロイ先リージョン名を入れて、次のコマンドを実行します。


rg=《rg name》
az group create --name $rg --location 《location》

4. 「servers」という名前のVNetと「Apps」というサブネットを作成するために、次のコマンドを実行します。


az network vnet create \
    --resource-group $rg \
    --name servers \
    --address-prefixes 10.0.0.0/16 \
    --subnet-name Apps \
    --subnet-prefixes 10.0.0.0/24

5. 4.で作成したservers VNet内に、もうひとつの「DBs」サブネットを作成するために、次のコマンドを実行します。


az network vnet subnet create \
    --resource-group $rg \
    --vnet-name servers \
    --address-prefixes 10.0.1.0/24 \
    --name DBs

6. 最後に「SERVERS-NSG」というNSGを作成するために、次のコマンドを実行します。


az network nsg create \
    --resource-group $rg \
    --name SERVERS-NSG

Linux VMを作成する

 続いて、NSGのテストのためにUbuntuのVMを2つ作成します。VMの名前は「AppServer」 と「DataServer」にしましょう。

 AppServer VMはAppsサブネットに、DataServer VMはDBs サブネットに、それぞれデプロイします。そのうえで、各VMのVIF(仮想ネットワークインターフェース)をSERVERS-NSGに追加することで、NSGの管理下とします。

1. AppServer VMをビルドするために、次のコマンドを実行して下さい。なお、VMの管理者アカウントのパスワードとして、《password》部分にお好みのパスワードを追加して下さい。


wget -N https://raw.githubusercontent.com/MicrosoftDocs/mslearn-secure-and-isolate-with-nsg-and-service-endpoints/master/cloud-init.yml && \
az vm create \
    --resource-group $rg \
    --name AppServer \
    --vnet-name servers \
    --subnet Apps \
    --nsg SERVERS-NSG \
    --image UbuntuLTS \
    --size Standard_DS1_v2 \
    --admin-username azureuser \
    --custom-data cloud-init.yml \
    --no-wait \
    --admin-password "《password》"

2. DataServer VMも同様にビルドします。


az vm create \
    --resource-group $rg \
    --name DataServer \
    --vnet-name servers \
    --subnet DBs \
    --nsg SERVERS-NSG \
    --size Standard_DS1_v2 \
    --image UbuntuLTS \
    --admin-username azureuser \
    --custom-data cloud-init.yml \
    --admin-password "《password》"

3. VMが起動するまでには数分ほど時間がかかります。デプロイの進捗を確認するために、次のコマンドを実行してください。AppServer、DataServerのそれぞれがプロビジョニング成功(Succeeded)しており、パワーステートが「VM running」になっていれば大丈夫です。


az vm list \
    --resource-group $rg \
    --show-details \
    --query "[*].{Name:name, Provisioned:provisioningState, Power:powerState}" \
    --output table

カテゴリートップへ

この連載の記事