Bereaksi terhadap acara perubahan status Azure Policy
Acara Azure Policy mengaktifkan aplikasi untuk bereaksi terhadap perubahan status. Integrasi ini dilakukan tanpa perlu kode yang rumit atau layanan pemungutan suara yang mahal dan tidak efisien. Sebagai gantinya, acara didorong melalui Azure Event Grid kepada pelanggan seperti Azure Functions, Azure Logic Apps, atau bahkan ke pendengar http kustom Anda sendiri. Anda hanya membayar sesuai penggunaan.
Acara Azure Policy dikirim ke Azure Event Grid, yang menyediakan layanan pengiriman yang andal untuk aplikasi Anda melalui kebijakan coba lagi yang kaya dan pengiriman surat mati. Event Grid mengurus perutean, pemfilteran, dan multicasting peristiwa yang tepat ke tujuan melalui langganan Event Grid. Untuk mempelajari selengkapnya, lihat Pengiriman dan coba lagi pesan Event Grid.
Catatan
acara perubahan status Azure Policy dikirim ke Azure Event Grid setelah pemicu evaluasi menyelesaikan evaluasi sumber daya.
Pemberitahuan Event Grid untuk perubahan status kepatuhan sumber daya dapat memakan waktu hingga 20 menit.
Manfaat Event Grid
Event Grid memiliki beberapa manfaat bagi pelanggan dan layanan di ekosistem Azure:
- Otomatisasi: Untuk tetap terkini dengan lingkungan kebijakan Anda, Event Grid menawarkan mekanisme otomatis untuk menghasilkan pemberitahuan dan memicu tugas tergantung pada status kepatuhan.
- Pengiriman tahan lama: Agar layanan dan aplikasi pengguna merespons secara real-time terhadap peristiwa kepatuhan kebijakan, Event Grid berusaha menawarkan peristiwa kebijakan dengan latensi minimum. Event Grid mencoba kembali transmisi peristiwa jika titik akhir pelanggan gagal mengakui penerimaannya atau jika tidak, sesuai dengan jadwal coba lagi yang telah ditentukan dan kebijakan coba lagi.
- Produsen peristiwa kustom: Produsen dan konsumen peristiwa Event Grid tidak perlu menjadi Azure atau layanan Microsoft. Aplikasi eksternal dapat menerima pemberitahuan, menunjukkan pembuatan tugas remediasi atau mengumpulkan pesan tentang siapa yang merespons perubahan status. Lihat Status kebijakan rute mengubah acara menjadi Azure Event Grid dengan Azure CLI untuk tutorial lengkap.
Ada dua entitas utama saat menggunakan Event Grid:
- Peristiwa: Peristiwa ini bisa menjadi apa pun yang mungkin ingin direact oleh pengguna untuk sumber daya Azure. Misalnya, jika status kepatuhan kebijakan dibuat, diubah, dan dihapus untuk sumber daya seperti komputer virtual atau akun penyimpanan.
- Langganan Event Grid: Langganan peristiwa ini adalah entitas yang dikonfigurasi pengguna yang mengarahkan serangkaian peristiwa yang tepat dari penerbit ke pelanggan. Langganan peristiwa dapat memfilter peristiwa berdasarkan jalur sumber daya tempat peristiwa berasal dan jenis peristiwa. Selain itu, Langganan Peristiwa juga dapat memfilter berdasarkan cakupan antara langganan Azure dan grup Manajemen.
Skenario peristiwa Azure Policy umum adalah melacak saat status kepatuhan sumber daya berubah selama evaluasi kebijakan. Arsitektur berbasis peristiwa adalah cara yang efisien untuk bereaksi terhadap perubahan ini dan membantu dalam reaksi berbasis peristiwa terhadap perubahan status kepatuhan.
Skenario lain adalah memicu tugas remediasi secara otomatis tanpa memilih buat tugas remediasi secara manual di halaman kebijakan. Event Grid memeriksa status kepatuhan dan sumber daya yang saat ini tidak patuh dapat diperbaiki. Pelajari selengkapnya tentang struktur remediasi. Remediasi memerlukan identitas dan kebijakan terkelola harus berlaku modify
atau deployIfNotExists
berlaku. Pelajari selengkapnya tentang jenis efek.
Event Grid sangat membantu sebagai sistem audit untuk menyimpan perubahan status dan memahami penyebab ketidakpatuhan dari waktu ke waktu. Skenario untuk Event Grid tidak ada habisnya dan berdasarkan motivasinya, Event Grid dapat dikonfigurasi.
Tipe kejadian yang tersedia
Kebijakan Azure mengeluarkan jenis kejadian berikut ini:
Jenis peristiwa | Deskripsi |
---|---|
Microsoft.PolicyInsights.PolicyStateCreated | Dimunculkan ketika status kepatuhan kebijakan dibuat. |
Microsoft.PolicyInsights.PolicyStateChanged | Dimunculkan ketika status kepatuhan kebijakan diubah. |
Microsoft.PolicyInsights.PolicyStateDeleted | Dimunculkan ketika status kepatuhan kebijakan dihapus. |
Properti kejadian
Sebuah peristiwa memiliki data tingkat atas berikut ini:
Properti | Tipe | Deskripsi |
---|---|---|
topic |
string | Jalur sumber daya lengkap ke sumber kejadian. Bidang ini tidak dapat ditulis. Event Grid memberikan nilai ini. |
subject |
string | ID sumber daya yang sepenuhnya memenuhi syarat untuk perubahan status kepatuhan, termasuk nama sumber daya dan jenis sumber daya. Menggunakan format, /subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName> |
eventType |
string | Salah satu jenis kejadian terdaftar untuk sumber kejadian ini. |
eventTime |
string | Waktu peristiwa dibuat berdasarkan waktu UTC penyedia. |
id |
string | Pengidentifikasi unik untuk peristiwa tersebut. |
data |
object | Data acara Azure Policy. |
dataVersion |
string | Versi skema objek data. Penerbit mendefinisikan versi skema. |
metadataVersion |
string | Versi skema metadata kejadian. Event Grid mendefinisikan skema properti tingkat atas. Event Grid memberikan nilai ini. |
Objek data memiliki properti berikut:
Properti | Tipe | Deskripsi |
---|---|---|
timestamp |
string | Waktu (dalam UTC) sumber daya dipindai oleh Azure Policy. Untuk memesan acara, gunakan properti ini alih-alih properti eventTime atau time tingkat atas. |
policyAssignmentId |
string | ID sumber daya penugasan kebijakan. |
policyDefinitionId |
string | ID sumber daya dari definisi kebijakan. |
policyDefinitionReferenceId |
string | ID referensi untuk definisi kebijakan di dalam definisi inisiatif, jika penugasan kebijakan adalah untuk inisiatif. Mungkin kosong. |
complianceState |
string | Status kepatuhan sumber daya sehubungan dengan penugasan kebijakan. |
subscriptionId |
string | ID langganan sumber daya. |
complianceReasonCode |
string | Kode alasan kepatuhan. Mungkin kosong. |
Contoh peristiwa
Contoh berikut memperlihatkan skema kejadian yang dibuat status kebijakan yang dicakup di tingkat langganan:
[{
"id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
"topic": "/subscriptions/<SubscriptionID>",
"subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
"data": {
"timestamp": "2021-03-27T18:37:42.4496956Z",
"policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
"policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
"policyDefinitionReferenceId": "",
"complianceState": "NonCompliant",
"subscriptionId": "<subscription-id>",
"complianceReasonCode": ""
},
"eventType": "Microsoft.PolicyInsights.PolicyStateCreated",
"eventTime": "2021-03-27T18:37:42.5241536Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
Skema untuk status kebijakan mengubah peristiwa yang tercakup pada tingkat langganan serupa:
[{
"id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
"topic": "/subscriptions/<SubscriptionID>",
"subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
"data": {
"timestamp": "2021-03-27T18:37:42.4496956Z",
"policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
"policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
"policyDefinitionReferenceId": "",
"complianceState": "NonCompliant",
"subscriptionId": "<subscription-id>",
"complianceReasonCode": ""
},
"eventType": "Microsoft.PolicyInsights.PolicyStateChanged",
"eventTime": "2021-03-27T18:37:42.5241536Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
Contoh berikut memperlihatkan skema kejadian yang dibuat oleh status kebijakan yang tercakup pada tingkat grup pengelola:
[{
"id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
"topic": "/tenants/<tenantId>/providers/Microsoft.Management/managementGroups/<managementGroupId>",
"subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
"data": {
"timestamp": "2021-03-27T18:37:42.4496956Z",
"policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
"policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
"policyDefinitionReferenceId": "",
"complianceState": "NonCompliant",
"subscriptionId": "<subscription-id>",
"complianceReasonCode": ""
},
"eventType": "Microsoft.PolicyInsights.PolicyStateCreated",
"eventTime": "2021-03-27T18:37:42.5241536Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
Skema untuk status kebijakan mengubah peristiwa yang tercakup pada tingkat grup pengelola serupa:
[{
"id": "5829794FCB5075FCF585476619577B5A5A30E52C84842CBD4E2AD73996714C4C",
"topic": "/tenants/<tenantId>/providers/Microsoft.Management/managementGroups/<managementGroupId>",
"subject": "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/<ProviderNamespace>/<ResourceType>/<ResourceName>",
"data": {
"timestamp": "2021-03-27T18:37:42.4496956Z",
"policyAssignmentId": "<policy-assignment-scope>/providers/microsoft.authorization/policyassignments/<policy-assignment-name>",
"policyDefinitionId": "<policy-definition-scope>/providers/microsoft.authorization/policydefinitions/<policy-definition-name>",
"policyDefinitionReferenceId": "",
"complianceState": "NonCompliant",
"subscriptionId": "<subscription-id>",
"complianceReasonCode": ""
},
"eventType": "Microsoft.PolicyInsights.PolicyStateChanged",
"eventTime": "2021-03-27T18:37:42.5241536Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
Praktik untuk memakai acara
Aplikasi yang menangani acara Azure Policy harus mengikuti praktik yang direkomendasikan ini:
- Beberapa langganan dapat dikonfigurasi untuk merutekan acara ke penanganan acara yang sama, jadi jangan anggap acara berasal dari sumber tertentu. Sebagai gantinya, periksa topik pesan untuk memastikan penetapan kebijakan, definisi kebijakan, dan sumber daya acara perubahan status adalah untuk.
- Periksa
eventType
dan jangan berasumsi bahwa semua acara yang Anda terima adalah jenis yang Anda harapkan. - Gunakan
data.timestamp
untuk menentukan urutan acara dalam Azure Policy, bukan tingkat ataseventTime
atautime
properti. - Gunakan bidang subjek untuk mengakses sumber daya yang memiliki perubahan status kebijakan.
Langkah berikutnya
Pelajari selengkapnya tentang Azure Event Grid dan berikan acara perubahan status Azure Policy kesempatan: