Udostępnij za pośrednictwem


Szybki start: konfigurowanie dzienników przepływu grupy zabezpieczeń sieciowych (NSG) przy użyciu szablonu Azure Resource Manager (ARM)

Ważne

30 września 2027 r. dzienniki przepływów Network Security Group (NSG) przestaną być wykorzystywane. W ramach tego zaprzestania nie będzie można już tworzyć nowych dzienników przepływów NSG po 30 czerwca 2025 r. Zalecamy migrację do dzienników przepływów sieci wirtualnej, które pozwalają wyeliminować ograniczenia dzienników przepływów NSG. Po dacie wycofania analiza ruchu wykorzystująca dzienniki przepływów NSG nie będzie już obsługiwana, a istniejące zasoby dzienników przepływów NSG w Twoich subskrypcjach zostaną usunięte. Jednak zapisy dzienników przepływu NSG nie zostaną usunięte i będą nadal kontynuować przestrzeganie ich odpowiednich zasad przechowywania. Więcej informacji znajdziesz w oficjalnym ogłoszeniu.

W tym przewodniku szybki start dowiesz się, jak włączyć dzienniki przepływu NSG przy użyciu szablonu Azure Resource Manager (ARM) i narzędzia Azure PowerShell. Aby uzyskać więcej informacji, zobacz Co to jest Azure Resource Manager? i Omówienie dzienników przepływów NSG.

Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. Szablon używa składni deklaratywnej. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.

Zaczynamy od omówienia właściwości obiektu dziennika przepływu NSG. Udostępniamy przykładowe szablony. Następnie użyjemy lokalnego wystąpienia programu Azure PowerShell do wdrożenia szablonu.

Jeśli Twoje środowisko spełnia wymagania wstępne i masz doświadczenie w korzystaniu z szablonów ARM, wybierz przycisk Wdróż na platformie Azure. Szablon zostanie otwarty w witrynie Azure Portal.

Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure.

Wymagania wstępne

Konto Azure z aktywną subskrypcją. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto.

Przegląd szablonu

Szablon, którego używamy w tym szybkim starcie, pochodzi z Azure Quickstart Templates.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.9.1.41621",
      "templateHash": "14580725600461536175"
    }
  },
  "parameters": {
    "networkWatcherName": {
      "type": "string",
      "defaultValue": "[format('NetworkWatcher_{0}', parameters('location'))]",
      "metadata": {
        "description": "Name of the Network Watcher attached to your subscription. Format: NetworkWatcher_<region_name>"
      }
    },
    "flowLogName": {
      "type": "string",
      "defaultValue": "FlowLog1",
      "metadata": {
        "description": "Name of your Flow log resource"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Region where you resources are located"
      }
    },
    "existingNSG": {
      "type": "string",
      "metadata": {
        "description": "Resource ID of the target NSG"
      }
    },
    "retentionDays": {
      "type": "int",
      "defaultValue": 0,
      "maxValue": 365,
      "minValue": 0,
      "metadata": {
        "description": "Retention period in days. Default is zero which stands for permanent retention. Can be any Integer from 0 to 365"
      }
    },
    "flowLogsVersion": {
      "type": "int",
      "defaultValue": 2,
      "allowedValues": [
        1,
        2
      ],
      "metadata": {
        "description": "FlowLogs Version. Correct values are 1 or 2 (default)"
      }
    },
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    }
  },
  "variables": {
    "storageAccountName": "[format('flowlogs{0}', uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    },
    {
      "type": "Microsoft.Network/networkWatchers",
      "apiVersion": "2022-01-01",
      "name": "[parameters('networkWatcherName')]",
      "location": "[parameters('location')]",
      "properties": {}
    },
    {
      "type": "Microsoft.Network/networkWatchers/flowLogs",
      "apiVersion": "2022-01-01",
      "name": "[format('{0}/{1}', parameters('networkWatcherName'), parameters('flowLogName'))]",
      "location": "[parameters('location')]",
      "properties": {
        "targetResourceId": "[parameters('existingNSG')]",
        "storageId": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
        "enabled": true,
        "retentionPolicy": {
          "days": "[parameters('retentionDays')]",
          "enabled": true
        },
        "format": {
          "type": "JSON",
          "version": "[parameters('flowLogsVersion')]"
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
      ]
    }
  ]
}

W szablonie zdefiniowano następujące zasoby:

Wyróżniony kod w poprzednim przykładzie przedstawia definicję zasobu dzienników przepływów NSG.

Wdrażanie szablonu

Ten samouczek przyjmuje, że posiadasz istniejącą grupę zasobów i grupę zabezpieczeń sieciowych, dla której można włączyć rejestrowanie przepływu.

Możesz zapisać dowolny z przykładowych szablonów, które są wyświetlane w tym artykule lokalnie jako azuredeploy.json. Zaktualizuj wartości właściwości, aby wskazywały prawidłowe zasoby w Twojej subskrypcji.

Aby wdrożyć szablon, uruchom następujące polecenie w programie Azure PowerShell:

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

Uwaga / Notatka

Te polecenia wdrażają zasób w grupie zasobów NetworkWatcherRG , a nie do grupy zasobów zawierającej sieciową grupę zabezpieczeń.

Weryfikowanie wdrożenia

Istnieją dwie opcje, aby sprawdzić, czy wdrożenie zakończyło się pomyślnie:

Jeśli wystąpiły problemy z wdrożeniem, zobacz Rozwiązywanie typowych błędów wdrażania platformy Azure w usłudze Azure Resource Manager.

Uprzątnij zasoby

Zasoby platformy Azure można usunąć przy użyciu pełnego trybu wdrażania. Aby usunąć zasób dziennika przepływu, określ wdrożenie w trybie pełnym bez dołączania zasobu, który chcesz usunąć. Przeczytaj więcej na temat pełnego trybu wdrażania.

Możesz również wyłączyć lub usunąć dziennik przepływu w witrynie Azure Portal:

  1. W polu wyszukiwania w górnej części portalu wprowadź Network Watcher. Wybierz pozycję Network Watcher z wyników wyszukiwania.

  2. W obszarze Dzienniki wybierz Dzienniki przepływu.

  3. W usłudze Network Watcher | Dzienniki przepływu zaznacz pole wyboru dziennika przepływu, który chcesz usunąć.

  4. Wybierz pozycję Wyłącz lub Usuń. Aby uzyskać więcej informacji, zobacz Wyłączanie dziennika przepływu lub Usuwanie dziennika przepływu.

W tym krótkim wprowadzeniu wykryłeś jak włączyć dzienniki przepływów sieciowej grupy zabezpieczeń przy użyciu szablonu ARM. Następnie naucz się, jak wizualizować dane przepływu Grupy zabezpieczeń sieci za pomocą analizy ruchu sieciowego: