Memberi otorisasi akses ke sumber daya Event Grid

Azure Event Grid memungkinkan Anda mengontrol tingkat akses yang diberikan kepada pengguna yang berbeda untuk melakukan berbagai operasi manajemen seperti langganan peristiwa daftar, membuat yang baru, dan menghasilkan kunci. Event Grid menggunakan kontrol akses berbasis peran Azure (Azure RBAC).

Jenis operasi

Untuk daftar operasi yang didukung oleh Azure Event Grid, jalankan perintah Azure CLI berikut ini:

az provider operation show --namespace Microsoft.EventGrid

Operasi berikut mengembalikan informasi yang berpotensi rahasia, yang difilter dari operasi baca normal. Kami menyarankan agar Anda membatasi akses ke operasi ini.

  • Microsoft.EventGrid/eventSubscriptions/getFullUrl/action
  • Microsoft.EventGrid/topik/listKeys/action
  • Microsoft.EventGrid/topik/listKeys/action

Peran bawaan

Event Grid menyediakan tiga peran bawaan berikut.

Peran Deskripsi
EventGrid EventSubscription Reader Memungkinkan Anda membaca langganan kejadian Azure Event Grid.
EventGrid EventSubscription Contributor Memungkinkan Anda mengelola operasi langganan kejadian Azure Event Grid.
EventGrid Contributor Memungkinkan Anda membuat dan mengelola sumber daya Event Grid.
EventGrid Data Sender Memungkinkan Anda mengirim kejadian ke topik Event Grid.

Peran Pembaca Langganan Event Grid dan Kontributor Langganan Event Grid adalah untuk mengelola langganan peristiwa. Mereka penting saat menerapkan domain kejadian karena mereka memberi pengguna izin yang mereka butuhkan untuk berlangganan topik di domain kejadian Anda. Peran ini difokuskan pada langganan kejadian dan tidak memberikan akses untuk tindakan seperti membuat topik.

Peran Kontributor Event Grid memungkinkan Anda membuat dan mengelola sumber daya Event Grid.

Catatan

Pilih tautan di kolom pertama untuk menavigasi ke artikel yang menyediakan detail selengkapnya tentang peran tersebut. Untuk petunjuk tentang cara menetapkan pengguna atau grup ke peran RBAC, lihat artikel ini.

Peran kustom

Jika Anda perlu menentukan izin yang berbeda dari peran bawaan, buat peran kustom.

Berikut ini adalah contoh definisi peran Azure Event Grid yang memungkinkan pengguna untuk melakukan tindakan yang berbeda. Peran kustom ini berbeda dari peran bawaan karena mereka memberikan akses yang lebih luas daripada hanya langganan kejadian.

EventGridReadOnlyRole.json: Hanya mengizinkan operasi baca saja.

{
  "Name": "Event grid read only role",
  "Id": "7C0B6B59-A278-4B62-BA19-411B70753856",
  "IsCustom": true,
  "Description": "Event grid read only role",
  "Actions": [
    "Microsoft.EventGrid/*/read"
  ],
  "NotActions": [
  ],
  "AssignableScopes": [
    "/subscriptions/<Subscription Id>"
  ]
}

EventGridNoDeleteListKeysRole.json: Perbolehkan tindakan postingan yang dibatasi tetapi larang tindakan hapus.

{
  "Name": "Event grid No Delete Listkeys role",
  "Id": "B9170838-5F9D-4103-A1DE-60496F7C9174",
  "IsCustom": true,
  "Description": "Event grid No Delete Listkeys role",
  "Actions": [
    "Microsoft.EventGrid/*/write",
    "Microsoft.EventGrid/eventSubscriptions/getFullUrl/action"
    "Microsoft.EventGrid/topics/listkeys/action",
    "Microsoft.EventGrid/topics/regenerateKey/action"
  ],
  "NotActions": [
    "Microsoft.EventGrid/*/delete"
  ],
  "AssignableScopes": [
    "/subscriptions/<Subscription id>"
  ]
}

EventGridContributorRole.json: Memungkinkan semua tindakan Event Grid.

{
  "Name": "Event grid contributor role",
  "Id": "4BA6FB33-2955-491B-A74F-53C9126C9514",
  "IsCustom": true,
  "Description": "Event grid contributor role",
  "Actions": [
    "Microsoft.EventGrid/*/write",
    "Microsoft.EventGrid/*/delete",
    "Microsoft.EventGrid/topics/listkeys/action",
    "Microsoft.EventGrid/topics/regenerateKey/action",
    "Microsoft.EventGrid/eventSubscriptions/getFullUrl/action"
  ],
  "NotActions": [],
  "AssignableScopes": [
    "/subscriptions/<Subscription id>"
  ]
}

Anda dapat membuat peran kustom dengan PowerShell, Azure CLI, dan REST.

Enkripsi saat tidak aktif

Semua peristiwa atau data yang ditulis ke disk oleh layanan Azure Event Grid dienkripsi oleh kunci yang dikelola Microsoft yang memastikan bahwa itu dienkripsi saat istirahat. Selain itu, periode waktu maksimum yang disimpan peristiwa atau data adalah 24 jam kepatuhan dengan kebijakan coba lagi Event Grid. Event Grid akan secara otomatis menghapus semua peristiwa atau data setelah 24 jam, atau kejadian time-to-live, mana yang kurang.

Izin untuk langganan kejadian

Jika Anda menggunakan penanganan aktivitas yang bukan WebHook (seperti hub kejadian atau penyimpanan antrean), Anda memerlukan akses tulis ke sumber daya tersebut. Pemeriksaan izin ini mencegah pengguna yang tidak sah mengirim peristiwa ke sumber daya Anda.

Anda harus memiliki izin Microsoft.EventGrid/EventSubscriptions/Write pada sumber daya yang merupakan sumber peristiwa. Anda memerlukan izin ini karena Anda sedang menulis langganan baru di lingkup sumber daya. Sumber daya yang diperlukan berbeda berdasarkan apakah Anda berlangganan topik sistem atau topik kustom. Kedua jenis dijelaskan di bagian ini.

Topik sistem (penerbit layanan Azure)

Untuk topik sistem, jika Anda bukan pemilik atau kontributor sumber daya sumber, Anda memerlukan izin untuk menulis langganan peristiwa baru di cakupan sumber daya yang menerbitkan peristiwa. Format sumber daya adalah: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}

Misalnya, untuk berlangganan kejadian di akun penyimpanan bernama myacct, Anda memerlukan izin Microsoft.EventGrid/EventSubscriptions/Write pada: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/myacct

Topik kustom

Untuk topik kustom, Anda memerlukan izin untuk menulis langganan peristiwa baru di cakupan topik Event Grid. Format sumber daya adalah: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.EventGrid/topics/{topic-name}

Misalnya, untuk berlangganan topik kustom bernama mytopic, Anda memerlukan izin Microsoft.EventGrid/EventSubscriptions/Write pada: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.EventGrid/topics/mytopic

Langkah berikutnya