Mendapatkan data kepatuhan sumber daya Azure
Salah satu keuntungan terbesar Azure Policy adalah wawasan dan kontrol yang diberikannya atas sumber daya dalam langganan atau grup manajemen langganan. Kontrol ini dapat digunakan untuk mencegah sumber daya dibuat di lokasi yang salah, menerapkan penggunaan tag umum dan konsisten, atau mengaudit sumber daya yang ada untuk konfigurasi dan pengaturan yang sesuai. Dalam semua kasus, data dibuat oleh Azure Policy untuk memungkinkan Anda memahami status kepatuhan lingkungan Anda.
Sebelum meninjau data kepatuhan, penting untuk memahami status kepatuhan di Azure Policy.
Ada beberapa cara untuk mengakses informasi kepatuhan yang dibuat oleh penetapan kebijakan dan inisiatif Anda:
- Menggunakan portal Azure
- Melalui pembuatan skrip baris perintah
- Dengan melihat log Azure Monitor
- Melalui kueri Azure Resource Graph
Sebelum melihat metode untuk melaporkan kepatuhan, mari kita lihat kapan informasi kepatuhan diperbarui serta frekuensi dan peristiwa yang memicu siklus evaluasi.
Pemicu evaluasi
Hasil dari siklus evaluasi yang telah selesai tersedia di Penyedia Sumber Daya Microsoft.PolicyInsights
melalui operasi PolicyStates
dan PolicyEvents
. Untuk mengetahui informasi selengkapnya tentang operasi Azure Policy Insights REST API, lihat Azure Policy Insights.
Evaluasi kebijakan dan inisiatif yang ditetapkan terjadi sebagai hasil dari berbagai peristiwa:
Saat kebijakan atau inisiatif baru ditetapkan ke sebuah cakupan. Dibutuhkan sekitar lima menit agar penugasan diterapkan ke cakupan yang ditentukan, lalu siklus evaluasi dimulai untuk sumber daya yang berlaku terhadap kebijakan atau inisiatif yang baru ditetapkan. Bergantung pada efek yang digunakan, sumber daya ditandai sebagai sesuai, tidak patuh, dikecualikan, atau tidak diketahui. Kebijakan atau inisiatif besar yang dievaluasi terhadap cakupan sumber daya yang besar dapat memakan waktu, sehingga tidak ada harapan yang telah ditentukan sebelumnya tentang kapan siklus evaluasi selesai. Setelah selesai, hasil kepatuhan yang diperbarui tersedia di portal dan SDK.
Saat kebijakan atau inisiatif baru yang telah ditetapkan diperbarui. Siklus evaluasi dan waktu untuk skenario ini sama dengan untuk penugasan baru ke cakupan.
Sumber daya disebarkan ke atau diperbarui dalam cakupan dengan penugasan melalui Azure Resource Manager, REST API, atau SDK yang didukung. Dalam skenario ini, peristiwa efek (tambahkan, audit, tolak, sebarkan) dan informasi status yang sesuai syarat untuk sumber daya individu tersedia di portal dan SDK sekitar 15 menit kemudian. Peristiwa ini tidak menyebabkan evaluasi sumber daya lain.
Langganan (jenis sumber daya
Microsoft.Resources/subscriptions
) dibuat atau dipindahkan dalam hierarki grup manajemen dengan definisi kebijakan yang ditetapkan yang menargetkan jenis sumber daya langganan. Evaluasi efek langganan yang didukung (audit, auditIfNotExist, deployIfNotExists, modifikasi), pengelogan, dan tindakan remediasi apa pun membutuhkan waktu sekitar 30 menit.Pengecualian kebijakan dibuat, diperbarui, atau dihapus. Dalam skenario ini, penugasan yang sesuai dievaluasi untuk ruang cakupan pengecualian yang ditentukan.
Siklus evaluasi kepatuhan standar. Setiap 24 jam sekali, penugasan otomatis dievaluasi kembali. Kebijakan atau inisiatif besar dari banyak sumber daya bisa memakan waktu, jadi tidak ada harapan yang telah ditentukan sebelumnya saat siklus evaluasi selesai. Setelah selesai, hasil kepatuhan yang diperbarui tersedia di portal dan SDK.
Penyedia sumber daya konfigurasi mesin diperbarui dengan detail kepatuhan oleh sumber daya terkelola.
Pemindaian sesuai permintaan
Catatan
Secara desain, Azure Policy mengecualikan semua sumber daya di bawah Microsoft.Resources
penyedia sumber daya (RP) dari evaluasi kebijakan dengan pengecualian langganan dan grup sumber daya, yang dapat dievaluasi.
Pemindaian evaluasi sesuai permintaan
Pemindaian evaluasi untuk langganan atau grup sumber daya bisa dimulai dengan Azure CLI, Azure PowerShell, panggilan ke REST API, atau dengan menggunakan Azure Policy Compliance Scan GitHub Action. Pemindaian ini adalah proses asinkron.
Catatan
Tidak semua penyedia sumber daya Azure mendukung pemindaian evaluasi sesuai permintaan. Misalnya, Azure Virtual Network Manager (AVNM) saat ini tidak mendukung pemicu manual ataupun siklus evaluasi kepatuhan kebijakan standar (pemindaian harian).
Pemindaian evaluasi sesuai permintaan - GitHub Action
Gunakan tindakan Pemindaian Kepatuhan Azure Policy untuk memicu pemindaian evaluasi sesuai permintaan dari alur kerja GitHub Anda di satu atau beberapa sumber daya, grup sumber daya, atau langganan, dan gerbang alur kerja berdasarkan status kepatuhan sumber daya. Anda juga bisa mengonfigurasi alur kerja untuk berjalan pada waktu yang dijadwalkan sehingga Anda mendapatkan status kepatuhan terbaru pada waktu yang nyaman. Secara opsional, GitHub Actions dapat menghasilkan laporan tentang status kepatuhan sumber daya yang dipindai untuk analisis lebih lanjut atau untuk pengarsipan.
Contoh berikut menjalankan pemindaian kepatuhan untuk langganan.
on:
schedule:
- cron: '0 8 * * *' # runs every morning 8am
jobs:
assess-policy-compliance:
runs-on: ubuntu-latest
steps:
- name: Login to Azure
uses: azure/login@v1
with:
creds: ${{secrets.AZURE_CREDENTIALS}}
- name: Check for resource compliance
uses: azure/policy-compliance-scan@v0
with:
scopes: |
/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Untuk informasi selengkapnya dan contoh alur kerja, lihat repo Pemindaian Kepatuhan Tindakan GitHub untuk Azure Policy.
Pemindaian evaluasi sesuai permintaan - Azure CLI
Pemindaian kepatuhan dimulai dengan perintah az policy state trigger-scan.
Secara default, az policy state trigger-scan
memulai evaluasi untuk semua sumber daya dalam langganan saat ini. Untuk memulai evaluasi pada grup sumber daya tertentu, gunakan resource-group
parameter . Contoh berikut memulai pemindaian kepatuhan di langganan saat ini untuk grup sumber daya MyRG:
az policy state trigger-scan --resource-group "MyRG"
Anda dapat memilih untuk tidak menunggu proses asinkron selesai sebelum melanjutkan dengan no-wait
parameter .
Pemindaian evaluasi sesuai permintaan - Azure PowerShell
Pemindaian kepatuhan dimulai dengan cmdlet Start-AzPolicyComplianceScan.
Secara default, Start-AzPolicyComplianceScan
memulai evaluasi untuk semua sumber daya dalam langganan saat ini. Untuk memulai evaluasi pada grup sumber daya tertentu, gunakan ResourceGroupName
parameter . Contoh berikut memulai pemindaian kepatuhan di langganan saat ini untuk grup sumber daya MyRG:
Start-AzPolicyComplianceScan -ResourceGroupName 'MyRG'
Anda bisa meminta PowerShell menunggu panggilan asinkron selesai sebelum memberikan output hasil atau menjalankannya di latar belakang sebagai pekerjaan. Untuk menggunakan pekerjaan PowerShell untuk menjalankan pemindaian kepatuhan di latar belakang, gunakan AsJob
parameter dan atur nilai ke objek, seperti $job
dalam contoh ini:
$job = Start-AzPolicyComplianceScan -AsJob
Anda bisa memeriksa status pekerjaan dengan memeriksa objek $job
. Pekerjaan ini merupakan jenis Microsoft.Azure.Commands.Common.AzureLongRunningJob
. Gunakan Get-Member
pada objek $job
untuk melihat properti dan metode yang tersedia.
Saat pemindaian kepatuhan berjalan, periksa hasil output objek $job
seperti ini:
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 Long Running O... AzureLongRunni... Running True localhost Start-AzPolicyCompliance...
Saat pemindaian kepatuhan selesai, State
properti berubah menjadi Selesai.
Pemindaian evaluasi sesuai permintaan - REST
Sebagai proses asinkron, titik akhir REST untuk memulai pemindaian tidak menunggu sampai pemindaian selesai merespons. Sebagai gantinya, menyediakan URI untuk mengkueri status evaluasi yang diminta.
Di setiap REST API URI, ada variabel yang digunakan yang perlu Anda ganti dengan nilai Anda sendiri:
{YourRG}
- Mengganti dengan nama grup sumber daya Anda{subscriptionId}
- Ganti dengan ID langganan Anda
Pemindaian mendukung evaluasi sumber daya dalam langganan atau dalam grup sumber daya. Mulai pemindaian berdasarkan cakupan dengan perintah POST REST API menggunakan struktur URI berikut:
Langganan
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Grup sumber daya
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{YourRG}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Panggilan menampilkan status 202 Diterima. Disertakan dalam header respons adalah location
properti dengan format berikut:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2019-10-01
{ResourceContainerGUID}
secara statis dibuat untuk cakupan yang diminta. Jika cakupan sudah menjalankan pemindaian sesuai permintaan, pemindaian baru belum dimulai. Sebagai gantinya, permintaan baru disediakan URI yang sama {ResourceContainerGUID}
location
untuk status. Perintah GET REST API ke location
URI mengembalikan 202 Diterima saat evaluasi sedang berlangsung. Ketika pemindaian evaluasi selesai, pemindaian mengembalikan status 200 OK . Isi pemindaian yang selesai adalah respons JSON dengan status:
{
"status": "Succeeded"
}
Pemindaian evaluasi sesuai permintaan - Visual Studio Code
Ekstensi Azure Policy untuk Visual Studio Code mampu menjalankan pemindaian evaluasi untuk sumber daya tertentu. Pemindaian ini adalah proses yang sinkron, tidak seperti metode Azure PowerShell dan REST. Untuk detail dan langkah-langkahnya, lihat Evaluasi sesuai permintaan dengan ekstensi VS Code.
Portal
Portal Azure menampilkan pengalaman grafis dalam memvisualisasikan dan memahami status kepatuhan di lingkungan Anda. Di halaman Kebijakan, opsi Gambaran umum menyediakan detail untuk cakupan yang tersedia tentang kepatuhan kebijakan dan inisiatif. Seiring dengan status kepatuhan dan hitungan per penugasan, ini berisi bagan yang menunjukkan kepatuhan selama tujuh hari terakhir. Halaman Kepatuhan berisi banyak informasi yang sama ini (kecuali bagan), tetapi menyediakan lebih banyak opsi pemfilteran dan pengurutan.
Karena kebijakan atau inisiatif bisa ditetapkan ke cakupan yang berbeda, tabel menyertakan cakupan untuk setiap penugasan dan jenis definisi yang ditetapkan. Jumlah sumber daya yang tidak sesuai syarat dan kebijakan yang tidak sesuai syarat untuk setiap penugasan juga disediakan. Memilih kebijakan atau inisiatif dalam tabel memberikan tampilan yang lebih dalam tentang kepatuhan untuk penugasan tertentu tersebut.
Daftar sumber daya di tab Kepatuhan sumber daya menunjukkan status evaluasi sumber daya yang ada untuk penugasan saat ini. Tab default untuk Tidak sesuai syarat, tetapi bisa difilter. Peristiwa (tambahkan, audit, tolak, terapkan, modifikasi) yang dipicu oleh permintaan untuk membuat sumber daya ditampilkan di bawah tab Peristiwa.
Untuk sumber daya mode Penyedia Sumber Daya, di tab Kepatuhan sumber daya, memilih sumber daya atau mengklik kanan pada baris dan memilih Tampilkan detail kepatuhan membuka detail kepatuhan komponen. Halaman ini juga menawarkan tab untuk melihat kebijakan yang ditetapkan ke sumber daya, peristiwa, peristiwa komponen, dan riwayat perubahan ini.
Kembali ke halaman kepatuhan sumber daya, pilih dan tahan (atau klik kanan) pada baris peristiwa tempat Anda ingin mengumpulkan detail selengkapnya dan pilih Tampilkan log aktivitas. Halaman log aktivitas terbuka dan telah difilter ke pencarian yang menunjukkan detail untuk penugasan dan peristiwa. Log aktivitas menyediakan lebih banyak konteks dan informasi tentang peristiwa tersebut.
Catatan
Hasil kepatuhan dapat diekspor dari Portal melalui kueri Azure Resource Graph.
Baris perintah
Informasi yang sama yang tersedia di portal bisa diambil dengan REST API (termasuk dengan ARMClient), Azure PowerShell, dan Azure CLI. Untuk detail selengkapnya tentang REST API, lihat referensi Azure Policy. Halaman referensi REST API memiliki tombol Coba hijau pada setiap operasi yang memungkinkan Anda mencobanya langsung di browser.
Gunakan ARMClient atau alat serupa untuk menangani autentikasi ke Azure untuk contoh REST API.
Meringkas hasil
Dengan REST API, ringkasan bisa dilakukan dengan kontainer, definisi, atau penugasan. Berikut adalah contoh ringkasan di tingkat langganan menggunakan Ringkasan Langganan Azure Policy Insight:
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2019-10-01
Output meringkas langganan. Dalam contoh output berikut, kepatuhan yang dirangkum berada di bawah value.results.nonCompliantResources
dan value.results.nonCompliantPolicies
. Permintaan ini memberikan detail lebih lanjut, termasuk setiap penugasan yang terdiri dari angka yang tidak sesuai syarat dan informasi definisi untuk setiap penugasan. Setiap objek kebijakan dalam hierarki menyediakan queryResultsUri
yang dapat digunakan untuk mendapatkan detail lebih lanjut pada tingkat tersebut.
{
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#summary",
"@odata.count": 1,
"value": [
{
"@odata.id": null,
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#summary/$entity",
"results": {
"queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=ComplianceState eq 'NonCompliant'",
"nonCompliantResources": 15,
"nonCompliantPolicies": 1
},
"policyAssignments": [
{
"policyAssignmentId": "/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77",
"policySetDefinitionId": "",
"results": {
"queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=ComplianceState eq 'NonCompliant' and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77'",
"nonCompliantResources": 15,
"nonCompliantPolicies": 1
},
"policyDefinitions": [
{
"policyDefinitionReferenceId": "",
"policyDefinitionId": "/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"effect": "deny",
"results": {
"queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=ComplianceState eq 'NonCompliant' and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77' and PolicyDefinitionId eq '/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62'",
"nonCompliantResources": 15
}
}
]
}
]
}
]
}
Kueri untuk sumber daya
Dalam contoh sebelumnya, value.policyAssignments.policyDefinitions.results.queryResultsUri
menyediakan sampel URI untuk semua sumber daya yang tidak sesuai untuk definisi kebijakan tertentu. $filter
Dalam nilai , ComplianceState sama dengan NonCompliant
, PolicyAssignmentId
ditentukan untuk definisi kebijakan, lalu PolicyDefinitionId itu sendiri. Alasan untuk menyertakan PolicyAssignmentId
dalam filter adalah karena PolicyDefinitionId
dapat ada dalam beberapa penetapan kebijakan atau inisiatif dengan cakupan yang berbeda. Dengan menentukan PolicyAssignmentId
dan PolicyDefinitionId
, kita bisa eksplisit dalam hasil yang kita cari. Sebelumnya, untuk PolicyStates
kami menggunakan latest
, yang secara otomatis mengatur from
jendela waktu dan to
24 jam terakhir.
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=ComplianceState eq 'NonCompliant' and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77' and PolicyDefinitionId eq '/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62'
Contoh respons berikut dipangkas ke satu sumber daya yang tidak sesuai untuk brevity. Respons mendetail memiliki beberapa bagian data tentang sumber daya, kebijakan atau inisiatif, dan penugasan. Perhatikan bahwa Anda juga bisa melihat parameter penugasan apa yang diteruskan ke definisi kebijakan.
{
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest",
"@odata.count": 15,
"value": [
{
"@odata.id": null,
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
"timestamp": "2018-05-19T04:41:09Z",
"resourceId": "/subscriptions/{subscriptionId}/resourceGroups/rg-tags/providers/Microsoft.Compute/virtualMachines/linux",
"policyAssignmentId": "/subscriptions/{subscriptionId}/resourceGroups/rg-tags/providers/Microsoft.Authorization/policyAssignments/37ce239ae4304622914f0c77",
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"effectiveParameters": "",
"ComplianceState": "NonCompliant",
"subscriptionId": "{subscriptionId}",
"resourceType": "/Microsoft.Compute/virtualMachines",
"resourceLocation": "westus2",
"resourceGroup": "RG-Tags",
"resourceTags": "tbd",
"policyAssignmentName": "37ce239ae4304622914f0c77",
"policyAssignmentOwner": "tbd",
"policyAssignmentParameters": "{\"tagName\":{\"value\":\"costCenter\"},\"tagValue\":{\"value\":\"Contoso-Test\"}}",
"policyAssignmentScope": "/subscriptions/{subscriptionId}/resourceGroups/RG-Tags",
"policyDefinitionName": "1e30110a-5ceb-460c-a204-c1c3969c6d62",
"policyDefinitionAction": "deny",
"policyDefinitionCategory": "tbd",
"policySetDefinitionId": "",
"policySetDefinitionName": "",
"policySetDefinitionOwner": "",
"policySetDefinitionCategory": "",
"policySetDefinitionParameters": "",
"managementGroupIds": "",
"policyDefinitionReferenceId": ""
}
]
}
Menampilkan kejadian
Saat sumber daya dibuat atau diperbarui, hasil evaluasi kebijakan dibuat. Hasil disebut peristiwa kebijakan. Gunakan URI berikut untuk melihat peristiwa kebijakan terbaru yang terkait dengan langganan.
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2019-10-01
Hasilnya akan terlihat seperti contoh berikut:
{
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/$metadata#default",
"@odata.count": 1,
"value": [
{
"@odata.id": null,
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/$metadata#default/$entity",
"NumAuditEvents": 16
}
]
}
Untuk mengetahui informasi selengkapnya tentang mengkueri peristiwa kebijakan, lihat artikel referensi Peristiwa Azure Policy.
Azure CLI
Grup perintah Azure CLI untuk Azure Policy mencakup sebagian besar operasi yang tersedia di REST atau Azure PowerShell. Untuk daftar lengkap perintah yang tersedia, lihat Azure CLI - Gambaran Umum Azure Policy.
Contoh: Mendapatkan ringkasan status untuk kebijakan yang paling teratas yang ditetapkan dengan jumlah sumber daya yang tidak sesuai tertinggi.
az policy state summarize --top 1
Bagian atas respons terlihat seperti contoh ini:
{
"odatacontext": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#summary/$entity",
"odataid": null,
"policyAssignments": [
{
"policyAssignmentId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/e0704696df5e4c3c81c873e8",
"policyDefinitions": [
{
"effect": "audit",
"policyDefinitionGroupNames": [
""
],
"policyDefinitionId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policydefinitions/2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionReferenceId": "",
"results": {
"nonCompliantPolicies": null,
"nonCompliantResources": 398,
"policyDetails": [
{
"complianceState": "noncompliant",
"count": 1
}
],
"policyGroupDetails": [
{
"complianceState": "noncompliant",
"count": 1
}
],
"queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2020-07-14 14:01:22Z&$to=2020-07-15 14:01:22Z and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/e0704696df5e4c3c81c873e8' and PolicyDefinitionId eq '/subscriptions/{subscriptionId}/providers/microsoft.authorization/policydefinitions/2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a'",
"resourceDetails": [
{
"complianceState": "noncompliant",
"count": 398
},
{
"complianceState": "compliant",
"count": 4
}
]
}
}
],
...
Contoh: Mendapatkan catatan status untuk sumber daya yang paling baru dievaluasi (defaultnya adalah dengan tanda waktu dalam urutan menurun).
az policy state list --top 1
[
{
"complianceReasonCode": "",
"complianceState": "Compliant",
"effectiveParameters": "",
"isCompliant": true,
"managementGroupIds": "{managementgroupId}",
"odatacontext": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
"odataid": null,
"policyAssignmentId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/securitycenterbuiltin",
"policyAssignmentName": "SecurityCenterBuiltIn",
"policyAssignmentOwner": "tbd",
"policyAssignmentParameters": "",
"policyAssignmentScope": "/subscriptions/{subscriptionId}",
"policyAssignmentVersion": "",
"policyDefinitionAction": "auditifnotexists",
"policyDefinitionCategory": "tbd",
"policyDefinitionGroupNames": [
""
],
"policyDefinitionId": "/providers/microsoft.authorization/policydefinitions/aa633080-8b72-40c4-a2d7-d00c03e80bed",
"policyDefinitionName": "aa633080-8b72-40c4-a2d7-d00c03e80bed",
"policyDefinitionReferenceId": "identityenablemfaforownerpermissionsmonitoring",
"policyDefinitionVersion": "",
"policyEvaluationDetails": null,
"policySetDefinitionCategory": "security center",
"policySetDefinitionId": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8",
"policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8",
"policySetDefinitionOwner": "",
"policySetDefinitionParameters": "",
"policySetDefinitionVersion": "",
"resourceGroup": "",
"resourceId": "/subscriptions/{subscriptionId}",
"resourceLocation": "",
"resourceTags": "tbd",
"resourceType": "Microsoft.Resources/subscriptions",
"subscriptionId": "{subscriptionId}",
"timestamp": "2020-07-15T08:37:07.903433+00:00"
}
]
Contoh: Mendapatkan detail untuk semua sumber daya jaringan virtual yang tidak sesuai syarat.
az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'"
[
{
"complianceReasonCode": "",
"complianceState": "NonCompliant",
"effectiveParameters": "",
"isCompliant": false,
"managementGroupIds": "{managementgroupId}",
"odatacontext": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
"odataid": null,
"policyAssignmentId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/e0704696df5e4c3c81c873e8",
"policyAssignmentName": "e0704696df5e4c3c81c873e8",
"policyAssignmentOwner": "tbd",
"policyAssignmentParameters": "",
"policyAssignmentScope": "/subscriptions/{subscriptionId}",
"policyAssignmentVersion": "",
"policyDefinitionAction": "audit",
"policyDefinitionCategory": "tbd",
"policyDefinitionGroupNames": [
""
],
"policyDefinitionId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policydefinitions/2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionName": "2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionReferenceId": "",
"policyDefinitionVersion": "",
"policyEvaluationDetails": null,
"policySetDefinitionCategory": "",
"policySetDefinitionId": "",
"policySetDefinitionName": "",
"policySetDefinitionOwner": "",
"policySetDefinitionParameters": "",
"policySetDefinitionVersion": "",
"resourceGroup": "RG-Tags",
"resourceId": "/subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Microsoft.Network/virtualNetworks/RG-Tags-vnet",
"resourceLocation": "westus2",
"resourceTags": "tbd",
"resourceType": "Microsoft.Network/virtualNetworks",
"subscriptionId": "{subscriptionId}",
"timestamp": "2020-07-15T08:37:07.901911+00:00"
}
]
Contoh: Mendapatkan peristiwa yang terkait dengan sumber daya jaringan virtual yang tidak sesuai syarat yang terjadi setelah tanggal tertentu.
az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'" --from '2020-07-14T00:00:00Z'
[
{
"complianceReasonCode": "",
"complianceState": "NonCompliant",
"effectiveParameters": "",
"isCompliant": false,
"managementGroupIds": "{managementgroupId}",
"odatacontext": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
"odataid": null,
"policyAssignmentId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/e0704696df5e4c3c81c873e8",
"policyAssignmentName": "e0704696df5e4c3c81c873e8",
"policyAssignmentOwner": "tbd",
"policyAssignmentParameters": "",
"policyAssignmentScope": "/subscriptions/{subscriptionId}",
"policyAssignmentVersion": "",
"policyDefinitionAction": "audit",
"policyDefinitionCategory": "tbd",
"policyDefinitionGroupNames": [
""
],
"policyDefinitionId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policydefinitions/2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionName": "2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionReferenceId": "",
"policyDefinitionVersion": "",
"policyEvaluationDetails": null,
"policySetDefinitionCategory": "",
"policySetDefinitionId": "",
"policySetDefinitionName": "",
"policySetDefinitionOwner": "",
"policySetDefinitionParameters": "",
"policySetDefinitionVersion": "",
"resourceGroup": "RG-Tags",
"resourceId": "/subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Microsoft.Network/virtualNetworks/RG-Tags-vnet",
"resourceLocation": "westus2",
"resourceTags": "tbd",
"resourceType": "Microsoft.Network/virtualNetworks",
"subscriptionId": "{subscriptionId}",
"timestamp": "2020-07-15T08:37:07.901911+00:00"
}
]
Azure PowerShell
Modul Azure PowerShell untuk Azure Policy tersedia di Galeri PowerShell sebagai Az.PolicyInsights. Menggunakan PowerShellGet, Anda bisa menginstal modul menggunakan Install-Module -Name Az.PolicyInsights
(pastikan Anda telah menginstal Azure PowerShell terbaru):
# Install from PowerShell Gallery via PowerShellGet
Install-Module -Name Az.PolicyInsights
# Import the downloaded module
Import-Module Az.PolicyInsights
# Login with Connect-AzAccount if not using Cloud Shell
Connect-AzAccount
Modul ini memiliki cmdlet berikut:
Get-AzPolicyStateSummary
Get-AzPolicyState
Get-AzPolicyEvent
Get-AzPolicyRemediation
Remove-AzPolicyRemediation
Start-AzPolicyRemediation
Stop-AzPolicyRemediation
Contoh: Mendapatkan ringkasan status untuk kebijakan yang paling teratas yang ditetapkan dengan jumlah sumber daya yang tidak sesuai tertinggi.
PS> Get-AzPolicyStateSummary -Top 1
NonCompliantResources : 15
NonCompliantPolicies : 1
PolicyAssignments : {/subscriptions/{subscriptionId}/resourcegroups/RG-Tags/providers/micros
oft.authorization/policyassignments/37ce239ae4304622914f0c77}
Contoh: Mendapatkan catatan status untuk sumber daya yang paling baru dievaluasi (defaultnya adalah dengan tanda waktu dalam urutan menurun).
PS> Get-AzPolicyState -Top 1
Timestamp : 5/22/2018 3:47:34 PM
ResourceId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Network/networkInterfaces/linux316
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Authorization/policyAssignments/37ce239ae4304622914f0c77
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
ComplianceState : NonCompliant
SubscriptionId : {subscriptionId}
ResourceType : /Microsoft.Network/networkInterfaces
ResourceLocation : westus2
ResourceGroup : RG-Tags
ResourceTags : tbd
PolicyAssignmentName : 37ce239ae4304622914f0c77
PolicyAssignmentOwner : tbd
PolicyAssignmentParameters : {"tagName":{"value":"costCenter"},"tagValue":{"value":"Contoso-Test"}}
PolicyAssignmentScope : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags
PolicyDefinitionName : 1e30110a-5ceb-460c-a204-c1c3969c6d62
PolicyDefinitionAction : deny
PolicyDefinitionCategory : tbd
Contoh: Mendapatkan detail untuk semua sumber daya jaringan virtual yang tidak sesuai syarat.
PS> Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"
Timestamp : 5/22/2018 4:02:20 PM
ResourceId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Network/virtualNetworks/RG-Tags-vnet
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Authorization/policyAssignments/37ce239ae4304622914f0c77
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
ComplianceState : NonCompliant
SubscriptionId : {subscriptionId}
ResourceType : /Microsoft.Network/virtualNetworks
ResourceLocation : westus2
ResourceGroup : RG-Tags
ResourceTags : tbd
PolicyAssignmentName : 37ce239ae4304622914f0c77
PolicyAssignmentOwner : tbd
PolicyAssignmentParameters : {"tagName":{"value":"costCenter"},"tagValue":{"value":"Contoso-Test"}}
PolicyAssignmentScope : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags
PolicyDefinitionName : 1e30110a-5ceb-460c-a204-c1c3969c6d62
PolicyDefinitionAction : deny
PolicyDefinitionCategory : tbd
Contoh: Mendapatkan peristiwa yang terkait dengan sumber daya jaringan virtual yang tidak sesuai syarat yang terjadi setelah tanggal tertentu, mengonversi ke objek CSV, dan mengekspor ke file.
$policyEvents = Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2020-09-19'
$policyEvents | ConvertTo-Csv | Out-File 'C:\temp\policyEvents.csv'
Output objek $policyEvents
terlihat seperti output berikut:
Timestamp : 9/19/2020 5:18:53 AM
ResourceId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Network/virtualNetworks/RG-Tags-vnet
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Authorization/policyAssignments/37ce239ae4304622914f0c77
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
ComplianceState : NonCompliant
SubscriptionId : {subscriptionId}
ResourceType : /Microsoft.Network/virtualNetworks
ResourceLocation : eastus
ResourceGroup : RG-Tags
ResourceTags : tbd
PolicyAssignmentName : 37ce239ae4304622914f0c77
PolicyAssignmentOwner : tbd
PolicyAssignmentParameters : {"tagName":{"value":"costCenter"},"tagValue":{"value":"Contoso-Test"}}
PolicyAssignmentScope : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags
PolicyDefinitionName : 1e30110a-5ceb-460c-a204-c1c3969c6d62
PolicyDefinitionAction : deny
PolicyDefinitionCategory : tbd
TenantId : {tenantId}
PrincipalOid : {principalOid}
Bidang PrincipalOid
dapat digunakan untuk mendapatkan pengguna tertentu dengan cmdlet Get-AzADUser
Azure PowerShell . Ganti {principalOid}
dengan respons yang Anda dapatkan dari contoh sebelumnya.
PS> (Get-AzADUser -ObjectId {principalOid}).DisplayName
Trent Baker
Log Azure Monitor
Jika Anda memiliki ruang kerja Analitik Log dengan AzureActivity
dari solusi Analitik Log Aktivitas yang terkait dengan langganan Anda, Anda juga bisa melihat hasil yang tidak sesuai syarat dari evaluasi sumber daya baru dan yang diperbarui menggunakan kueri Kusto sederhana dan tabel AzureActivity
. Dengan detail di log Azure Monitor, pemberitahuan bisa dikonfigurasi untuk mengawasi ketidakpatuhan.
Azure Resource Graph
Rekaman kepatuhan disimpan di Azure Resource Graph (ARG). Data dapat diekspor dari kueri ARG untuk membentuk dasbor yang disesuaikan berdasarkan cakupan dan kebijakan yang diinginkan. Tinjau kueri sampel kami untuk mengekspor data kepatuhan melalui ARG.
Langkah berikutnya
- Tinjau sampel pada sampel Azure Policy.
- Tinjau struktur definisi Azure Policy.
- Tinjau Memahami efek kebijakan.
- Memahami cara membuat kebijakan secara terprogram.
- Pelajari cara memulihkan sumber daya yang tidak sesuai syarat.
- Tinjau apa itu grup manajemen Atur sumber daya Anda dengan grup manajemen Azure.