بنية تعيين سياسة Azure
يتم استخدام تعيينات النهج بواسطة Azure Policy لتحديد الموارد التي يتم تعيينها للنهج أو المبادرات. يمكن لتعيين النهج تحديد قيم المعلمات لتلك المجموعة من الموارد في وقت التعيين، مما يجعل من الممكن إعادة استخدام تعريفات النهج التي تتناول نفس خصائص الموارد ذات الاحتياجات المختلفة للامتثال.
يمكنك استخدام JSON لإنشاء تعيين نهج. يحتوي تعيين النهج على عناصر من أجل:
- اسم العرض
- الوصف
- metadata
- وضع الإنفاذ
- النطاقات المستثناة
- تعريف السياسة
- رسائل عدم الامتثال
- المعلمات
- الهوية
على سبيل المثال، يعرض JSON التالي تعيين نهج في وضع DoNotEnforce مع معلمات ديناميكية:
{
"properties": {
"displayName": "Enforce resource naming rules",
"description": "Force resource names to begin with DeptA and end with -LC",
"metadata": {
"assignedBy": "Cloud Center of Excellence"
},
"enforcementMode": "DoNotEnforce",
"notScopes": [],
"policyDefinitionId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
"nonComplianceMessages": [
{
"message": "Resource names must start with 'DeptA' and end with '-LC'."
}
],
"parameters": {
"prefix": {
"value": "DeptA"
},
"suffix": {
"value": "-LC"
}
}
}
}
جميع عينات سياسة Azure موجودة في عينات سياسة Azure.
اسم العرض والوصف
يمكنك استخدام displayNameوالوصف لتحديد تعيين النهج وتوفير سياق لاستخدامه مع مجموعة معينة من الموارد. يبلغ الحد الأقصى لطول displayName128 حرفا والوصفبحد أقصى 512 حرفا.
بيانات التعريف
يخزن الموقع الاختياري metadata معلومات حول تعيين النهج. يمكن للعملاء تحديد أي خصائص وقيم مفيدة لمؤسستهم في metadata. ومع ذلك، هناك بعض الخصائص الشائعة المستخدمة بواسطة Azure Policy. كل metadata خاصية لها حد 1024 حرفا.
خصائص بيانات التعريف الشائعة
assignedBy(السلسلة): الاسم المألوف لمدير الأمان الذي أنشأ المهمة.createdBy(السلسلة): المعرف الفريد العمومي لمبدأ الأمان الذي أنشأ المهمة.createdOn(السلسلة): تنسيق DateTime ISO 8601 العالمي لوقت إنشاء المهمة.parameterScopes(الكائن): مجموعة من أزواج القيم الرئيسية حيث يتطابق المفتاح مع اسم معلمة تم تكوينها من النوع القوي وتحدد القيمة نطاق المورد المستخدم في Portal لتوفير قائمة الموارد المتاحة عن طريق مطابقة strongType. تقوم البوابة الإلكترونية بتعيين هذه القيمة إذا كان النطاق مختلفا عن نطاق المهمة. إذا تم تعيينه، فإن تحرير تعيين النهج في Portal يقوم تلقائيا بتعيين نطاق المعلمة إلى هذه القيمة. ومع ذلك، لا يتم تأمين النطاق إلى القيمة ويمكن تغييره إلى نطاق آخر.المثال
parameterScopesالتالي هو لمعلمة strongType تسمى backupPolicyId التي تقوم بتعيين نطاق لتحديد الموارد عند تحرير المهمة في البوابة الإلكترونية."metadata": { "parameterScopes": { "backupPolicyId": "/subscriptions/{SubscriptionID}/resourcegroups/{ResourceGroupName}" } }updatedBy(السلسلة): الاسم المألوف لمدير الأمان الذي قام بتحديث المهمة، إن وجد.updatedOn(السلسلة): تنسيق DateTime ISO 8601 العالمي لوقت تحديث المهمة، إن وجد.
وضع الإنفاذ
توفر الخاصية enforceMode للعملاء القدرة على اختبار نتيجة نهج على الموارد الموجودة دون بدء تأثير النهج أو تشغيل الإدخالات في سجل نشاط Azure. يشار إلى هذا السيناريو عادة باسم "ماذا لو" ويتوافق مع ممارسات النشر الآمن. يختلف enforceMode عن التأثير المعطل ، لأن هذا التأثير يمنع تقييم الموارد من الحدوث على الإطلاق.
تحتوي هذه الخاصية على القيم التالية:
| الوضع | قيمة JSON | النوع | المعالجة يدويا | إدخال سجل النشاط | الوصف |
|---|---|---|---|---|---|
| تم التمكين | افتراضي | سلسلة | نعم | نعم | يتم فرض تأثير النهج أثناء إنشاء الموارد أو تحديثها. |
| مُعطل | DoNotEnforce | سلسلة | نعم | لا | لا يتم فرض تأثير النهج أثناء إنشاء الموارد أو تحديثها. |
إذا لم يتم تحديد وضع الإنفاذ في تعريف نهج أو مبادرة، استخدام القيمة افتراضيا . يمكن بدء مهام المعالجة لنشر نهج IfNotExists، حتى عند تعيين وضع الإنفاذ إلى DoNotEnforce.
النطاقات المستثناة
يتضمن نطاق المهمة جميع حاويات الموارد الفرعية والموارد التابعة. إذا كان يجب ألا يتم تطبيق التعريف على حاوية موارد فرعية أو مورد فرعي، فيمكن استبعاد كل منها من التقييم عن طريق تعيين notScopes. هذه الخاصية عبارة عن صفيف لتمكين استبعاد حاوية موارد أو موارد واحدة أو أكثر من التقييم. notScopes يمكن إضافتها أو تحديثها بعد إنشاء المهمة الأولية.
ملاحظة
يختلف المورد المستبعد عن المورد المعفي . لمزيد من المعلومات، راجع فهم النطاق في نهج Azure.
معرف تعريف السياسة
يجب أن يكون هذا الحقل اسم المسار الكامل لتعريف النهج أو تعريف المبادرة.
policyDefinitionId هي سلسلة وليست صفيف. سيتم استرداد أحدث محتوى لتعريف السياسة أو المبادرة المعينة في كل مرة يتم فيها تقييم تعيين السياسة. يوصى باستخدام مبادرة بدلا من ذلك إذا تم تعيين سياسات متعددة معا في كثير من الأحيان.
رسائل عدم الامتثال
لتعيين رسالة مخصصة تصف سبب عدم امتثال مورد لتعريف النهج أو المبادرة، يتم تعيينها nonComplianceMessages في تعريف المهمة. هذه العقدة عبارة عن مجموعة من الإدخالات message . هذه الرسالة المخصصة بالإضافة إلى رسالة الخطأ الافتراضية لعدم الامتثال وهي اختيارية.
هام
يتم دعم الرسائل المخصصة لعدم الامتثال فقط على التعاريف أو المبادرات التي تحتوي على تعريفات أوضاع Resource Manager.
"nonComplianceMessages": [
{
"message": "Default message"
}
]
إذا كانت المهمة لمبادرة ما، فيمكن تكوين رسائل مختلفة لكل تعريف للسياسة في المبادرة. تستخدم الرسائل القيمة التي policyDefinitionReferenceId تم تكوينها في تعريف المبادرة. لمعرفة التفاصيل، يرجى الاطلاع على خصائص تعريفات السياسة.
"nonComplianceMessages": [
{
"message": "Default message"
},
{
"message": "Message for just this policy definition by reference ID",
"policyDefinitionReferenceId": "10420126870854049575"
}
]
المعلمات
يوفر هذا الجزء من تعيين النهج قيم المعلمات المحددة في تعريف السياسة أو تعريف المبادرة. يتيح هذا التصميم إعادة استخدام تعريف السياسة أو المبادرة بموارد مختلفة، ولكن مع التحقق من وجود قيم أو نتائج تجارية مختلفة.
"parameters": {
"prefix": {
"value": "DeptA"
},
"suffix": {
"value": "-LC"
}
}
في هذا المثال، تكون المعلمات المحددة مسبقا في تعريف السياسة هي prefix و suffix. يتم تعيين تعيين prefix النهج الخاص هذا إلى DeptA و suffix-LC. ويمكن إعادة استخدام نفس تعريف السياسة العامة مع مجموعة مختلفة من البارامترات لإدارة مختلفة، مما يقلل من الازدواجية والتعقيد في تعاريف السياسات مع توفير المرونة.
الهوية
بالنسبة لتعيينات النهج التي تم تعيينها فعليا لنشر IfNotExisit أو تعديلها، يلزم أن يكون لديك خاصية هوية لإجراء معالجة على الموارد غير المتوافقة. عند استخدام الهوية، يجب على المستخدم أيضا تحديد موقع للمهمة.
# System assigned identity
"identity": {
"type": "SystemAssigned"
}
# User assigned identity
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/SubscriptionID/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {}
}
},
الخطوات التالية
- تعرف على بنية تعريف السياسة.
- فهم كيفية إنشاء السياسات برمجيا.
- تعرف على كيفية الحصول على بيانات الامتثال.
- تعرّف على كيفية معالجة الموارد غير الممتثلة.
- راجع ماهية مجموعة الإدارة باستخدام تنظيم مواردك باستخدام مجموعات إدارة Azure.