Udostępnij przez


Śledzenie zmian zestawu reguł usługi Azure Firewall

W tym artykule pokazano, jak monitorować i śledzić zmiany w grupach kolekcji reguł usługi Azure Firewall przy użyciu usługi Azure Resource Graph. Śledzenie zmian pomaga zachować zgodność z zabezpieczeniami, przeprowadzać inspekcję modyfikacji konfiguracji i rozwiązywać problemy, udostępniając szczegółową historię modyfikacji zestawu reguł.

Usługa Azure Resource Graph udostępnia dane analizy zmian, które ułatwiają śledzenie, kiedy zmiany zostały wykryte w grupach kolekcji reguł usługi Azure Firewall. Możesz wyświetlić szczegóły zmiany właściwości i zmiany zapytań na dużą skalę w ramach subskrypcji, grupy zarządzania lub dzierżawy.

Śledzenie zmian dla grup kolekcji reguł usługi Azure Firewall umożliwia:

  • Monitorowanie zmian konfiguracji: śledzenie wszystkich modyfikacji reguł zapory i zasad
  • Zachowaj zgodność: Generowanie dzienników inspekcji pod kątem wymagań dotyczących zabezpieczeń i zgodności
  • Rozwiązywanie problemów: zidentyfikuj, kiedy wprowadzono zmiany, które mogą mieć wpływ na łączność
  • Analiza trendów: Zrozumieć wzorce w modyfikacjach reguł w czasie

Wymagania wstępne

Zanim będzie można śledzić zmiany zestawu reguł, sprawdź, czy spełniasz następujące wymagania:

  • Masz usługę Azure Firewall ze skonfigurowanymi grupami kolekcji reguł
  • Masz odpowiednie uprawnienia dostępu do usługi Azure Resource Graph
  • Usługa Azure Firewall korzysta z zasad usługi Azure Firewall (nie reguł klasycznych)

Uzyskiwanie dostępu do Eksploratora usługi Azure Resource Graph

Aby uruchomić zapytania śledzenia zmian, musisz uzyskać dostęp do Eksploratora usługi Azure Resource Graph:

  1. Zaloguj się do witryny Azure Portal.
  2. Wyszukaj i wybierz Resource Graph Explorer
  3. W oknie zapytania można uruchomić zapytania śledzenia zmian opisane w poniższych sekcjach

Podstawowe zapytanie śledzenia zmian

Użyj tego zapytania, aby uzyskać kompleksowy widok wszystkich zmian w grupach kolekcji reguł usługi Azure Firewall:

networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| extend parsedProperties = parse_json(properties)
| extend TargetResource = tostring(parsedProperties.targetResourceId),
         Timestamp = todatetime(parsedProperties.changeAttributes.timestamp),
         Changes = todynamic(parsedProperties.changes),
         ChangeType = tostring(parsedProperties.changeType),
         PreviousSnapshotId = tostring(parsedProperties.changeAttributes.previousResourceSnapshotId),
         NewSnapshotId = tostring(parsedProperties.changeAttributes.newResourceSnapshotId),
         CorrelationId = tostring(parsedProperties.changeAttributes.correlationId),
         ChangesCount = toint(parsedProperties.changeAttributes.changesCount),
         TenantId = tostring(tenantId),
         Location = tostring(location),
         SubscriptionId = tostring(subscriptionId),
         ResourceGroup = tostring(resourceGroup),
         FirewallPolicyName = extract('/firewallPolicies/([^/]+)/', 1, tostring(id))
| mv-expand ChangeKey = bag_keys(Changes)
| extend ChangeDetails = todynamic(Changes[tostring(ChangeKey)])
| extend RuleCollectionName = extract('properties\\.ruleCollections\\["([^"]+)"\\]', 1, tostring(ChangeKey))
| where isnotempty(RuleCollectionName)
| summarize Changes = make_list(pack("ChangeKey", ChangeKey, "PreviousValue", tostring(ChangeDetails.previousValue), "NewValue", tostring(ChangeDetails.newValue)))
    by Timestamp = format_datetime(Timestamp, 'yyyy-MM-dd HH:mm:ss'),
       TenantId,
       SubscriptionId,
       ResourceGroup,
       Location,
       TargetResource,
       FirewallPolicyName,
       RuleCollectionName,
       ChangeType,
       PreviousSnapshotId,
       NewSnapshotId,
       CorrelationId,
       ChangesCount
| project Timestamp,
          TenantId,
          SubscriptionId,
          ResourceGroup,
          Location,
          TargetResource,
          FirewallPolicyName,
          RuleCollectionName,
          ChangeType,
          PreviousSnapshotId,
          NewSnapshotId,
          CorrelationId,
          ChangesCount,
          Changes
| order by Timestamp desc

Informacje o wynikach zapytania

Zapytanie śledzenia zmian zwraca następujące informacje dla każdej wykrytej zmiany:

(No changes needed) Description
Sygnatura czasowa Kiedy nastąpiła zmiana
Identyfikator subskrypcji Subskrypcja platformy Azure zawierająca zaporę
ResourceGroup Grupa zasobów zawierająca politykę zapory sieciowej
FirewallPolicyName Nazwa zasad zapory, których dotyczy problem
RuleCollectionName Nazwa kolekcji reguł, których dotyczy problem
ChangeType Typ zmiany (tworzenie, aktualizowanie, usuwanie)
Liczba zmian Liczba zmienionych właściwości
Zmiany Szczegółowa lista zmienionych wartości, w tym poprzednich i nowych wartości
Identyfikator korelacji Unikalny identyfikator łączący powiązane zmiany

Filtruj zmiany według okresu

Aby skoncentrować się na ostatnich zmianach, możesz dodać filtr czasu do zapytania:

networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| where todatetime(properties.changeAttributes.timestamp) >= ago(7d)  // Last 7 days
// ... rest of query

Filtrowanie według określonej polityki zapory

Aby śledzić zmiany dla określonej zasady zapory:

networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| where id contains "/firewallPolicies/your-policy-name"
// ... rest of query

Konfigurowanie zautomatyzowanego monitorowania

W przypadku ciągłego monitorowania rozważ skonfigurowanie:

  • Zaplanowane zapytania: uruchamianie zapytań zgodnie z harmonogramem przy użyciu usługi Azure Logic Apps lub Azure Automation
  • Alerty: tworzenie alertów usługi Azure Monitor na podstawie wzorców zmian
  • Raporty: eksportowanie wyników do magazynu lub narzędzi do wizualizacji na potrzeby raportowania

Najlepsze rozwiązania

Podczas implementowania śledzenia zmian zestawu reguł:

  • Regularne monitorowanie: konfigurowanie regularnego wykonywania zapytań w celu szybkiego przechwytywania zmian
  • Zasady przechowywania: Planowanie długoterminowego przechowywania danych zmian pod kątem zgodności
  • Kontrola dostępu: Ograniczanie dostępu do danych śledzenia zmian w oparciu o wymagania dotyczące zabezpieczeń
  • Integracja: rozważ integrację z istniejącym rozwiązaniem SIEM lub narzędziami do monitorowania

Rozwiązywanie problemów

Jeśli nie widzisz oczekiwanych zmian w wynikach:

  • Sprawdź, czy używasz usługi Azure Firewall Policy (nie reguł klasycznych)
  • Sprawdź, czy okres w zapytaniu obejmuje, kiedy wystąpiły zmiany
  • Upewnij się, że masz uprawnienia niezbędne do uzyskiwania dostępu do usługi Azure Resource Graph
  • Upewnij się, że nazwy zasobów w filtrach są poprawne