بنية تعريف مبادرة سياسة Azure

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

يمكنك استخدام JSON لإنشاء تعريف مبادرة نهج. يحتوي تعريف مبادرة النهج على عناصر من أجل:

يوضح المثال التالي كيفية إنشاء مبادرة لمعالجة العلامتين: 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 في نماذج نهج Azure.

بيانات التعريف

تخزن الخاصية الاختيارية metadata معلومات حول تعريف مبادرة النهج. يمكن للعملاء تحديد أي خصائص وقيم مفيدة لمؤسستهم في metadata. مع ذلك، هناك بعض الخصائص الشائعة المستخدمة من نهج Azure والعناصر المضمنة.

خصائص بيانات التعريف الشائعة

  • version (سلسلة): تتعقب تفاصيل حول إصدار محتويات تعريف مبادرة النهج.

  • category (سلسلة): تحديد الفئة التي يتم عرض تعريف النهج ضمنها في مدخل Microsoft Azure.

    إشعار

    بالنسبة إلى مبادرة التوافق التنظيمي، category يجب أن يكون التوافق التنظيمي.

  • preview (منطقي): علامة صواب أو خطأ إذا كان تعريف النهج هو إصدار أولي.

  • deprecated (منطقي): علامة صواب أو خطأ إذا تم وضع علامة على تعريف النهج على أنه مهمل.

إشعار

تستخدم خدمة نهج Azure الخصائص version وpreview وdeprecated لنقل مستوى التغيير إلى تعريف النهج المضمن أو المبادرة والحالة. التنسيق version هو: {Major}.{Minor}.{Patch}. يتم إلحاق حالات معينة، مثل مهملة أو إصدار أولي، بالخاصية version أو في خاصية أخرى كقيمة منطقية. لمزيد من المعلومات حول طريقة إصدارات نهج Azure المضمنة، راجع تعيين الإصدار المضمن.

المعلمات

تساعد المعلمات في تبسيط إدارة النهج عن طريق تقليل عدد تعريفات النهج. فكر في معلمات، مثل الحقول في نموذج - name وaddress وcity وstate. تظل هذه المعلمات دائماً كما هي، ولكن تتغير قيمها بناء على ملء الفرد للنموذج. تعمل المعلمات بنفس الطريقة عند إنشاء مبادرات النهج. من خلال تضمين المعلمات في تعريف مبادرة النهج، يمكنك إعادة استخدام هذه المعلمة في النهج المضمنة.

إشعار

بمجرد تعيين مبادرة، لا يمكن تغيير معلمات مستوى المبادرة. ونتيجة لذلك، فإن التوصية هي تعيين defaultValue عند تعريف المعلمة.

خصائص المعلمات

المعلمة لها الخصائص التالية المستخدمة في تعريف مبادرة النهج:

  • name: اسم المعلمة الخاصة بك. تستخدم بواسطة دالة التوزيع parameters ضمن قاعدة النهج. لمزيد من المعلومات، راجع استخدام قيمة معلمة.
  • type: يحدد ما إذا كانت المعلمة عبارة عن سلسلة أو صفيف أو عنصر أو منطقية أو عدد صحيح أو قيمة عائمة أو التاريخ والوقت.
  • metadata: يحدد الخصائص الفرعية المستخدمة بشكل أساسي من قبل مدخل Microsoft Azure لعرض معلومات سهلة الاستخدام:
    • description: (اختياري) شرح ما تستخدم المعلمة له. يمكن استخدامها لتوفير أمثلة للقيم المقبولة.
    • displayName: : الاسم المألوف الموضح في البوابة للمعلمة.
    • strongType: (اختياري) يستخدم عند تعيين تعريف النهج من خلال المدخل. توفر قائمة مدركة للسياق. لمزيد من المعلومات، راجع strongType.
  • defaultValue: (اختياري) تعيين قيمة المعلمة في مهمة إذا لم يتم إعطاء أي قيمة.
  • allowedValues: (اختياري) توفر صفيفًا من القيم التي تقبلها المعلمة أثناء التعيين.

على سبيل المثال، يمكنك تحديد تعريف مبادرة نهج للحد من مواقع الموارد في تعريفات النهج المضمنة المختلفة. المعلمة المسموح بها لتعريف مبادرة النهج يمكن أن تكون allowedLocations. ثم تتوفر المعلمة لكل تعريف نهج مضمن ويتم تعريفها أثناء تعيين مبادرة النهج.

"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"
        ]
    }
}

تمرير قيمة معلمة إلى تعريف نهج

يمكنك تعريف معلمات المبادرة التي تمررها والتي تتضمن تعريفات النهج في صفيف policyDefinitions لتعريف المبادرة. بينما يمكن أن يكون اسم المعلمة هو نفسه، فإن استخدام أسماء مختلفة في المبادرات عن تعريفات السياسة يبسط إمكانية قراءة تعليمة برمجية.

على سبيل المثال، يمكن تمرير معلمة مبادرة 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')]"
            }
        }
    }
]

يشير هذا النموذج إلى معلمة allowedLocations التي تم توضيحها في خصائص المعلمة.

strongType

ضمن الخاصية metadata، يمكنك استخدام strongType لتوفير قائمة متعددة التحديد من الخيارات داخل مدخل Microsoft Azure. يمكن أن يمثل strongType أيًا من نوع مورد مدعوم أو قيمة مسموح بها. لتحديد إذا كان نوع المورد صالحًا لـ strongType، استخدم Get-AzResourceProvider.

يتم دعم بعض أنواع الموارد التي لم يتم إرجاعها بواسطة Get-AzResourceProvider. أنواع الموارد هذه هي:

  • Microsoft.RecoveryServices/vaults/backupPolicies

القيم غير المسموح بها لنوع الموارد لـ strongType هي:

  • location
  • resourceTypes
  • storageSkus
  • vmSKUs
  • existingResourceGroups

تعريفات النهج

الجزء 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 هذه الخاصية لتجميع التعريفات في عناصر التحكمومجالات التوافق. يتم تعريف هذه المعلومات في policyDefinitionGroups خاصية الصفيف . يمكن العثور على مزيد من تفاصيل التجميع في كائن policyMetadata الذي تم إنشاؤه بواسطة Microsoft. للحصول على معلومات، راجع كائنات بيانات التعريف.

معلمات مجموعات تعريف النهج

يجب أن يحتوي كل عنصر صفيف في policyDefinitionGroups على كلتا الخاصيتين التاليتين:

  • name (السلسلة) [مطلوبة]: الاسم المختصر للمجموعة. في التوافق التنظيمي، عنصر التحكم. يتم استخدام قيمة هذه الخاصية بواسطة groupNames في policyDefinitions.

  • category (سلسلة): التسلسل الهرمي الذي تنتمي إليه المجموعة. في التوافق التنظيمي، مجال التوافق لعنصر التحكم.

  • displayName (سلسلة): الاسم المألوف للمجموعة أو عنصر التحكم. يستخدم من المدخل.

  • description (سلسلة): وصف لما تغطيه المجموعة أو عنصر التحكم.

  • additionalMetadataId (سلسلة): موقع عنصر policyMetadata الذي يحتوي على تفاصيل إضافية حول التحكم ومجال التوافق.

    إشعار

    قد يشير العملاء إلى عنصر 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 على معلومات إضافية حول كل عنصر تحكم. احفظ هذه المعلومات:

  • يتم عرضها في مدخل 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"
}

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