استعيد السيطرة على موارد Azure باستخدام سياسة Azure

A common theme in cloud environments today is the ability to define templates, policies, and procedures. These templates then dictate what can be done and verify that what does exist is correct. A service from Microsoft called Azure Policy is a great way to make that happen.

في هذا المقال، ستتعرف على كيفية عمل سياسة Azure ثم ترى كيفية إنشاء سياسات مختلفة وإجراءات تصحيح.

إنشاء سياسة Azure

هناك العديد من الطرق لإنشاء السياسات مثل من خلال بوابة Azure، PowerShell، Azure CLI وقوالب ARM.

بوابة Azure

إذا كنت تفضل الطريقة التفاعلية أو تقوم باستكشاف خياراتك، فإن البدء من هنا هو مقدمة جيدة إلى السياسات. الواجهة بسيطة وتتيح لك رؤية خياراتك بلمحة.

  1. داخل بوابة Azure، ابحث عن Policy.
  2. انقر فوق Assignments تحت القسم Authoring
  3. انقر على Assign policy
  4. انقر على النقاط الثلاث تحت Scope لتحديد الاشتراك الذي ستُطبق عليه السياسة واختيارياً مجموعة الموارد
  5. انقر على النقاط الثلاث تحت Policy definition لتحديد السياسة المراد تحديدها
  6. استخدم إما اسم العمل الافتراضي المولد تحت Assignment name أو أدخل واحدًا لتحديد سياستك بشكل فريد
  7. املأ أي معلمات حسب الحاجة استنادًا إلى السياسة المختارة
  8. أخيرًا، قم بإنشاء هوية مُدارة وتحديد موقعها إذا لزم الأمر
Creating a Policy

PowerShell

بفضل PowerShell، يتمكنك من تخصيص تعريف سياسة Azure إلى تعيين سياسة بسرعة وسهولة. هناك شرطين أساسيين، وهما الحاجة إلى أحدث إصدار من Azure PowerShell مثبتًا وتسجيل موفر موارد Azure Policy Insights.

Register Policy Insights Resource Provider
PS51> Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
Assign the Policy
PS51> $resourceGroup = Get-AzResourceGroup -Name '<resourceGroupName>'

PS51> $definition = Get-AzPolicyDefinition | Where-Object { $_.Properties.DisplayName -eq '<policyName>' }

PS51> New-AzPolicyAssignment -Name '<assignment-name>' -DisplayName '<friendlyName>' -Scope $resourceGroup.ResourceId -PolicyDefinition $definition -listOfResourceTypesAllowed '<parameterValues>'

سطر الأوامر Azure

إذا لم يكن PowerShell متاحًا أو غير مفضل، فيمكن استخدام Azure CLI أيضًا لتحقيق الكثير من نفس الغرض. يمكن أيضًا أن يكون ذلك مفيدًا في حالات التشغيل المتعددة إذا كنت غير قادر على استخدام PowerShell على جميع أنظمة التشغيل.

> az policy assignment create --name '<policyName>' --display-name '<friendlyName>' --scope '<scope>' --policy '<policyDefinitionID>'

قوالب سياسة Azure

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


{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "policyAssignmentName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the policy assignment."
      }
   },
    "rgName":{
      "type": "string",
      "defaultValue": "[resourceGroup().name]",
      "metadata": {
        "description": "Specifies the name of the resource group where you want to assign the policy."
      }
},
    "policyDefinitionID": {
      "type": "string",
      "metadata": {
        "description": "Specifies the ID of the policy definition or policy set definition being assigned."
      }
    }
},
  "resources": [
{
      "type": "Microsoft.Authorization/policyAssignments",
"name": "[parameters('policyAssignmentName')]",
"apiVersion": "2018-05-01",
"properties": {
   "scope": "[concat (subscription ( ).id, '/resourceGroups/', parameters('rgName'))]",
   

كيفية عمل تعيين سياسة Azure

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

أمثلة على سياسات Azure

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

  • المطلوب وجود علامة وقيمتها – يمكن استخدام هذا لأي عدد من الطرق، لكن إحدى الاحتمالات هي على سبيل المثال رموز التكلفة، أو لتحديد عدد مختلف من الموارد تمتد عبر عدة مجموعات موارد.
  • أنواع الموارد المسموح بها – ماذا لو أردت السماح فقط بموارد محددة؟ يمكن أن تفرض ذلك، مع القدرة على إنشاء مورد تخزين مثلاً.
  • قم بتدقيق الآلي لآلات الويندوز الظاهرة بها إعادة التشغيل المعلقة – ربما ترغب في معرفة أي آلات ويندوز تتطلب إعادة تشغيل معلقة، للتأكد من عدم ترك تلك الآلات دون رصد؟ استخدم هذه السياسة للعثور على تلك الآلات وإمكانية تصحيحها ربما وفق جدول زمني.
  • تدقيق إعدادات التشخيص – إذا لم تكن إعدادات التشخيص مفعلة، فسوف تجد هذه السياسة التي لا تتوافق.
  • يجب أن تكون المنافذ الإدارية مغلقة على آلاتك الافتراضية – تحقق من أن المنافذ الإدارية على آلاتك الافتراضية مغلقة، سياسة رائعة لأولئك الذين يهتمون بالأمان.
  • يجب إزالة الحسابات المهجورة من اشتراكك – لجميع الحسابات التي تم حظر تسجيل الدخول إليها ضمن الدليل، ابحث عنها للتصحيح إذا لزم الأمر. على الرغم من وجود العديد منها هنا، والمزيد يتم إنشاؤه كل يوم، لديك أيضًا قدرة قوية جدًا على إنشاء تعريفات سياسية مخصصة لك الخاصة. باستخدام مخطط تعريف الاستعلام البسيط يمكنك إنشاء بناءات إذا-ثم قوية لتحديد ما تريد تطبيق السياسات عليه.

كيفية جعل سياسات Azure أكثر قابلية لإعادة الاستخدام

المعلمات

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

المبادرات

الخطوة المنطقية التالية هي جمع تعريفات متعددة معًا في مجموعة. يتيح لك ذلك تعيين كل تلك التعريفات المختلفة إلى نطاق دون الحاجة إلى تعيين كل واحدة على حدة مرارًا وتكرارًا.

معلمات المبادرة

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

مهام الإصلاح

إذا كانت لديك سياسة تقويمية ولكنها تجد موارد غير متوافقة؟ في هذه الحالة، يمكنك تشغيل مهمة إصلاح لإصلاح أي مشكلة قد تكون موجودة. يمكن أن يكون هذا قويًا لكنه خطير أيضًا إذا تم إعداده بشكل غير صحيح. مرة أخرى، هناك عدة طرق لتحديد هذه المهام سواء من خلال بوابة Azure أو PowerShell أو من خلال Azure CLI.

بوابة Azure

كما هو الحال مسبقًا، يمكنك استخدام بوابة Azure لاستكشاف إنشاء مهمة إصلاح. إذا وجدت أنه لا توجد سياسات مدرجة، تأكد من أن لديك كل من السياسات deployIfNotExists وأيضًا تلك التي تم تقييمها على أنها غير متوافقة في خلاف ذلك فلن يتم عرضها.

  1. ضمن بوابة Azure، ابحث عن السياسة
  2. انقر فوق الإصلاح في الجانب الأيسر
  3. انقر فوق سياسة من نوع deployIfNotExists ولديها موارد غير متوافقة
  4. تصفية الموارد المرادة لإعادة التأهيل على صفحة مهمة إعادة التأهيل لتقييد نطاق تطبيق المهمة
  5. انقر على إعادة التأهيل لبدء المهمة نفسها

PowerShell

من السهل جدًا إنشاء مهمة إعادة تأهيل عبر PowerShell. الشيء الرئيسي هو تذكر أنه يجب أن تكون تستخدم سياسة النشر_إذا_لم_يكن_موجودًا.

PS51> Start-AzPolicyRemediation -Name 'remediationTask' -PolicyAssignmentId '/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyAssignments/{assignmentID}'

Azure CLI

بدلاً من استخدام PowerShell يمكنك أيضًا استخدام Azure CLI لبدء مهمة إعادة التأهيل كذلك. نفس الأمر ينطبق على هذا كما في مهمة PowerShell.

> az policy remediation create --name remediationTask --policy-assignment '/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyAssignments/{assignmentID}'

الملخص

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

عند النظر إلى أن سياسات Azure مجانية لأي اشتراك في Azure، فإنه من المنطقي جدًا أن تأخذ الوقت لتنفيذ ما تحتاج إليه. باعتبار المرونة في كيفية إنشاء ونشر هذه التعريفات والسياسات، يمكن أن تنطبق على ما يقرب من أي شيء وتساعدك في الحفاظ على سيطرتك على بيئتك!

Source:
https://adamtheautomator.com/azure-policy/