Auktorisera åtkomst till Event Grid-resurser

Med Azure Event Grid kan du styra vilken åtkomstnivå som ges till olika användare för att utföra olika hanteringsåtgärder , till exempel lista händelseprenumerationer, skapa nya och generera nycklar. Event Grid använder rollbaserad åtkomstkontroll i Azure (Azure RBAC).

Åtgärdstyper

Kör följande Azure CLI-kommando för en lista över åtgärder som stöds av Azure Event Grid:

az provider operation show --namespace Microsoft.EventGrid

Följande åtgärder returnerar potentiellt hemlig information som filtreras bort från normala läsåtgärder. Vi rekommenderar att du begränsar åtkomsten till dessa åtgärder.

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

Inbyggda roller

Event Grid innehåller följande tre inbyggda roller.

Roll beskrivning
EventGrid EventSubscription Reader Låter dig läsa Event Grid-händelseprenumerationer.
EventGrid EventSubscription Contributor Gör att du kan hantera eventprenumerationsåtgärder för Event Grid.
EventGrid Contributor Gör att du kan skapa och hantera Event Grid-resurser.
EventGrid Data Sender Låter dig skicka händelser till Event Grid-ämnen.

Rollerna Event Grid-prenumerationsläsare och Event Grid-prenumerationsdeltagare används för att hantera händelseprenumerationer. De är viktiga när du implementerar händelsedomäner eftersom de ger användarna de behörigheter de behöver för att prenumerera på ämnen i din händelsedomän. De här rollerna fokuserar på händelseprenumerationer och beviljar inte åtkomst för åtgärder som att skapa ämnen.

Med rollen Event Grid-deltagare kan du skapa och hantera Event Grid-resurser.

Kommentar

Välj länkar i den första kolumnen för att navigera till en artikel som innehåller mer information om rollen. Anvisningar om hur du tilldelar användare eller grupper till RBAC-roller finns i den här artikeln.

Anpassade roller

Om du behöver ange behörigheter som skiljer sig från de inbyggda rollerna skapar du anpassade roller.

Följande är exempel på event grid-rolldefinitioner som gör det möjligt för användare att vidta olika åtgärder. Dessa anpassade roller skiljer sig från de inbyggda rollerna eftersom de ger bredare åtkomst än bara händelseprenumerationer.

EventGridReadOnlyRole.json: Tillåt endast skrivskyddade åtgärder.

{
  "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: Tillåt begränsade poståtgärder men tillåt inte borttagningsåtgärder.

{
  "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: Tillåter alla Event Grid-åtgärder.

{
  "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>"
  ]
}

Du kan skapa anpassade roller med PowerShell, Azure CLI och REST.

Kryptering i vila

Alla händelser eller data som skrivs till disk av Event Grid-tjänsten krypteras av en Microsoft-hanterad nyckel som säkerställer att den krypteras i vila. Dessutom är den maximala tidsperiod som händelser eller data bevaras 24 timmar i enlighet med Event Grid-återförsöksprincipen. Event Grid tar automatiskt bort alla händelser eller data efter 24 timmar, eller händelsens time-to-live, beroende på vilket som är mindre.

Behörigheter för händelseprenumerationer

Om du använder en händelsehanterare som inte är en WebHook (till exempel en händelsehubb eller kölagring) behöver du skrivåtkomst till den resursen. Den här behörighetskontrollen hindrar en obehörig användare från att skicka händelser till din resurs.

Du måste ha behörigheten Microsoft.EventGrid/EventSubscriptions/Write på den resurs som är händelsekällan. Du behöver den här behörigheten eftersom du skriver en ny prenumeration i resursomfånget. Den nödvändiga resursen skiljer sig åt beroende på om du prenumererar på ett systemämne eller ett anpassat ämne. Båda typerna beskrivs i det här avsnittet.

Systemämnen (Azure-tjänstutgivare)

Om du inte är ägare eller deltagare i källresursen för systemämnen behöver du behörighet att skriva en ny händelseprenumeration i omfånget för resurspublicering av händelsen. Resursens format är: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}

Om du till exempel vill prenumerera på en händelse på ett lagringskonto med namnet myacct behöver du behörigheten Microsoft.EventGrid/EventSubscriptions/Write på: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/myacct

Anpassade ämnen

För anpassade ämnen behöver du behörighet att skriva en ny händelseprenumeration i omfånget för Event Grid-ämnet. Resursens format är: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.EventGrid/topics/{topic-name}

Om du till exempel vill prenumerera på ett anpassat ämne med namnet mytopic behöver du behörigheten Microsoft.EventGrid/EventSubscriptions/Write på: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.EventGrid/topics/mytopic

Nästa steg