授與事件方格資源的存取權
Azure 事件方格可讓您控制指定不同使用者執行各種管理作業的存取層級,例如:列出事件訂閱、建立新訂閱,以及產生金鑰。 事件方格使用 Azure 角色型存取控制 (Azure RBAC)。
作業類型
如需 Azure 事件方格支援的作業清單,請執行下列 Azure CLI 命令:
az provider operation show --namespace Microsoft.EventGrid
下列三種作業可能會傳回祕密資訊,該資訊在一般讀取作業時會進行篩選。 建議您限制對這些作業的存取。
- Microsoft.EventGrid/eventSubscriptions/getFullUrl/action
- Microsoft.EventGrid/topics/listKeys/action
- Microsoft.EventGrid/topics/regenerateKey/action
內建角色
事件方格提供下列三個內建角色。
角色 | 描述 |
---|---|
EventGrid EventSubscription Reader |
可讓您讀取事件方格事件訂用帳戶。 |
EventGrid EventSubscription Contributor |
可讓您管理事件方格事件訂用帳戶作業。 |
EventGrid Contributor |
可讓您建立和管理事件方格資源。 |
EventGrid Data Sender |
可讓您將事件傳送至事件方格主題。 |
事件方格訂閱讀者與事件方格訂閱參與者角色適用於管理事件訂閱。 這些角色在實作事件網域時非常重要,因為其會授與使用者所需權限以訂閱您事件網域中的主題。 這些角色著重於事件訂閱,不會授予建立主題等動作的存取權。
事件方格參與者角色可讓您建立及管理事件方格資源。
注意
選取第一個資料行中的連結,以巡覽至提供角色詳細資料的文章。 如需如何將使用者或群組指派給 RBAC 角色的指示,請參閱本文。
自訂角色
如果您需要指定不同於內建角色的權限,請建立自訂角色。
以下是允許使用者採取不同動作的事件方格角色定義範例。 這些自訂角色與內建角色不同,因為它們所授與的存取權會比只有事件訂閱更廣泛。
EventGridReadOnlyRole.json:只允許唯讀作業。
{
"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:允許限制的張貼動作,但不允許刪除。
{
"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:允許所有事件方格動作。
{
"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>"
]
}
您可以搭配 PowerShell、Azure CLI 和 REST 建立自訂角色。
待用加密
由事件方格服務寫入磁片的所有事件或資料都會由 Microsoft 管理的金鑰加密,以確保其會在待用時加密。 此外,遵循事件方格重試原則,事件或資料的保留時間上限為 24 小時。 事件方格會在 24 小時或事件存留時間 (以較短者為準) 之後自動刪除所有事件或資料。
事件訂用帳戶的權限
若您使用的事件處理常式不是 WebHook (如事件中樞或佇列儲存體),則需要該資源的寫入權限。 此權限檢查可防止未授權的使用者傳送事件給您的資源。
在事件來源的資源上,您必須具備 Microsoft.EventGrid/EventSubscriptions/Write 權限。 由於您所撰寫的新訂閱位於資源範圍內,因此需要此權限。 取決於您訂閱的是系統主題或自訂主題,所需資源會有所不同。 本節將說明這兩個類型。
系統主題 (Azure 服務發行者)
針對系統主題,若您不是來源資源的擁有者或參與者,則需要權限才能在發佈事件的資源範圍內撰寫新的事件訂閱。 資源格式為:/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}
舉例來說,若要訂閱名為 myacct 之儲存體帳戶上的事件,您需要 Microsoft.EventGrid/EventSubscriptions/Write 授予您此權限:/subscriptions/####/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/myacct
自訂主題
若您訂閱的是自訂主題,您需要取得在 Event Grid 主題範圍下寫入新事件訂閱的權限。 資源格式為:/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.EventGrid/topics/{topic-name}
舉例來說,若要訂閱名為mytopic 之自訂主題,您需要 Microsoft.EventGrid/EventSubscriptions/Write 授予您此權限:/subscriptions/####/resourceGroups/testrg/providers/Microsoft.EventGrid/topics/mytopic
下一步
- 如需 Event Grid 的簡介,請參閱關於 Event Grid