Azure Resource Manager テンプレートを使用して NSG フロー ログを管理する

ネットワーク セキュリティ グループのフロー ログは、ネットワーク セキュリティ グループを通過する IP トラフィックに関する情報をログに記録できる Azure Network Watcher の機能です。 ネットワーク セキュリティ グループのフロー ログの詳細については、NSG フロー ログの概要に関するページを参照してください。

この記事では、Azure Resource Manager テンプレートと Azure PowerShell を使用して、プログラムで NSG フロー ログを管理する方法について説明します。 Azure portalPowerShellAzure CLI、または REST API を使用して NSG フロー ログを管理する方法を説明します。

Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルです。宣言構文を使用してプロジェクトのインフラストラクチャと構成が定義されています。

前提条件

NSG フロー ログ オブジェクト

すべてのパラメーターが指定された NSG フロー ログ オブジェクトを次の例に示します。 オブジェクト プロパティの完全な概要については、NSG フロー ログのテンプレート リファレンスに関するページを参照してください。

{
  "name": "string",
  "type": "Microsoft.Network/networkWatchers/flowLogs",
  "location": "string",
  "apiVersion": "2022-07-01",
  "properties": {
    "targetResourceId": "string",
    "storageId": "string",
    "enabled": "boolean",
    "flowAnalyticsConfiguration": {
      "networkWatcherFlowAnalyticsConfiguration": {
         "enabled": "boolean",
         "workspaceResourceId": "string",
          "trafficAnalyticsInterval": "integer"
        },
        "retentionPolicy": {
           "days": "integer",
           "enabled": "boolean"
         },
        "format": {
           "type": "string",
           "version": "integer"
         }
      }
    }
  }

Microsoft.Network/networkWatchers/flowLogs リソースを作成するには、上記の JSON をテンプレートのリソース セクションに追加します。

テンプレートを作成する

Azure Resource Manager テンプレートの使用に関する詳細については、次を参照してください。

次の例では、NSG フロー ログを有効にする完全なテンプレートを示します。

例 1

例 1 では、最小パラメーターが渡された、最も単純なバージョンの ARM テンプレートを使用します。 次のテンプレートを使用すると、ターゲット ネットワーク セキュリティ グループの NSG フロー ログが有効になり、特定のストレージ アカウントに格納されます。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "apiProfile": "2019-09-01",
  "resources": [
 {
    "name": "myNSG-myresourcegroup-flowlog",
    "type": "Microsoft.Network/networkWatchers/FlowLogs/",
    "location": "eastus",
    "apiVersion": "2022-11-01",
    "properties": {
      "targetResourceId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
      "storageId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
      "enabled": true,
      "flowAnalyticsConfiguration": {},
      "retentionPolicy": {},
      "format": {}
    }

  }
  ]
}

注意

  • targetResourceId は、ターゲット ネットワーク セキュリティ グループのリソース ID です。
  • storageId は、コピー先のストレージ アカウントのリソース ID です。

例 2

例 2 では、次のテンプレートを使用して、保持期間が 5 日の NSG フロー ログ (バージョン 2) と、処理間隔が 10 分のトラフィック分析を有効にします。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "apiProfile": "2019-09-01",
  "resources": [
    {
      "name": "myNSG-myresourcegroup-flowlog",
      "type": "Microsoft.Network/networkWatchers/FlowLogs/",
      "location": "eastus",
      "apiVersion": "2022-11-01",
      "properties": {
        "targetResourceId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
        "storageId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
        "enabled": true,
        "flowAnalyticsConfiguration": {
          "networkWatcherFlowAnalyticsConfiguration": {
            "enabled": true,
            "workspaceResourceId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/defaultresourcegroup-eus/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-abcdef01-2345-6789-0abc-def012345678-EUS",
            "trafficAnalyticsInterval": 10
          }
        },
        "retentionPolicy": {
          "days": 5,
          "enabled": true
        },
        "format": {
          "type": "JSON",
          "version": 2
        }
      }
    }
  ]
}

注意

  • targetResourceId は、ターゲット ネットワーク セキュリティ グループのリソース ID です。
  • storageId は、コピー先のストレージ アカウントのリソース ID です。
  • workspaceResourceId は、トラフィック分析ワークスペースのリソース ID です。

Azure Resource Manager テンプレートをデプロイする

このチュートリアルでは、既存のリソース グループと、フローのログ記録を有効にできるネットワーク セキュリティ グループがあることを前提としています。 上記の例のテンプレートは、すべて azuredeploy.json としてローカルに保存できます。 プロパティ値を更新して、サブスクリプション内の有効なリソースを参照するようにします。

テンプレートをデプロイするには、PowerShell で次のコマンドを実行します。

$context = Get-AzSubscription -SubscriptionId <SubscriptionId>
Set-AzContext $context
New-AzResourceGroupDeployment -Name EnableFlowLog -ResourceGroupName NetworkWatcherRG `
    -TemplateFile "C:\MyTemplates\azuredeploy.json"

注意

前述のコマンドでは、NetworkWatcherRG リソース グループにリソースがデプロイされ、ネットワーク セキュリティ グループを含むリソース グループにはデプロイされません。

デプロイを確認する

デプロイが成功したかどうかを確認するには、いくつかの方法があります。 PowerShell コンソールの "ProvisioningState" が "Succeeded" と表示されます。 また、変更内容を確認するには、フロー ログのポータル ページを参照してください。 デプロイに問題がある場合は、「Azure Resource Manager を使用した Azure へのデプロイで発生する一般的なエラーのトラブルシューティング」を参照してください。

リソースを削除する

Azure では、"完全" デプロイ モードを使用してリソースを削除できます。 フロー ログ リソースを削除するには、削除するリソースを含めずに、完全モードでデプロイを指定します。 詳細については、完全デプロイ モードに関するページを参照してください。

次の手順