ポイントを速習!「Azureの基礎(AZ900)」をみんなで学ぶ 第13回
実際にNSG(Network Security Group)とVNet Service Endpointを構成してみる
Azureのセキュリティで知っておきたいこと、対策の基礎【後編】
2021年03月26日 08時00分更新
[実践]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


この連載の記事
-
第12回
TECH
Azureのセキュリティで知っておきたいこと、対策の基礎【前編】 -
第11回
TECH
Azureの利用コストを管理、予測して支出を最適化する -
第10回
TECH
Azureの基本的なネットワークサービスを理解する【後編】 -
第9回
TECH
Azureの基本的なネットワークサービスを理解する【前編】 -
第8回
TECH
Azureのストレージサービスを理解し「SQL Database」に触れてみる -
第7回
TECH
「Azure VM」などAzureの幅広いコンピューティングサービスを知る -
第6回
TECH
Azureの主な管理ツールを知り、リソースを管理する【後編】 -
第5回
TECH
Azureの主な管理ツールを知り、リソースを管理する【前編】 -
第4回
TECH
Azureのインフラ構成とサービス可用性を高める仕組み -
第3回
TECH
Azureの代表的なサービスを知る/使ってみる【後編】 - この連載の一覧へ