Zarządzanie dziennikami przepływów sieciowej grupy zabezpieczeń przy użyciu interfejsu API REST
Ważne
30 września 2027 r. dzienniki przepływów sieciowej grupy zabezpieczeń zostaną wycofane. W ramach tego wycofania nie będzie już można tworzyć nowych dzienników przepływów sieciowej grupy zabezpieczeń od 30 czerwca 2025 r. Zalecamy migrację do dzienników przepływów sieci wirtualnej, co pozwala wyeliminować ograniczenia dzienników przepływów sieciowej grupy zabezpieczeń. Po dacie wycofania analiza ruchu włączona z dziennikami przepływów sieciowej grupy zabezpieczeń nie będzie już obsługiwana, a istniejące zasoby przepływów sieciowej grupy zabezpieczeń w subskrypcjach zostaną usunięte. Jednak rekordy dzienników przepływu sieciowej grupy zabezpieczeń nie zostaną usunięte i będą nadal zgodne z odpowiednimi zasadami przechowywania. Więcej informacji znajdziesz w oficjalnym ogłoszeniu.
Rejestrowanie przepływu sieciowej grupy zabezpieczeń to funkcja usługi Azure Network Watcher, która umożliwia rejestrowanie informacji o ruchu IP przepływającym przez sieciową grupę zabezpieczeń. Aby uzyskać więcej informacji na temat rejestrowania przepływu sieciowej grupy zabezpieczeń, zobacz Omówienie dzienników przepływu sieciowej grupy zabezpieczeń.
W tym artykule pokazano, jak używać interfejsu API REST do włączania, wyłączania i wysyłania zapytań do dzienników przepływu przy użyciu interfejsu API REST. Możesz dowiedzieć się, jak zarządzać dziennikiem przepływu sieciowej grupy zabezpieczeń przy użyciu witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia platformy Azure lub szablonu usługi ARM.
Z tego artykułu dowiesz się, jak wykonywać następujące działania:
- Włączanie dzienników przepływu (wersja 2)
- Wyłączanie dzienników przepływu
- Stan dzienników przepływu zapytań
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- ARMClient. ARMClient to proste narzędzie wiersza polecenia do wywoływania interfejsu API usługi Azure Resource Manager. Aby zainstalować narzędzie, zobacz ARMClient. Aby uzyskać szczegółowe specyfikacje interfejsu API REST dzienników przepływów sieciowej grupy zabezpieczeń, zobacz Flow Logs - REST API (Dzienniki przepływu — interfejs API REST)
Ważne
Podczas wykonywania wywołań interfejsu API REST do usługi Network Watcher nazwa grupy zasobów w identyfikatorze URI żądania odwołuje się do grupy zasobów zawierającej usługę Network Watcher, a nie zasobów wykonywanych w ramach akcji diagnostycznych.
Logowanie przy użyciu klienta ARMClient
Zaloguj się do klienta armclient przy użyciu poświadczeń platformy Azure.
armclient login
Rejestrowanie dostawcy usługi Insights
Dostawca Microsoft.Insights musi być zarejestrowany w celu pomyślnego rejestrowania ruchu przepływającego przez sieciową grupę zabezpieczeń. Jeśli nie masz pewności, czy dostawca Microsoft.Insights jest zarejestrowany, użyj opcji Dostawcy — zarejestruj interfejs API REST, aby go zarejestrować.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"
Włączanie dzienników przepływu sieciowej grupy zabezpieczeń
W poniższym przykładzie pokazano polecenie umożliwiające włączenie dzienników przepływu w wersji 2. W przypadku wersji 1 zastąp pole "version" ciągiem "1":
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
'targetResourceId': '${targetUri}',
'properties': {
'storageId': '${storageId}',
'enabled': 'true',
'retentionPolicy' : {
days: 5,
enabled: true
},
'format': {
'type': 'JSON',
'version': 2
}
}
}
"@
armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2022-11-01" $requestBody
Odpowiedź zwrócona z poprzedniego przykładu wygląda następująco:
{
"targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
"properties": {
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
"enabled": true,
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
Uwaga
- Usługa Network Watchers — ustaw interfejs API REST konfiguracji dziennika przepływu używany w poprzednim przykładzie jest stary i wkrótce będzie przestarzały.
- Zaleca się użycie nowych dzienników przepływu — tworzenie lub aktualizowanie interfejsu API REST w celu tworzenia lub aktualizowania dzienników przepływu.
Wyłączanie dzienników przepływu sieciowych grup zabezpieczeń
Użyj poniższego przykładu, aby wyłączyć dzienniki przepływu. Wywołanie jest takie samo jak włączanie dzienników przepływu, z wyjątkiem wartości false dla właściwości włączonej.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
'targetResourceId': '${targetUri}',
'properties': {
'storageId': '${storageId}',
'enabled': 'false',
'retentionPolicy' : {
days: 5,
enabled: true
},
'format': {
'type': 'JSON',
'version': 2
}
}
}
"@
armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2022-11-01" $requestBody
Odpowiedź zwrócona z poprzedniego przykładu wygląda następująco:
{
"targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
"properties": {
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
"enabled": false,
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
Uwaga
- Usługa Network Watchers — ustaw interfejs API REST konfiguracji dziennika przepływu używany w poprzednim przykładzie jest stary i wkrótce będzie przestarzały.
- Zaleca się użycie nowych dzienników przepływu — tworzenie lub aktualizowanie interfejsu API REST w celu wyłączenia dzienników przepływu i dzienników przepływu — usuwanie interfejsu API REST w celu usunięcia zasobu dzienników przepływu.
Dzienniki przepływu zapytań
Następujące wywołanie REST wykonuje zapytanie dotyczące stanu dzienników przepływu w sieciowej grupie zabezpieczeń.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
'targetResourceId': '${targetUri}',
}
"@
armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/queryFlowLogStatus?api-version=2022-11-01" $requestBody
W poniższym przykładzie przedstawiono zwróconą odpowiedź:
{
"targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
"properties": {
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
"enabled": true,
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
Uwaga
- Usługa Network Watchers — pobierz interfejs API REST stanu dziennika przepływu używany w poprzednim przykładzie wymaga dodatkowego uprawnienia czytelnika w grupie zasobów usługi Network Watcher. Ponadto ten interfejs API jest stary i może wkrótce zostać wycofany.
- Zaleca się używanie nowych dzienników przepływu — uzyskiwanie interfejsu API REST w celu wykonywania zapytań dotyczących dzienników przepływu.
Pobieranie dziennika przepływu
Lokalizacja magazynu dziennika przepływu jest definiowana podczas tworzenia. Wygodne narzędzie do uzyskiwania dostępu do dzienników przepływu zapisanych na koncie magazynu jest Eksplorator usługi Microsoft Azure Storage. Aby uzyskać więcej informacji, zobacz Wprowadzenie do Eksplorator usługi Storage.
Jeśli określono konto magazynu, pliki przechwytywania pakietów są zapisywane na koncie magazynu w następującej lokalizacji:
https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{nsgName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json
Następne kroki
- Aby dowiedzieć się, jak używać wbudowanych zasad platformy Azure do przeprowadzania inspekcji lub wdrażania dzienników przepływów sieciowej grupy zabezpieczeń, zobacz Zarządzanie dziennikami przepływów sieciowej grupy zabezpieczeń przy użyciu usługi Azure Policy.
- Aby dowiedzieć się więcej o analizie ruchu, zobacz Analiza ruchu.