تحديد أسباب عدم التوافق
عندما يتم تحديد مورد Azure على أنه غير ممتثل لقاعدة نهج، فمن المفيد فهم أي جزء من القاعدة لا يمتثل له المورد. من المفيد أيضا فهم التغيير الذي غير موردا متوافقا سابقا لجعله غير متوافق. هناك طريقتان للعثور على هذه المعلومات:
تفاصيل الامتثال
عندما يكون المورد غير ممتثل، تتوفر تفاصيل الامتثال لهذا المورد من صفحة الامتثال للنهج. يتضمن جزء تفاصيل الامتثال المعلومات التالية:
- تفاصيل المورد مثل الاسم والنوع والموقع ومعرف المورد.
- حالة التوافق والطوابع الزمنية للتقييم الأخير لتعيين النهج الحالي.
- قائمة أسباب عدم امتثال المورد.
هام
نظرًا لأن تفاصيل الامتثال لمورد غير ممتثل تعرض القيمة الحالية للخصائص على هذا المورد، يجب أن يكون لدى المستخدم عملية قراءة لـ نوع المورد. على سبيل المثال، إذا كان المورد غير المتوافق هو Microsoft.Compute/virtualMachines
ثم يجب أن يكون Microsoft.Compute/virtualMachines/read
لدى المستخدم العملية. إذا لم يكن لدى المستخدم العملية المطلوبة، يتم عرض خطأ في الوصول.
لعرض تفاصيل الامتثال اتبع هذه الخطوات:
قم بتشغيل خدمة Azure Policy في مدخل Microsoft Azure من خلال تحديد "All services"، ثم ابحث عن "Policy" وحددها.
في صفحة نظرة عامة أو الامتثال، حدد نهج في حالة الامتثال يكون غير ممتثل.
من علامة التبويب Resource compliance في صفحة Policy compliance، حدد مع الاستمرار (أو انقر بزر الماوس الأيمن) أو حدد علامة الحذف لمورد في حالة توافق غير متوافقة. ثم حدد عرض تفاصيل الامتثال.
يعرض جزء تفاصيل الامتثال معلومات من التقييم الأخير للمورد إلى تعيين النهج الحالي. في هذا المثال، تم العثور على الحقل
Microsoft.Sql/servers/version
ليكون 12.0 بينما كان تعريف النهج المتوقع 14.0. إذا كان المورد غير ممتثل لأسباب متعددة، يتم سرد كل منها في هذا الجزء.auditIfNotExists
بالنسبة لتعريف نهج أوdeployIfNotExists
، تتضمن التفاصيل الخاصية details.type وأي خصائص اختيارية. للحصول على قائمة، راجع خصائص auditIfNotExists وdeployIfNotExists. آخر مورد تم تقييمه هو مورد مرتبط من قسم التفاصيل في التعريف.مثال التعريف الجزئي
deployIfNotExists
:{ "if": { "field": "type", "equals": "[parameters('resourceType')]" }, "then": { "effect": "deployIfNotExists", "details": { "type": "Microsoft.Insights/metricAlerts", "existenceCondition": { "field": "name", "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]" }, "existenceScope": "subscription", "deployment": { ... } } } }
إشعار
لحماية البيانات، عندما تكون قيمة الخاصية بيانات سرية، تعرض القيمة الحالية النقط النجمية.
توضح هذه التفاصيل سبب عدم امتثال المورد حاليًا، ولكن لا تظهر متى تم إجراء التغيير على المورد الذي تسبب في أن يصبح غير ممتثل. للحصول على هذه المعلومات، راجع تغيير المحفوظات (معاينة).
أسباب الامتثال
لكل من أوضاع Resource Manager وموفر المواردأسباب مختلفة لعدم الامتثال.
أسباب الامتثال العامة لوضع Resource Manager
يعين الجدول التالي كل سبب من أسباب وضع Resource Manager للشرط المسؤول في تعريف النهج:
السبب | الشرط |
---|---|
يجب أن تحتوي القيمة الحالية على القيمة الهدف كمفتاح. | containsKey أو لا notContainsKey |
يجب أن تحتوي القيمة الحالية على القيمة الهدف. | contains أو لا notContains |
يجب أن تكون القيمة الحالية مساوية للقيمة الهدف. | equals أو لا notEquals |
يجب أن تكون القيمة الحالية أقل من القيمة الهدف. | less أو لا greaterOrEquals |
يجب أن تكون القيمة الحالية أكبر من القيمة الهدف أو مساوية لها. | greaterOrEquals أو لا less |
يجب أن تكون القيمة الحالية أكبر من القيمة الهدف. | greater أو لا lessOrEquals |
يجب أن تكون القيمة الحالية أقل من القيمة الهدف أو مساوية لها. | lessOrEquals أو لا greater |
يجب أن تكون القيمة الحالية موجودة. | موجود |
يجب أن تكون القيمة الحالية في القيمة الهدف. | in أو لا notIn |
يجب أن تتشابه القيمة الحالية مع القيمة الهدف. | like أو لا notLike |
يجب أن تكون القيمة الحالية متطابقة مع القيمة الهدف الحساسة لحالة الأحرف. | match أو لا notMatch |
يجب أن تكون القيمة الحالية متطابقة مع القيمة الهدف غير الحساسة لحالة الأحرف. | matchInsensitively أو لا notMatchInsensitively |
يجب ألا تحتوي القيمة الحالية على القيمة الهدف كمفتاح. | notContainsKey أو لا containsKey |
يجب ألا تحتوي القيمة الحالية على القيمة الهدف. | notContains أو لا contains |
يجب ألا تكون القيمة الحالية مساوية للقيمة الهدف. | notEquals أو لا equals |
يجب ألا تكون القيمة الحالية موجودة. | لا exists |
يجب ألا تكون القيمة الحالية في القيمة الهدف. | notIn أو لا in |
يجب ألا تتشابه القيمة الحالية مع القيمة الهدف. | notLike أو لا like |
يجب ألا تكون القيمة الحالية متطابقة مع القيمة الهدف الحساسة لحالة الأحرف. | notMatch أو لا match |
يجب ألا تكون القيمة الحالية متطابقة مع القيمة الهدف غير الحساسة لحالة الأحرف. | notMatchInsensitively أو لا matchInsensitively |
لا توجد موارد ذات صلة تطابق تفاصيل التأثير في تعريف النهج. | مورد من النوع المحدد في then.details.type والمرتبط بالمورد المحدد في إذا كان جزء من قاعدة النهج غير موجود. |
أسباب امتثال وضع موفر موارد Azure Policy
يعين الجدول التالي كل تعليمة برمجية لسبب Microsoft.PolicyInsights
وضع موفر الموارد للشرح المقابل لها:
التعليمات البرمجية لسبب الامتثال | رسالة الخطأ والشرح |
---|---|
NonModifiablePolicyAlias | NonModifiableAliasConflict: الاسم المستعار '{alias}' غير قابل للتعديل في الطلبات التي تستخدم إصدار API '{apiVersion}'. يحدث هذا الخطأ عند طلب يستخدم إصدار API حيث لا يدعم الاسم المستعار تأثير "التعديل" أو يدعم فقط تأثير "التعديل" بنوع رمز مميز مختلف. |
AppendPoliciesNotApplicable | AppendPoliciesUnableToAppend: الأسماء المستعارة: '{ الأسماء المستعارة }' غير قابلة للتعديل في الطلبات التي تستخدم إصدار واجهة برمجة التطبيقات: '{ apiVersion }'. يمكن أن يحدث هذا في الطلبات التي تستخدم إصدارات واجهة برمجة التطبيقات التي لا تدعم الأسماء المستعارة تأثير "التعديل"، أو تدعم تأثير "التعديل" بنوع رمز مميز مختلف. |
ConflictingAppendPolicies | ConflictingAppendPolicies: تم العثور على تعيينات نهج متعارضة تعدل الحقل '{notApplicableFields}'. معرفات النهج: '{policy}'. اتصل بمسؤول الاشتراك لتحديث تعيينات النهج. |
AppendPoliciesFieldsExist | AppendPoliciesFieldsExistWithDifferentValues: حاولت تعيينات النهج إلحاق الحقول الموجودة بالفعل في الطلب بقيم مختلفة. الحقول: '{existingFields}'. معرفات النهج: '{policy}'. اتصل بمسؤول الاشتراك لتحديث النهج. |
AppendPoliciesUndefinedFields | AppendPoliciesUndefinedFields: تم العثور على تعريف النهج الذي يشير إلى خاصية حقل غير معرف لإصدار واجهة برمجة التطبيقات '{apiVersion}'. الحقول: '{nonExistingFields}'. معرفات النهج: '{policy}'. اتصل بمسؤول الاشتراك لتحديث النهج. |
MissingRegistrationForType | MissingRegistrationForResourceType: الاشتراك غير مسجل لنوع المورد '{ResourceType}'. تحقق من وجود نوع المورد وتسجيل نوع المورد. |
AmbiguousPolicyEvaluationPaths | يحتوي محتوى الطلب على مسار واحد أو أكثر غامض: '{0}' مطلوب بواسطة النهج: '{1}'. |
InvalidResourceNameWildcardPosition | تعذر تقييم تعيين النهج '{0}' المقترن بتعريف النهج '{1}'. يحتوي اسم المورد '{2}' ضمن شرط ifNotExists على حرف البدل '?' في موضع غير صحيح. يمكن أن تكون أحرف البدل موجودة فقط في نهاية الاسم في مقطع بمفردها (على سبيل المثال. TopLevelResourceName/؟). إما إصلاح النهج أو إزالة تعيين النهج لإلغاء الحظر. |
TooManyResourceNameSegments | تعذر تقييم تعيين النهج '{0}' المقترن بتعريف النهج '{1}'. اسم المورد '{2}' ضمن شرط ifNotExists يحتوي على عدد كبير جدًا من مقاطع الاسم. يجب أن يكون عدد مقاطع الاسم مساويًا لعدد مقاطع النوع أو أقل منه (باستثناء مساحة اسم موفر المورد). إما إصلاح تعريف النهج أو إزالة تعيين النهج لإلغاء الحظر. |
InvalidPolicyFieldPath | مسار الحقل '{0}' داخل تعريف النهج غير صالح. يجب ألا تحتوي مسارات الحقول على مقاطع فارغة. قد تحتوي على أحرف أبجدية رقمية فقط باستثناء الحرف '.' لتقسيم المقاطع وتسلسل الأحرف '[*]' للوصول إلى خصائص الصفيف. |
أسباب امتثال وضع موفر موارد AKS
يعين الجدول التالي كل Microsoft.Kubernetes.Data
سبب من أسباب وضع موفر الموارد للحالة المسؤولة لقالب القيد في تعريف النهج:
السبب | وصف سبب قالب القيد |
---|---|
Constraint/TemplateCreateFailed | فشل المورد في إنشاء تعريف نهج مع قيد/قالب لا يتطابق مع قيد/قالب موجود على نظام المجموعة حسب اسم بيانات تعريف المورد. |
Constraint/TemplateUpdateFailed | فشل القالب/القيد في تحديث تعريف نهج مع قيد/قالب يتطابق مع قيد/قالب موجود على نظام المجموعة حسب اسم بيانات تعريف المورد. |
Constraint/TemplateInstallFailed | فشل إنشاء القيد/القالب وتعذر تثبيته على نظام المجموعة إما لعملية الإنشاء أو التحديث. |
ConstraintTemplateConflicts | يحتوي القالب على تعارض مع تعريف نهج واحد أو أكثر باستخدام نفس اسم القالب مع مصدر مختلف. |
ConstraintStatusStale | هناك حالة "تدقيق" حالية، ولكن لم يقم Gatekeeper بإجراء تدقيق خلال الساعة الأخيرة. |
ConstraintNotProcessed | لا توجد حالة ولم يقم Gatekeeper بإجراء تدقيق خلال الساعة الأخيرة. |
InvalidConstraint/Template | تم رفض المورد بسبب أحد الأسباب التالية: محتوى Rego لقالب القيد غير صالح أو YAML غير صحيح أو عدم تطابق نوع المعلمة بين القيد وقالب القيد (توفير قيمة سلسلة عند توقع عدد صحيح). |
إشعار
بالنسبة لتعيينات النهج الحالية وقوالب القيد الموجودة بالفعل على نظام المجموعة، إذا فشل هذا القيد/القالب، فإن نظام المجموعة محمي من خلال الحفاظ على القيد/القالب الموجود. يبلغ نظام المجموعة على أنه غير ممتثل حتى يتم حل الفشل في تعيين النهج أو المعالجة الذاتية للوظيفة الإضافية. لمزيد من المعلومات حول معالجة التعارض، راجع تعارضات قالب القيد.
تفاصيل المكون لأوضاع موفر الموارد
بالنسبة للتعيينات باستخدام وضع موفر الموارد، حدد المورد غير المتوافق لعرض سجلات توافق المكونات الخاصة به. تعرض علامة التبويب توافق المكون المزيد من المعلومات الخاصة بوضع موفر الموارد مثل اسم المكون ومعرف المكون والنوع.
تفاصيل الامتثال لتكوين الضيف
بالنسبة لتعريفات النهج في فئة تكوين الضيف، قد تكون هناك إعدادات متعددة تم تقييمها داخل الجهاز الظاهري وتحتاج إلى عرض التفاصيل لكل إعداد. على سبيل المثال، إذا كنت تقوم بالتدقيق للحصول على قائمة بإعدادات الأمان وكان واحد منها فقط غير متوافق مع الحالة، فأنت بحاجة إلى معرفة الإعدادات المحددة غير المتوافقة ولماذا.
قد لا يكون لديك أيضًا حق الوصول لتسجيل الدخول إلى الجهاز الظاهري مباشرة ولكن تحتاج إلى الإبلاغ عن سبب عدم امتثال الجهاز الظاهري.
مدخل Azure
ابدأ باتباع نفس الخطوات في قسم تفاصيل التوافق لعرض تفاصيل توافق النهج.
في طريقة عرض جزء تفاصيل الامتثال، حدد الارتباط آخر مورد تم تقييمه.
تعرض صفحة تعيين الضيف جميع تفاصيل الامتثال المتوفرة. يمثل كل صف في طريقة العرض تقييمًا تم تنفيذه داخل الجهاز. في العمود السبب، تظهر عبارة تصف سبب عدم امتثال "تعيين الضيف". على سبيل المثال، إذا كنت تقوم بمراجعة نهج كلمة المرور، فسيعرض عمود السبب النص بما في ذلك القيمة الحالية لكل إعداد.
عرض تفاصيل تعيين التكوين على نطاق واسع
يمكن استخدام ميزة تكوين الضيف خارج تعيينات Azure Policy. على سبيل المثال، يقوم Azure Automanage بإنشاء تعيينات تكوين الضيف، أو قد تقوم بتعيين تكوينات عند نشر الأجهزة.
لعرض جميع تعيينات تكوين الضيف عبر المستأجر الخاص بك، من مدخل Azure افتح صفحة تعيينات الضيف. لعرض معلومات التوافق التفصيلية، حدد كل تعيين باستخدام الارتباط الموجود في العمود Name.
محفوظات التغييرات (معاينة)
كجزء من معاينة عامة جديدة، يتوفر آخر 14 يومًا من محفوظات التغييرات لجميع موارد Azure التي تدعم حذف الوضع الكامل. توفر محفوظات التغييرات تفاصيل حول وقت اكتشاف تغيير واختلاف مرئي لكل تغيير. يتم تشغيل الكشف عن التغيير عند إضافة خصائص Azure Resource Manager أو إزالتها أو تغييرها.
قم بتشغيل خدمة Azure Policy في مدخل Microsoft Azure من خلال تحديد "All services"، ثم ابحث عن "Policy" وحددها.
في صفحة نظرة عامة أو الامتثال، حدد نهج في أي حالة امتثال.
من علامة التبويب Resource compliance في صفحة Policy compliance، حدد موردا.
حدد علامة التبويب محفوظات التغييرات (معاينة) في صفحة امتثال مورد. يتم عرض قائمة بالتغييرات المكتشفة، إن وجدت.
حدد أحد التغييرات المكتشفة. يتم تقديم اختلاف مرئي للمورد في صفحة محفوظات التغييرات.
يساعد الاختلاف المرئي في تحديد التغييرات التي تطرأ على مورد. قد لا تكون التغييرات المكتشفة مرتبطة بحالة التوافق الحالية للمورد.
يتم توفير بيانات محفوظات التغييرات بواسطة Azure Resource Graph. للاستعلام عن هذه المعلومات خارج مدخل Azure، راجع الحصول على تغييرات الموارد.
الخطوات التالية
- راجع الأمثلة في نماذج نهج Azure.
- راجع بنية تعريف نهج Azure.
- راجع فهم تأثيرات النهج.
- التعرف على كيفية إنشاء النُهج برمجيًا.
- تعرف على كيفية الحصول على بيانات التوافق.
- تعرف على كيفية إصلاح الموارد غير المتوافقة.
- راجع المقصود بمجموعة الإدارة من خلال تنظيم مواردك باستخدام مجموعات إدارة Azure.