إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح لك هذه المقالة كيفية مراقبة وتعقب التغييرات التي تطرأ على مجموعات مجموعة قواعد Azure Firewall باستخدام Azure Resource Graph. يساعدك تعقب التغيير في الحفاظ على الامتثال الأمني وتدقيق تعديلات تكوين واستكشاف المشكلات وإصلاحها من خلال توفير محفوظات مفصلة لتعديلات مجموعة القواعد.
يوفر Azure Resource Graph بيانات تحليل التغيير التي تساعدك على تتبع وقت اكتشاف التغييرات على مجموعات مجموعة قواعد Azure Firewall. يمكنك عرض تفاصيل تغيير الخاصية وتغييرات الاستعلام على نطاق واسع عبر اشتراكك أو مجموعة الإدارة أو المستأجر.
يمكنك تعقب التغيير لمجموعات مجموعة قواعد Azure Firewall من:
- مراقبة تغييرات التكوين: تعقب جميع التعديلات على قواعد وسياسات جدار الحماية
- الحفاظ على الامتثال: إنشاء مسارات تدقيق لمتطلبات الأمان والامتثال
- تحديد المشاكل وإصلاحها: تحديد وقت إجراء التغييرات التي قد تؤثر في الاتصال
- تحليل الاتجاهات: فهم الأنماط في تعديلات القواعد بمرور الوقت
المتطلبات الأساسية
قبل أن تتمكن من تتبع تغييرات مجموعة القواعد، تحقق من استيفاء المتطلبات التالية:
- لديك Azure Firewall مع مجموعات مجموعة القواعد المكونة
- لديك أذونات مناسبة للوصول إلى Azure Resource Graph
- يستخدم Azure Firewall نهج Azure Firewall (وليس القواعد الكلاسيكية)
الوصول إلى Azure Resource Graph Explorer
لتشغيل استعلامات تعقب التغيير، تحتاج إلى الوصول إلى Azure Resource Graph Explorer:
- سجِّل الدخول إلى مدخل Azure
- ابحث عن مستكشف الرسم البياني للموارد وحدده
- في نافذة الاستعلام، يمكنك تشغيل استعلامات تعقب التغيير الموضحة في الأقسام التالية
استعلام تعقب التغيير الأساسي
استخدم هذا الاستعلام للحصول على عرض شامل لجميع التغييرات التي تم إجراؤها على مجموعات مجموعة قواعد 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
فهم نتائج الاستعلام
إرجاع استعلام تعقب التغيير المعلومات التالية لكل تغيير تم اكتشافه:
| الحقل | الوصف |
|---|---|
| الطابع الزمني | متى حدث التغيير |
| SubscriptionId. | اشتراك Azure الذي يحتوي على جدار الحماية |
| ResourceGroup | مجموعة الموارد التي تحتوي على نهج جدار الحماية |
| جدار الحمايةالسياسةالاسم | اسم نهج جدار الحماية المتأثر |
| اسم القاعدة | اسم مجموعة القواعد المتأثرة |
| نوع التغيير | نوع التغيير (إنشاء، تحديث، حذف) |
| التغييراتعدد | عدد العقارات التي تم تغييرها |
| التغييرات | قائمة مفصلة بما تغير، بما في ذلك القيم السابقة والجديدة |
| معرف الارتباط | المعرف الفريد الذي يربط التغييرات ذات الصلة |
تصفية التغييرات حسب الفترة الزمنية
للتركيز على التغييرات الأخيرة، يمكنك إضافة فلتر الوقت إلى طلب البحث:
networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| where todatetime(properties.changeAttributes.timestamp) >= ago(7d) // Last 7 days
// ... rest of query
التصفية حسب نهج جدار الحماية المحدد
لتتبع التغييرات لنهج جدار حماية معين:
networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| where id contains "/firewallPolicies/your-policy-name"
// ... rest of query
إعداد المراقبة التلقائية
للمراقبة المستمرة، ضع في اعتبارك إعداد:
- الاستعلامات المجدولة: استخدم Azure Logic Apps أو Azure Automation لتشغيل الاستعلامات وفقا لجدول زمني
- التنبيهات: إنشاء تنبيهات Azure Monitor استنادا إلى أنماط التغيير
- التقارير: تصدير النتائج إلى أدوات التخزين أو التصور لإعداد التقارير
أفضل الممارسات
عند تنفيذ تتبع تغيير مجموعة القواعد:
- المراقبة المنتظمة: قم بإعداد تنفيذ استعلام منتظم لالتقاط التغييرات على الفور
- نهج الاستبقاء: التخطيط للتخزين طويل الأجل لبيانات التغيير للتوافق
- التحكم في الوصول: تقييد الوصول إلى بيانات تعقب التغيير استنادا إلى متطلبات الأمان
- التكامل: ضع في اعتبارك التكامل مع أدوات SIEM أو أدوات المراقبة الحالية
استكشاف الأخطاء وإصلاحها
إذا لم تظهر لك تغييرات متوقعة في نتائجك:
- تحقق من أنك تستخدم نهج جدار حماية Azure (وليس القواعد الكلاسيكية)
- تحقق من أن الفترة الزمنية في طلب البحث تغطي وقت حدوث التغييرات
- تأكد من حصولك على الأذونات اللازمة للوصول إلى Azure Resource Graph
- تأكد من صحة أسماء الموارد في عوامل التصفية