التشغيل السريع: إنشاء تعيين نهج لتحديد الموارد غير المتوافقة باستخدام Azure PowerShell

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

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

المتطلبات الأساسية

  • إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
  • Azure PowerShell.
  • تعليمة Visual Studio البرمجية.
  • Microsoft.PolicyInsights يجب أن يكون مسجلا في اشتراك Azure الخاص بك. لتسجيل موفر موارد، يجب أن يكون لديك إذن لتسجيل موفري الموارد. يتم تضمين هذا الإذن في أدوار المساهم والمالك.
  • مجموعة موارد مع جهاز ظاهري واحد على الأقل لا يستخدم الأقراص المدارة.

قم بالاتصال بـ Azure

من جلسة Visual Studio Code الطرفية، اتصل ب Azure. إذا كان لديك أكثر من اشتراك واحد، فقم بتشغيل الأوامر لتعيين السياق إلى اشتراكك. استبدل <subscriptionID> بمعرف اشتراك Azure الخاص بك.

Connect-AzAccount

# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>

سجل موفر الموارد

عند تسجيل موفر موارد، يكون متوفرا للاستخدام في اشتراك Azure الخاص بك.

للتحقق مما إذا كان Microsoft.PolicyInsights مسجلا، قم بتشغيل Get-AzResourceProvider. يحتوي موفر الموارد على عدة أنواع من الموارد. إذا تم تشغيل Register-AzResourceProviderالنتيجة NotRegistered :

 Get-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights' |
   Select-Object -Property ResourceTypes, RegistrationState

Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'

لمزيد من المعلومات، انتقل إلى Get-AzResourceProvider و Register-AzResourceProvider.

إنشاء مهمة النهج

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

قم بتشغيل الأوامر التالية واستبدل <resourceGroupName> باسم مجموعة الموارد:

$rg = Get-AzResourceGroup -Name '<resourceGroupName>'

$definition = Get-AzPolicyDefinition |
  Where-Object { $_.Properties.DisplayName -eq 'Audit VMs that do not use managed disks' }

يخزن $rg المتغير خصائص مجموعة الموارد ويخزن $definition المتغير خصائص تعريف النهج. يتم استخدام الخصائص في الأوامر اللاحقة.

قم بتشغيل الأمر التالي لإنشاء تعيين النهج:

$policyparms = @{
Name = 'audit-vm-managed-disks'
DisplayName = 'Audit VM managed disks'
Scope = $rg.ResourceId
PolicyDefinition = $definition
Description = 'Az PowerShell policy assignment to resource group'
}

New-AzPolicyAssignment @policyparms

$policyparms يستخدم المتغير splatting لإنشاء قيم المعلمات وتحسين قابلية القراءة. New-AzPolicyAssignment يستخدم الأمر قيم المعلمات المعرفة في $policyparms المتغير .

  • Name ينشئ اسم تعيين النهج المستخدم في التعيين ResourceId.
  • DisplayName هو اسم تعيين النهج وهو مرئي في مدخل Microsoft Azure.
  • Scope يستخدم الخاصية $rg.ResourceId لتعيين النهج إلى مجموعة الموارد.
  • PolicyDefinition تعيين تعريف النهج المخزن في $definition المتغير.
  • Description يمكن استخدامها لإضافة سياق حول تعيين النهج.

تشبه نتائج تعيين النهج المثال التالي:

Name               : audit-vm-managed-disks
ResourceId         : /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks
ResourceName       : audit-vm-managed-disks
ResourceGroupName  : {resourceGroupName}
ResourceType       : Microsoft.Authorization/policyAssignments
SubscriptionId     : {subscriptionId}
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks
Properties         : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.Policy.PsPolicyAssignmentProperties

لمزيد من المعلومات، انتقل إلى New-AzPolicyAssignment.

إذا كنت تريد إعادة عرض معلومات تعيين النهج، فقم بتشغيل الأمر التالي:

Get-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId

تحديد الموارد غير المتوافقة

تستغرق حالة التوافق لتعيين نهج جديد بضع دقائق لتصبح نشطة وتوفر نتائج حول حالة النهج.

استخدم الأمر التالي لتحديد الموارد غير المتوافقة مع تعيين النهج الذي أنشأته:

$complianceparms = @{
ResourceGroupName = $rg.ResourceGroupName
PolicyAssignmentName = 'audit-vm-managed-disks'
Filter = 'IsCompliant eq false'
}

Get-AzPolicyState @complianceparms

$complianceparms يستخدم المتغير splatting لإنشاء قيم المعلمات المستخدمة في Get-AzPolicyState الأمر .

  • ResourceGroupName يحصل على اسم مجموعة الموارد من الخاصية $rg.ResourceGroupName .
  • PolicyAssignmentName يحدد الاسم المستخدم عند إنشاء تعيين النهج.
  • Filter يستخدم تعبيرا للبحث عن الموارد غير المتوافقة مع تعيين النهج.

تشبه نتائجك المثال التالي وتظهر ComplianceStateNonCompliant:

Timestamp                : 2/14/2024 18:25:37
ResourceId               : /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.compute/virtualmachines/{vmId}
PolicyAssignmentId       : /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.authorization/policyassignments/audit-vm-managed-disks
PolicyDefinitionId       : /providers/microsoft.authorization/policydefinitions/06a78e20-9358-41c9-923c-fb736d382a4d
IsCompliant              : False
SubscriptionId           : {subscriptionId}
ResourceType             : Microsoft.Compute/virtualMachines
ResourceLocation         : {location}
ResourceGroup            : {resourceGroupName}
ResourceTags             : tbd
PolicyAssignmentName     : audit-vm-managed-disks
PolicyAssignmentOwner    : tbd
PolicyAssignmentScope    : /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
PolicyDefinitionName     : 06a78e20-9358-41c9-923c-fb736d382a4d
PolicyDefinitionAction   : audit
PolicyDefinitionCategory : tbd
ManagementGroupIds       : {managementGroupId}
ComplianceState          : NonCompliant
AdditionalProperties     : {[complianceReasonCode, ]}

لمزيد من المعلومات، انتقل إلى Get-AzPolicyState.

تنظيف الموارد

لإزالة تعيين النهج، قم بتشغيل الأمر التالي:

Remove-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId

لتسجيل الخروج من جلسة عمل Azure PowerShell:

Disconnect-AzAccount

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

في هذا التشغيل السريع، قمت بتعيين تعريف نهج لتحديد الموارد غير المتوافقة في بيئة Azure.

لمعرفة المزيد حول كيفية تعيين النهج التي تتحقق من توافق الموارد، تابع البرنامج التعليمي.