Mulai Cepat: Membuat penugasan kebijakan untuk mengidentifikasi sumber daya yang tidak sesuai dengan Azure PowerShell
Langkah pertama dalam memahami kepatuhan di Azure adalah dengan mengidentifikasi status sumber daya Anda. Dalam mulai cepat ini, Anda membuat penetapan kebijakan untuk mengidentifikasi sumber daya yang tidak sesuai menggunakan Azure PowerShell. Kebijakan ini ditetapkan ke grup sumber daya dan mengaudit komputer virtual yang tidak menggunakan disk terkelola. Setelah membuat penetapan kebijakan, Anda mengidentifikasi komputer virtual yang tidak patuh.
Modul Azure PowerShell dapat digunakan untuk mengelola sumber daya Azure dari baris perintah atau dalam skrip. Artikel ini menjelaskan cara menggunakan Azure PowerShell untuk membuat penetapan kebijakan.
Saat menetapkan definisi kebijakan atau inisiatif bawaan, opsional untuk mereferensikan versi. Penetapan kebijakan definisi bawaan default ke versi terbaru dan secara otomatis mewarisi perubahan versi minor kecuali ditentukan lain.
Prasyarat
- Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
- Azure PowerShell.
- Visual Studio Code.
Microsoft.PolicyInsights
harus terdaftar di langganan Azure Anda. Untuk mendaftarkan penyedia sumber daya, Anda harus memiliki izin untuk mendaftarkan penyedia sumber daya. Izin tersebut disertakan dalam peran Kontributor dan Pemilik.- Grup sumber daya dengan setidaknya satu komputer virtual yang tidak menggunakan disk terkelola.
Hubungkan ke Azure
Dari sesi terminal Visual Studio Code, sambungkan ke Azure. Jika Anda memiliki lebih dari satu langganan, jalankan perintah untuk mengatur konteks ke langganan Anda. Ganti <subscriptionID>
dengan ID langganan Azure Anda.
Connect-AzAccount
# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>
Mendaftarkan penyedia sumber daya
Saat penyedia sumber daya terdaftar, penyedia sumber daya tersedia untuk digunakan dalam langganan Azure Anda.
Untuk memverifikasi apakah Microsoft.PolicyInsights
terdaftar, jalankan Get-AzResourceProvider
. Penyedia sumber daya berisi beberapa jenis sumber daya. Jika hasilnya NotRegistered
dijalankan Register-AzResourceProvider
:
Get-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights' |
Select-Object -Property ResourceTypes, RegistrationState
Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
Untuk informasi selengkapnya, buka Get-AzResourceProvider dan Register-AzResourceProvider.
Buat penetapan kebijakan
Gunakan perintah berikut untuk membuat penetapan kebijakan baru untuk grup sumber daya Anda. Contoh ini menggunakan grup sumber daya yang ada yang berisi komputer virtual tanpa disk terkelola. Grup sumber daya adalah cakupan untuk penetapan kebijakan. Contoh ini menggunakan definisi kebijakan bawaan Audit VM yang tidak menggunakan disk terkelola.
Jalankan perintah berikut dan ganti <resourceGroupName>
dengan nama grup sumber daya Anda:
$rg = Get-AzResourceGroup -Name '<resourceGroupName>'
$definition = Get-AzPolicyDefinition |
Where-Object { $_.DisplayName -eq 'Audit VMs that do not use managed disks' }
Variabel $rg
menyimpan properti untuk grup sumber daya dan $definition
variabel menyimpan properti definisi kebijakan. Properti digunakan dalam perintah berikutnya.
Jalankan perintah berikut untuk membuat penetapan kebijakan:
$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
Variabel $policyparms
menggunakan splatting untuk membuat nilai parameter dan meningkatkan keterbacaan. New-AzPolicyAssignment
Perintah menggunakan nilai parameter yang ditentukan dalam $policyparms
variabel.
Name
membuat nama penetapan kebijakan yang digunakan dalam tugasResourceId
.DisplayName
adalah nama untuk penetapan kebijakan dan terlihat dalam portal Azure.Scope
$rg.ResourceId
menggunakan properti untuk menetapkan kebijakan ke grup sumber daya.PolicyDefinition
menetapkan definisi kebijakan yang disimpan dalam$definition
variabel.Description
dapat digunakan untuk menambahkan konteks tentang penetapan kebijakan.
Hasil penetapan kebijakan menyerupai contoh berikut:
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
Untuk informasi selengkapnya, buka New-AzPolicyAssignment.
Jika Anda ingin memutar ulang informasi penetapan kebijakan, jalankan perintah berikut:
Get-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId
Mengidentifikasi sumber daya yang tidak sesuai
Status kepatuhan untuk penetapan kebijakan baru membutuhkan waktu beberapa menit untuk menjadi aktif dan memberikan hasil tentang status kebijakan.
Gunakan perintah berikut untuk mengidentifikasi sumber daya yang tidak sesuai dengan penetapan kebijakan yang Anda buat:
$complianceparms = @{
ResourceGroupName = $rg.ResourceGroupName
PolicyAssignmentName = 'audit-vm-managed-disks'
Filter = 'IsCompliant eq false'
}
Get-AzPolicyState @complianceparms
Variabel $complianceparms
menggunakan splatting untuk membuat nilai parameter yang Get-AzPolicyState
digunakan dalam perintah .
ResourceGroupName
mendapatkan nama grup sumber daya dari$rg.ResourceGroupName
properti .PolicyAssignmentName
menentukan nama yang digunakan saat penetapan kebijakan dibuat.Filter
menggunakan ekspresi untuk menemukan sumber daya yang tidak sesuai dengan penetapan kebijakan.
Hasil Anda menyerupai contoh berikut dan ComplianceState
menunjukkan 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, ]}
Untuk informasi selengkapnya, buka Get-AzPolicyState.
Membersihkan sumber daya
Untuk menghapus penetapan kebijakan, jalankan perintah berikut:
Remove-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId
Untuk keluar dari sesi Azure PowerShell Anda:
Disconnect-AzAccount
Langkah berikutnya
Dalam mulai cepat ini, Anda telah menetapkan definisi kebijakan untuk mengidentifikasi sumber daya yang tidak sesuai di lingkungan Azure Anda.
Untuk mempelajari selengkapnya tentang cara menetapkan kebijakan yang memvalidasi kepatuhan sumber daya, lanjutkan ke tutorial.