التشغيل السريع: إنشاء تعيين نهج لتحديد الموارد غير المتوافقة باستخدام 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 { $_.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
يستخدم تعبيرا للبحث عن الموارد غير المتوافقة مع تعيين النهج.
تشبه نتائجك المثال التالي وتظهر ComplianceState
NonCompliant
:
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.
لمعرفة المزيد حول كيفية تعيين النهج التي تتحقق من توافق الموارد، تابع البرنامج التعليمي.