تحديد أسباب عدم التوافق

عندما يتم تحديد مورد Azure على أنه غير ممتثل لقاعدة نهج، فمن المفيد فهم أي جزء من القاعدة لا يمتثل له المورد. من المفيد أيضا فهم التغيير الذي غير موردا متوافقا سابقا لجعله غير متوافق. هناك طريقتان للعثور على هذه المعلومات:

تفاصيل الامتثال

عندما يكون المورد غير ممتثل، تتوفر تفاصيل الامتثال لهذا المورد من صفحة الامتثال للنهج. يتضمن جزء تفاصيل الامتثال المعلومات التالية:

  • تفاصيل المورد مثل الاسم والنوع والموقع ومعرف المورد.
  • حالة التوافق والطوابع الزمنية للتقييم الأخير لتعيين النهج الحالي.
  • قائمة أسباب عدم امتثال المورد.

هام

نظرًا لأن تفاصيل الامتثال لمورد غير ممتثل تعرض القيمة الحالية للخصائص على هذا المورد، يجب أن يكون لدى المستخدم عملية قراءة لـ نوع المورد. على سبيل المثال، إذا كان المورد غير المتوافق هو Microsoft.Compute/virtualMachines ثم يجب أن يكون Microsoft.Compute/virtualMachines/read لدى المستخدم العملية. إذا لم يكن لدى المستخدم العملية المطلوبة، يتم عرض خطأ في الوصول.

لعرض تفاصيل الامتثال اتبع هذه الخطوات:

  1. قم بتشغيل خدمة Azure Policy في مدخل Microsoft Azure من خلال تحديد "All services"، ثم ابحث عن "Policy" وحددها.

  2. في صفحة نظرة عامة أو الامتثال، حدد نهج في حالة الامتثال يكون غير ممتثل.

  3. من علامة التبويب Resource compliance في صفحة Policy compliance، حدد مع الاستمرار (أو انقر بزر الماوس الأيمن) أو حدد علامة الحذف لمورد في حالة توافق غير متوافقة. ثم حدد عرض تفاصيل الامتثال.

    لقطة شاشة لرابط عرض تفاصيل التوافق في علامة تبويب توافق الموارد.

  4. يعرض جزء تفاصيل الامتثال معلومات من التقييم الأخير للمورد إلى تعيين النهج الحالي. في هذا المثال، تم العثور على الحقل Microsoft.Sql/servers/version ليكون 12.0 بينما كان تعريف النهج المتوقع 14.0. إذا كان المورد غير ممتثل لأسباب متعددة، يتم سرد كل منها في هذا الجزء.

    لقطة شاشة لجزء تفاصيل التوافق وأسباب عدم التوافق أن القيمة الحالية هي 12 والقيمة الهدف هي 14.

    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": {
            ...
          }
        }
      }
    }
    

    لقطة شاشة لجزء تفاصيل الامتثال لـ ifNotExists بما في ذلك عدد الموارد التي تم تقييمها.

إشعار

لحماية البيانات، عندما تكون قيمة الخاصية بيانات سرية، تعرض القيمة الحالية النقط النجمية.

توضح هذه التفاصيل سبب عدم امتثال المورد حاليًا، ولكن لا تظهر متى تم إجراء التغيير على المورد الذي تسبب في أن يصبح غير ممتثل. للحصول على هذه المعلومات، راجع تغيير المحفوظات (معاينة).

أسباب الامتثال

لكل من أوضاع 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

ابدأ باتباع نفس الخطوات في قسم تفاصيل التوافق لعرض تفاصيل توافق النهج.

في طريقة عرض جزء تفاصيل الامتثال، حدد الارتباط آخر مورد تم تقييمه.

لقطة شاشة لعرض تفاصيل امتثال تعريف AuditIfNotExists.

تعرض صفحة تعيين الضيف جميع تفاصيل الامتثال المتوفرة. يمثل كل صف في طريقة العرض تقييمًا تم تنفيذه داخل الجهاز. في العمود السبب، تظهر عبارة تصف سبب عدم امتثال "تعيين الضيف". على سبيل المثال، إذا كنت تقوم بمراجعة نهج كلمة المرور، فسيعرض عمود السبب النص بما في ذلك القيمة الحالية لكل إعداد.

لقطة شاشة لتفاصيل امتثال

عرض تفاصيل تعيين التكوين على نطاق واسع

يمكن استخدام ميزة تكوين الضيف خارج تعيينات Azure Policy. على سبيل المثال، يقوم Azure Automanage بإنشاء تعيينات تكوين الضيف، أو قد تقوم بتعيين تكوينات عند نشر الأجهزة.

لعرض جميع تعيينات تكوين الضيف عبر المستأجر الخاص بك، من مدخل Azure افتح صفحة تعيينات الضيف. لعرض معلومات التوافق التفصيلية، حدد كل تعيين باستخدام الارتباط الموجود في العمود Name.

لقطة شاشة لصفحة

محفوظات التغييرات (معاينة)

كجزء من معاينة عامة جديدة، يتوفر آخر 14 يومًا من محفوظات التغييرات لجميع موارد Azure التي تدعم حذف الوضع الكامل. توفر محفوظات التغييرات تفاصيل حول وقت اكتشاف تغيير واختلاف مرئي لكل تغيير. يتم تشغيل الكشف عن التغيير عند إضافة خصائص Azure Resource Manager أو إزالتها أو تغييرها.

  1. قم بتشغيل خدمة Azure Policy في مدخل Microsoft Azure من خلال تحديد "All services"، ثم ابحث عن "Policy" وحددها.

  2. في صفحة نظرة عامة أو الامتثال، حدد نهج في أي حالة امتثال.

  3. من علامة التبويب Resource compliance في صفحة Policy compliance، حدد موردا.

  4. حدد علامة التبويب محفوظات التغييرات (معاينة) في صفحة امتثال مورد. يتم عرض قائمة بالتغييرات المكتشفة، إن وجدت.

    لقطة شاشة لعلامة التبويب

  5. حدد أحد التغييرات المكتشفة. يتم تقديم اختلاف مرئي للمورد في صفحة محفوظات التغييرات.

    لقطة شاشة للتنوع المرئي لمحفوظات التغييرات للحالة السابقة واللاحقة للخصائص في صفحة محفوظات التغييرات.

    يساعد الاختلاف المرئي في تحديد التغييرات التي تطرأ على مورد. قد لا تكون التغييرات المكتشفة مرتبطة بحالة التوافق الحالية للمورد.

يتم توفير بيانات محفوظات التغييرات بواسطة Azure Resource Graph. للاستعلام عن هذه المعلومات خارج مدخل Azure، راجع الحصول على تغييرات الموارد.

الخطوات التالية