https://learn.microsoft.com/ja-jp/azure/network-watcher/network-watcher-nsg-flow-logging-cli
-- 1. 前作業
az login --use-device-code
az account show
az version
az configure --list-defaults
az configure --defaults location=japaneast
az configure --list-defaults
az group create \
--name rg01 \
--location japaneast
az group list
-- 2. 仮想ネットワーク作成
az network vnet create \
--name vnet01 \
--resource-group rg01 \
--address-prefixes 10.1.0.0/16 \
--ddos-protection false \
--location japaneast
az network vnet list
az network vnet show \
--resource-group rg01 \
--name vnet01
-- 3. サブネット作成
az network vnet subnet create \
--address-prefixes 10.1.0.0/24 \
--name subnet01 \
--resource-group rg01 \
--vnet-name vnet01
az network vnet subnet list \
--resource-group rg01 \
--vnet-name vnet01
az network vnet subnet show \
--resource-group rg01 \
--vnet-name vnet01 \
--name subnet01
-- 4. NSG作成
az network nsg create \
--name nsg01 \
--resource-group rg01
az network nsg list \
--resource-group rg01
az network nsg show \
--name nsg01 \
--resource-group rg01
-- 5. NSGルール作成
az network nsg rule create \
--name Allow_HTTP_HTTPS_SSH \
--nsg-name nsg01 \
--priority 100 \
--resource-group rg01 \
--destination-port-ranges 80 443 22 \
--access "Allow" \
--protocol TCP \
--direction Inbound
az network nsg rule list \
--nsg-name nsg01 \
--resource-group rg01
az network nsg rule show \
--resource-group rg01 \
--nsg-name nsg01 \
--name Allow_HTTP_HTTPS_SSH
-- 6. NSGとサブネットsubnet01を関連付ける
az network vnet subnet update \
--resource-group rg01 \
--name subnet01 \
--vnet-name vnet01 \
--network-security-group nsg01
-- 7. 仮想マシンの作成
az vm create \
--resource-group rg01 \
--name vm01 \
--image UbuntuLTS \
--size Standard_B1ls \
--admin-username azureuser \
--generate-ssh-keys \
--storage-sku Standard_LRS \
--vnet-name vnet01 \
--subnet subnet01
-- 8. ストレージアカウントの作成
az storage account create \
--resource-group rg01 \
--name st123 \
--access-tier Hot \
--kind StorageV2 \
--sku Standard_LRS
az storage account list \
--resource-group rg01
az storage account show \
--resource-group rg01 \
--name st123
-- 9. NSGフローログを有効にする
az provider register --namespace Microsoft.Insights
az network watcher flow-log create \
--location japaneast \
--name flowlog01 \
--enabled true \
--format JSON \
--interval 10 \
--log-version 2 \
--nsg nsg01 \
--resource-group rg01 \
--retention 1 \
--storage-account st123
az network watcher flow-log list --location japaneast
az network watcher flow-log show \
--location japaneast \
--name flowlog01 \
--resource-group rg01
-- 10. NSGフローログをダウンロードする
key=$(az storage account keys list \
--account-name st123 \
--resource-group rg01 \
--output json \
--query [0].value | tr -d '"')
echo $key
az storage container list \
--account-name st123 \
--account-key $key
az storage blob list \
--account-name st123 \
--container-name insights-logs-networksecuritygroupflowevent \
--output table \
--account-key $key
az storage blob download \
--account-name st123 \
--container-name insights-logs-networksecuritygroupflowevent \
--name resourceId=/SUBSCRIPTIONS/11111111-1111-1111-1111-111111111111/RESOURCEGROUPS/RG01/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/NSG01/y=2022/m=11/d=14/h=12/m=00/macAddress=111111111111/PT1H.json \
--file PT1H.json \
--account-key $key
cat PT1H.json | jq
-- 11. クリーンアップ
az group list
az group delete \
--name rg01 \
--yes
az group delete \
--name NetworkWatcherRG \
--yes