بنية تعريف مبادرة Azure Policy
تمكنك المبادرات من تجميع العديد من تعريفات النهج ذات الصلة لتبسيط المهام والإدارة لأنك تعمل مع مجموعة كعنصر واحد. على سبيل المثال، يمكنك تجميع تعريفات سياسة وضع العلامات ذات الصلة في مبادرة واحدة. بدلا من تعيين كل سياسة على حدة ، يمكنك تطبيق المبادرة.
يمكنك استخدام JSON لإنشاء تعريف مبادرة سياسة. ويتضمن تعريف مبادرة السياسة العامة عناصر من أجل:
- اسم العرض
- الوصف
- metadata
- المعلمات
- تعاريف السياسات
- مجموعات السياسات (هذه الخاصية جزء من ميزة الامتثال التنظيمي (المعاينة)
يوضح المثال التالي كيفية إنشاء مبادرة للتعامل مع علامتين: costCenter و productName. يستخدم نهجين مضمنين لتطبيق قيمة العلامة الافتراضية.
{
"properties": {
"displayName": "Billing Tags Policy",
"policyType": "Custom",
"description": "Specify cost Center tag and product name tag",
"metadata": {
"version": "1.0.0",
"category": "Tags"
},
"parameters": {
"costCenterValue": {
"type": "String",
"metadata": {
"description": "required value for Cost Center tag"
},
"defaultValue": "DefaultCostCenter"
},
"productNameValue": {
"type": "String",
"metadata": {
"description": "required value for product Name tag"
},
"defaultValue": "DefaultProduct"
}
},
"policyDefinitions": [{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"parameters": {
"tagName": {
"value": "productName"
},
"tagValue": {
"value": "[parameters('productNameValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "productName"
},
"tagValue": {
"value": "[parameters('productNameValue')]"
}
}
}
]
}
}
توجد عناصر وأنماط Azure Policy المضمنة في عينات Azure Policy.
بيانات التعريف
يخزن مكان الإقامة الاختياري metadata معلومات حول تعريف مبادرة السياسة.
يمكن للعملاء تحديد أي خصائص وقيم مفيدة لمؤسستهم في metadata. ومع ذلك، هناك بعض الخصائص الشائعة المستخدمة بواسطة Azure Policy وفي العناصر المضمنة.
خصائص بيانات التعريف الشائعة
version(السلسلة): تتعقب تفاصيل حول إصدار محتويات تعريف مبادرة السياسة.category(السلسلة): يحدد تحت أي فئة في مدخل Azure يتم عرض تعريف النهج.ملاحظة
بالنسبة لمبادرة الامتثال التنظيمي ،
categoryيجب أن يكون الامتثال التنظيمي.preview(منطقي): علامة صحيحة أو خاطئة إذا كان تعريف مبادرة السياسة العامة هو معاينة.deprecated(منطقي): علامة صحيحة أو خاطئة إذا تم وضع علامة على تعريف مبادرة السياسة على أنه مهمل.
ملاحظة
تستخدم versionخدمة نهج Azure ، previewوالخصائص لنقل مستوى التغيير إلى تعريف نهج مضمن أو مبادرة وحالة deprecated . تنسيق version هو: {Major}.{Minor}.{Patch}. يتم إلحاق حالات محددة، مثل المهملة أو المعاينةversion، بالخاصية أو في خاصية أخرى كحالة منطقية. لمزيد من المعلومات حول طريقة إصدار Azure Policy المضمنة، راجع تعيين الإصدار المضمن.
المعلمات
تساعد المعلمات على تبسيط إدارة النهج عن طريق تقليل عدد تعريفات السياسة. فكر في معلمات مثل الحقول الموجودة في نموذج - name، ، ، ، cityaddressstate. تبقى هذه المعلمات دائما كما هي ، ولكن تتغير قيمها بناء على الفرد الذي يملأ النموذج.
تعمل المعلمات بنفس الطريقة عند بناء مبادرات السياسة. من خلال تضمين معلمات في تعريف مبادرة سياسة، يمكنك إعادة استخدام هذه المعلمة في السياسات المضمنة.
ملاحظة
بمجرد تعيين مبادرة، لا يمكن تغيير معلمات المستوى الاستهلالي. ونتيجة لذلك ، فإن التوصية هي تعيين defaultValue عند تعريف المعلمة.
خصائص المعلمات
تحتوي المعلمة على الخصائص التالية المستخدمة في تعريف مبادرة النهج:
nameاسم المعلمة الخاصة بك.: تستخدم من قبلparametersوظيفة النشر ضمن قاعدة النهج. لمزيد من المعلومات، راجع استخدام قيمة معلمة.typeيحدد ما إذا كانت المعلمة عبارة عن سلسلة أو صفيف أو كائن أو منطقي أو عدد صحيح أو عائمأوdatetime.:metadataيحدد الخصائص الفرعية المستخدمة بشكل أساسي بواسطة مدخل Azure لعرض معلومات سهلة الاستخدام:descriptionشرح الغرض من استخدام المعلمة.: يمكن استخدامها لتقديم أمثلة على القيم المقبولة.displayNameالاسم المألوف الموضح في البوابة الإلكترونية للمعلمة.:strongType(اختياري) يستخدم عند تعيين تعريف السياسة من خلال البوابة الإلكترونية.: يوفر قائمة مدركة للسياق. لمزيد من المعلومات، راجع strongType.
defaultValue: (اختياري) لتعيين قيمة المعلمة في مهمة إذا لم يتم إعطاء أي قيمة.:allowedValues: (اختياري) يوفر صفيفا من القيم التي تقبلها المعلمة أثناء التعيين.:
على سبيل المثال، يمكنك تحديد تعريف مبادرة سياسة للحد من مواقع الموارد في مختلف تعريفات السياسة المضمنة. يمكن السماح بمعلمة لتعريف مبادرة السياسة هذهالمواقع. ثم تكون المعلمة متاحة لكل تعريف متضمن للسياسة ومحددة أثناء تعيين مبادرة السياسة.
"parameters": {
"init_allowedLocations": {
"type": "array",
"metadata": {
"description": "The list of allowed locations for resources.",
"displayName": "Allowed locations",
"strongType": "location"
},
"defaultValue": [ "westus2" ],
"allowedValues": [
"eastus2",
"westus2",
"westus"
]
}
}
تمرير قيمة معلمة إلى تعريف نهج
أنت تعلن عن معلمات المبادرة التي تمر إليها والتي تضمنت تعريفات السياسة في صفيف تعريفات السياسة في تعريف المبادرة. على الرغم من أن اسم المعلمة يمكن أن يكون هو نفسه، إلا أن استخدام أسماء مختلفة في المبادرات مقارنة بتعريفات السياسة يبسط إمكانية قراءة التعليمات البرمجية.
على سبيل المثال، يمكن تمرير معلمة مبادرة init_allowedLocations المحددة سابقا إلى العديد من تعريفات السياسة العامة المضمنة ومعلماتها، sql_locationsvm_locations، مثل هذا:
"policyDefinitions": [
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
"policyDefinitionReferenceId": "allowedLocationsSQL",
"parameters": {
"sql_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
"policyDefinitionReferenceId": "allowedLocationsVMs",
"parameters": {
"vm_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
}
]
يشير هذا النموذج إلى معلمة init_allowedLocations التي تم إظهارها في خصائص المعلمة.
سترونج تايب
ضمن الخاصية metadata ، يمكنك استخدام strongType لتوفير قائمة خيارات متعددة التحديد داخل مدخل Azure. يمكن أن يكون strongTypeنوع مورد مدعوم أو قيمة مسموح بها. لتحديد ما إذا كان نوع المورد صالحا ل strongType، استخدم Get-AzResourceProvider.
يتم دعم بعض أنواع الموارد التي لم يتم إرجاعها بواسطة Get-AzResourceProvider . وهذه الأنواع من الموارد هي:
Microsoft.RecoveryServices/vaults/backupPolicies
القيم غير المسموح بها لنوع الموارد ل strongType هي:
locationresourceTypesstorageSkusvmSKUsexistingResourceGroups
تعريفات السياسة
والجزء policyDefinitions من تعريف المبادرة هو مجموعة من تعاريف السياسات القائمة المدرجة في المبادرة. كما هو مذكور في تمرير قيمة معلمة إلى تعريف السياسة، هذه الخاصية هي المكان الذي يتم فيه تمرير معلمات المبادرةإلى تعريف السياسة.
خصائص تعريف السياسة
يحتوي كل عنصر صفيف يمثل تعريف نهج على الخصائص التالية:
policyDefinitionId(السلسلة): معرف تعريف النهج المخصص أو المضمن لتضمينه.policyDefinitionReferenceId(السلسلة): اسم مختصر لتعريف السياسة المضمن.parameters: (اختياري) أزواج الأسماء/القيم لتمرير معلمة مبادرة إلى تعريف النهج المضمن كخاصية في تعريف النهج هذا.: لمزيد من المعلومات، راجع المعلمات.groupNames(صفيف من السلاسل): (اختياري) المجموعة التي يكون تعريف السياسة عضوا فيها. لمزيد من المعلومات، راجع مجموعات السياسات.
في ما يلي مثال على ذلك يحتوي على تعريفين مضمنين للسياسة policyDefinitions يتم تمرير كل منهما بنفس معلمة المبادرة:
"policyDefinitions": [
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
"policyDefinitionReferenceId": "allowedLocationsSQL",
"parameters": {
"sql_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
"policyDefinitionReferenceId": "allowedLocationsVMs",
"parameters": {
"vm_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
}
]
مجموعات تعريف السياسات
ويمكن تجميع تعاريف السياسات في تعريف المبادرة وتصنيفها. تستخدم ميزة التوافق التنظيمي (المعاينة) في Azure Policy هذه الخاصية لتجميع التعريفات في عناصر تحكمومجالات توافق. يتم تعريف هذه المعلومات في خاصية الصفيفpolicyDefinitionGroups. يمكن العثور على مزيد من تفاصيل التجميع في كائن policyMetadata الذي تم إنشاؤه بواسطة Microsoft. لمزيد من المعلومات، راجع كائنات بيانات التعريف.
معلمات مجموعات تعريف السياسة
يجب أن يحتوي كل عنصر صفيف في policyDefinitionGroups كل من الخصائص التالية:
name(سلسلة) [مطلوب]: الاسم المختصر للمجموعة. في الامتثال التنظيمي ، السيطرة. يتم استخدام قيمة هذه الخاصية بواسطةgroupNamesفيpolicyDefinitions.category(السلسلة): التسلسل الهرمي الذي تنتمي إليه المجموعة. في الامتثال التنظيمي، مجال الامتثال للرقابة.displayName(السلسلة): الاسم المألوف للمجموعة أو عنصر التحكم. تستخدم من قبل البوابة.description(السلسلة): وصف لما تغطيه المجموعة أو عنصر التحكم.additionalMetadataId(السلسلة): موقع كائن policyMetadata الذي يحتوي على تفاصيل إضافية حول مجال التحكموالتوافق.ملاحظة
يمكن للعملاء الإشارة إلى كائن نهج موجودبيانات التعريف . ومع ذلك، هذه الكائنات للقراءة فقط ويتم إنشاؤها فقط بواسطة Microsoft.
مثال على policyDefinitionGroups الخاصية من تعريف مبادرة NIST المضمنة يبدو كما يلي:
"policyDefinitionGroups": [
{
"name": "NIST_SP_800-53_R4_AC-1",
"additionalMetadataId": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1"
}
]
كائنات بيانات التعريف
تحتوي عناصر التوافق التنظيمي المضمنة التي أنشأتها Microsoft على معلومات إضافية حول كل عنصر تحكم. هذه المعلومات هي:
- يتم عرضه في مدخل Azure حول نظرة عامة على عنصر تحكم في مبادرة الامتثال التنظيمي.
- متوفر عبر واجهة برمجة تطبيقات REST. راجع موفر
Microsoft.PolicyInsightsالموارد ومجموعة عمليات policyMetadata. - متوفر عبر Azure CLI. راجع الأمر az policy metadata .
هام
كائنات بيانات التعريف للامتثال التنظيمي للقراءة فقط ولا يمكن إنشاؤها بواسطة العملاء.
تحتوي بيانات التعريف الخاصة بتجميع النهج على المعلومات التالية في العقدة properties :
metadataIdمعرف عنصر التحكم الذي يتعلق به التجميع.:category(مطلوب): مجال الامتثال الذي ينتمي إليه عنصر التحكم .title(مطلوب): الاسم المألوف لمعرف التحكم.owner(مطلوب): يحدد من يتحمل مسؤولية التحكم في Azure: العميل، Microsoft، المشترك.descriptionمعلومات إضافية حول عنصر التحكم.:requirementsتفاصيل حول مسؤولية تنفيذ الرقابة.:additionalContentUrlارتباط لمزيد من المعلومات حول عنصر التحكم.: عادة ما تكون هذه الخاصية رابطا إلى قسم الوثائق الذي يغطي عنصر التحكم هذا في معيار الامتثال.
فيما يلي مثال على كائن policyMetadata . ينتمي هذا المثال بيانات التعريف إلى عنصر تحكم NIST SP 800-53 R4 AC-1 .
{
"properties": {
"metadataId": "NIST SP 800-53 R4 AC-1",
"category": "Access Control",
"title": "Access Control Policy and Procedures",
"owner": "Shared",
"description": "**The organization:** \na. Develops, documents, and disseminates to [Assignment: organization-defined personnel or roles]: \n1. An access control policy that addresses purpose, scope, roles, responsibilities, management commitment, coordination among organizational entities, and compliance; and \n2. Procedures to facilitate the implementation of the access control policy and associated access controls; and \n
\nb. Reviews and updates the current: \n1. Access control policy [Assignment: organization-defined frequency]; and \n2. Access control procedures [Assignment: organization-defined frequency].",
"requirements": "**a.** The customer is responsible for developing, documenting, and disseminating access control policies and procedures. The customer access control policies and procedures address access to all customer-deployed resources and customer system access (e.g., access to customer-deployed virtual machines, access to customer-built applications). \n**b.** The customer is responsible for reviewing and updating access control policies and procedures in accordance with FedRAMP requirements.",
"additionalContentUrl": "https://nvd.nist.gov/800-53/Rev4/control/AC-1"
},
"id": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1",
"name": "NIST_SP_800-53_R4_AC-1",
"type": "Microsoft.PolicyInsights/policyMetadata"
}
الخطوات التالية
- انظر بنية التعريف
- راجع الأمثلة في عينات نهج Azure.
- اطلع على فهم تأثيرات النهج.
- فهم كيفية إنشاء السياسات برمجيا.
- تعرف على كيفية الحصول على بيانات الامتثال.
- تعرّف على كيفية معالجة الموارد غير الممتثلة.
- راجع ماهية مجموعة الإدارة باستخدام تنظيم مواردك باستخدام مجموعات إدارة Azure.