次の方法で共有


Event Grid リソースへのアクセスの承認

Azure Event Grid を使用すると、イベント サブスクリプションの一覧表示、新しいサブスクリプションの作成、キーの生成など、さまざまな 管理操作 に対して、さまざまなユーザーが持つアクセスレベルを制御できます。 Event Grid では、Azure ロールベースのアクセス制御 (Azure RBAC) が使用されます。

操作の種類

Azure Event Grid でサポートされている操作の一覧を表示するには、次の Azure CLI コマンドを実行します。

az provider operation show --namespace Microsoft.EventGrid

次の操作は秘密情報を返す可能性がありますが、これは通常の読み取り操作からはフィルターで除外されます。 これらの操作へのアクセスを制限します。

  • Microsoft.EventGrid/eventSubscriptions/getFullUrl/action
  • Microsoft.EventGrid/topics/listKeys/action
  • Microsoft.EventGrid/topics/regenerateKey/action

組み込みロール

Event Grid には、次の 3 つの組み込みのロールが用意されています。

役割 説明
EventGrid EventSubscription Reader Event Grid のイベント サブスクリプションを読み取ることができます。
EventGrid EventSubscription Contributor Event Grid のイベント サブスクリプション操作を管理できます。
EventGrid Contributor Event Grid リソースの作成と管理を行うことができます。
EventGrid Data Sender Event Grid トピックにイベントを送信できます。

Event Grid サブスクリプション閲覧者 ロールと Event Grid サブスクリプション共同作成者 ロールは、イベント サブスクリプションを管理するためのものです。 これらは、イベント ドメイン内のトピックをサブスクライブするために必要なアクセス許可をユーザーに提供するため、イベント ドメインを実装するときに重要です。 これらのロールはイベント サブスクリプションだけを対象としたものであり、トピックの作成などのアクションに対するアクセス権は付与されません。

Event Grid 共同作成者 ロールを使用すると、Event Grid リソースを作成および管理できます。

注意

ロールに関する詳細情報を提供する記事に移動するには、最初の列にあるリンクを選択します。 RBAC ロールにユーザーまたはグループを割り当てる方法については、こちらの記事を参照してください。

カスタム ロール

組み込みロールとは異なるアクセス許可を指定する必要がある場合は、カスタム ロールを作成します。

次のサンプル Event Grid ロール定義では、ユーザーに異なるアクセス許可が付与されます。 これらのカスタム ロールは、イベント サブスクリプションよりも広範なアクセス権を付与するため、組み込みロールとは異なります。

  • 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: すべての 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>"
  ]
}

カスタム ロールは、PowerShellAzure CLIREST API で作成できます。

保存時の暗号化

Event Grid サービスは、Microsoft マネージド キーを使用してディスクに書き込まれたすべてのイベントまたはデータを暗号化し、保存時に暗号化されるようにします。 さらに、イベントまたはデータが保持される最大期間は、 Event Grid の再試行ポリシーに従って 24 時間です。 Event Grid は、24 時間後、またはイベントの有効期間のいずれか小さい方の時間を過ぎると、すべてのイベントまたはデータを自動的に削除します。

イベント サブスクリプション用のアクセス許可

WebHook ではないイベント ハンドラー (イベント ハブやキュー ストレージなど) を使用する場合は、そのリソースへの書き込みアクセス権が必要です。 このアクセス許可のチェックにより、未認証のユーザーはリソースにイベントを送信できなくなります。

イベント ソースであるリソース上において、ユーザーは Microsoft.EventGrid/EventSubscriptions/Write アクセス許可を持っている必要があります。 リソースのスコープで新しいサブスクリプションを作成するため、このアクセス許可が必要です。 必要なリソースは、サブスクライブしているのがシステム トピックかカスタム トピックかによって異なります。 ここでは、この 2 つの種類について説明します。

システム トピック (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 の紹介に関する記事を参照してください。