البرنامج التعليمي: إدارة التحكم بالعلامات باستخدام نهج Azure
تعدالعلامات جزءًا أساسيًا من تنظيم مواردك على Azure إلى التصنيف. عند اتباع أفضل الممارسات لإدارة العلامات، يمكن أن تكون العلامات هي الأساس لتطبيق سياسات عملك باستخدام Azure Policy أو تتبع التكاليف باستخدام أداة إدارة التكاليف. بصرف النظر عن كيفية استخدامك للعلامات أو سبب استخدامها، من المهم أن تتمكن من إضافة وتغيير وإزالة هذه العلامات سريعًا على موارد Azure. لمعرفة ما إذا كان مورد Azure يدعم وضع العلامات، راجع دعم العلامات.
صُمم تأثير تعديل نهج Azure للمساعدة في إدارة العلامات بصرف النظر عن مستوى تحكمك في الموارد. التعديل يساعد عندما:
- تكون جديد على السحابة، وليس لديك صلاحية إدارة العلامات
- لديك الآلاف من الموارد مسبقًا دون صلاحية إدارة العلامات
- لديك مسبقًا تصنيف موجود بحاجة إلى التغيير
في هذا البرنامج التعليمي، ستقوم بتنفيذِ المهام التالية:
- تحديد متطلبات عملك
- تعيين كل مطلب إلى معرف النهج
- تجميع سياسات العلامة في مبادرة
المتطلبات الأساسية
لإكمال هذا البرنامج التعليمي، تحتاج إلى اشتراك Azure. في حال لم تشترك في Azure، تستطيع إنشاءحساب مجّاني قبل البدء.
تعريف المتطلبات
مثل أي تطبيق صحيح لضوابط التحكم، يجب أن تأتي المتطلبات وفقًا لاحتياجات عملك، وأن تُفهم بشكل صحيح قبل إنشاء أي ضوابط تقنية. متطلبات عملنا لسيناريو البرنامج التعليمي هذا، تشتمل على البنود التالية:
- علامتان مطلوبتان على جميع الموارد: CostCenter و Env
- يجب أن يظهرCostCenter في جميع الحاويات والموارد الفردية
- الموارد تكتسب من الحاوية التي هي فيها؛ ولكن قد يتم تجاوزها فرديًا
- يجب أن يظهرCostCenter في جميع الحاويات والموارد الفردية
- الموارد تحدد البيئة حسب نظام تسمية الحاوية، وقد لا يتم تجاوزها
- كافة الموارد في الحاوية تمثل جزء من البيئة نفسها
تكوين علامة CostCenter
فيما يتعلق ببيئة Azure التي تديرها Azure Policy، تتطلب متطلبات علامة CostCenter النتائج التالية:
- رفض مجموعات العلامات التي تفتقد لعلامةCostCenter
- عدّل الموارد لإضافة علامةCostCenterمن مجموعة الموارد الرئيسية في حال فقدانها
رفض فقدان مجموعات الموارد لعلامة CostCenter
نظرًا لأنه لا يمكن تحديد مركز التكاليف لمجموعة الموارد من خلال اسم مجموعة الموارد؛ لذا يجب أن يكون لها العلامة المحددة في الطلب لإنشاء مجموعة الموارد. تمنع قاعدة السياسة التالية ذات التأثير الرفض إنشاء أو تحديث مجموعات الموارد التي لا تحتوي على علامة CostCenter:
"if": {
"allOf": [{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
{
"field": "tags['CostCenter']",
"exists": false
}
]
},
"then": {
"effect": "deny"
}
ملاحظة
نظرًا لأن قاعدة النهج هذه تستهدف مجموعة موارد، يجب أن يكون الوضع في تعريف النهج هو "الكل" بدلاً من "مفهرس".
تعديل الموارد لكسب علامة CostCenterعند فقدانها
الحاجة الثانية لـ CostCenter هي أن تكتسب أي موارد علامة من مجموعة الموارد الأصلية عند فقدانها. إذا عُرفت العلامة مسبقًا على المورد، حتى عند اختلافها عن مجموعة الموارد الأصل، يجب تركها وحدها. تستخدم قاعدة النهج التالي تعديل:
"policyRule": {
"if": {
"field": "tags['CostCenter']",
"exists": "false"
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [{
"operation": "add",
"field": "tags['CostCenter']",
"value": "[resourcegroup().tags['CostCenter']]"
}]
}
}
}
تستخدم قاعدة النهج هذه عملية الإضافة بدلاً من addOrReplace؛ لأننا لا نريد تغيير قيمة العلامة إذا كانت موجودة عند معالجة الموارد الحالية. كما أنها تستخدم[resourcegroup()]
دالة النموذج للحصول على قيمة العلامة من مجموعة الموارد الأصلية.
ملاحظة
نظرًا لأن قاعدة النهج هذه تستهدف مجموعة موارد، يجب أن يكون الوضع في تعريف النهج هو "الكل" بدلاً من "مفهرس". يضمن هذا التكوين أيضًا تخطي هذا النهج لمجموعات الموارد.
تكوين علامة Env
فيما يتعلق ببيئة Azure التي تديرها Azure Policy، تتطلب متطلبات علامة CostCenter النتائج التالية:
- قم بتعديل علامة Env في مجموعة الموارد بناءً على مخطط التسمية لمجموعة الموارد
- قم بتعديل علامة Env في جميع الموارد في مجموعة الموارد إلى نفس مجموعة الموارد الأصلية
تعديل مجموعة الموارد Env العلامة استنادًا إلى الاسم
نهج التعديل مطلوب لكل بيئة موجودة في بيئات Azure الخاصة بك. يتشابه نهج التعديل كل منها بتعريف النهج:
"policyRule": {
"if": {
"allOf": [{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
{
"field": "name",
"like": "prd-*"
},
{
"field": "tags['Env']",
"notEquals": "Production"
}
]
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [{
"operation": "addOrReplace",
"field": "tags['Env']",
"value": "Production"
}]
}
}
}
ملاحظة
نظرًا لأن قاعدة النهج هذه تستهدف مجموعة موارد، يجب أن يكون الوضع في تعريف النهج هو "الكل" بدلاً من "مفهرس".
يتطابق هذا النهج فقط مع مجموعات الموارد بمخطط تسمية العينة المستخدمة لموارد الإنتاجprd-
. يمكن تحقيق مخطط تسمية أعقد من خلال تحقيق العديد من شروط المطابقة بدلاً من الحالة الفردية كما في هذا المثال.
تعديل الموارد لكسب علامة Env
تتطلب متطلبات العمل أن يكون لجميع الموارد علامة Env التي تستخدمها مجموعة الموارد الرئيسية. لا يمكن تجاوز هذه العلامة؛ لذلك سنستخدم عملية addOrReplace مع تأثيرات التعديل. يشابه نموذج تعديل النهج القاعدة التالية:
"policyRule": {
"if": {
"anyOf": [{
"field": "tags['Env']",
"notEquals": "[resourcegroup().tags['Env']]"
},
{
"field": "tags['Env']",
"exists": false
}
]
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [{
"operation": "addOrReplace",
"field": "tags['Env']",
"value": "[resourcegroup().tags['Env']]"
}]
}
}
}
ملاحظة
نظرًا لأن قاعدة النهج هذه تستهدف مجموعة موارد، يجب أن يكون الوضع في تعريف النهج هو "الكل" بدلاً من "مفهرس". يضمن هذا التكوين أيضًا تخطي هذا النهج لمجموعات الموارد.
تبحث قاعدة النهج هذه عن أي مورد ليس له قيمة مجموعات الموارد الأصلية لعلامة Env أو يفتقد إلى علامةEnv. تم تعيين علامةEnvالخاصة بالموارد المتطابقة على قيمة مجموعات الموارد الأصلية، حتى إذا كانت العلامة موجودة مسبقًا على المورد وبقيمة مختلفة.
تعيين المبادرة وإصلاح الموارد
بمجرد إنشاء نهج العلامة أعلاه، تنضم إلى مبادرة واحدة لإدارة العلامات وتعينها لمجموعة إدارة أو اشتراك. تقوم المبادرة والسياسات المضمنة بعد ذلك بتقييم امتثال الموارد الحالية، وتغيير الطلبات الخاصة بالموارد الجديدة أو المحدثة التي تتطابق مع خاصية if في قاعدة النهج. ومع ذلك، لا يقوم النهج تلقائيًا بتحديث الموارد غير المتوافقة المتوفرة مع تغييرات العلامة المعرفة.
وكما سياسات publishIfNotExists، تستعين سياسة التعديل بمهام الإصلاح لتغيير الموارد الحالية غير المتوافقة. اتبع التوجيهات الخاصة بموارد آلية الإصلاح لتحديد مواردكالمعدلةغير المتوافقة، وتصحيح العلامات بالتصنيف الذي حددته.
تنظيف الموارد
إذا انتهيت من العمل بالموارد من هذا البرنامج التعليمي، فاتبع الخطوات التالية لحذف أي من التعيينات أو التعريفات المنشأة أعلاه:
حدد "Definitions" (أو "Assignments" إذا كنت تحاول حذف تعيين) ضمن "Authoring" في الجانب الأيسر من صفحة Azure Policy.
ابحث عن المبادرة الجديدة أو معرف النهج (أو التعيين) الذي تريد إزالته.
انقر بزر الماوس الأيمن فوق الصف أو حدد علامة القطع في نهاية التعريف (أو التعيين)، ثم حدد "Delete definition" (أو "Delete assignment").
مراجعة
في هذا البرنامج التعليمي، ستتعلم المهام التالية:
- تحديد متطلبات عملك
- تعيين كل مطلب إلى معرف النهج
- تجميع سياسات العلامة في مبادرة
الخطوات التالية
لمعرفة المزيد حول بنى تعريفات النهج، اطلع على هذه المقالة: