Autoryzowanie dostępu do zasobów usługi Event Grid

Usługa Azure Event Grid umożliwia kontrolowanie poziomu dostępu dla różnych użytkowników w celu wykonywania różnych operacji zarządzania, takich jak wyświetlanie listy subskrypcji zdarzeń, tworzenie nowych i generowanie kluczy. Usługa Event Grid używa kontroli dostępu opartej na rolach platformy Azure (Azure RBAC).

Rodzaje operacji

Aby uzyskać listę operacji obsługiwanych przez usługę Azure Event Grid, uruchom następujące polecenie interfejsu wiersza polecenia platformy Azure:

az provider operation show --namespace Microsoft.EventGrid

Następujące operacje zwracają potencjalnie tajne informacje, które są filtrowane z normalnych operacji odczytu. Zalecamy ograniczenie dostępu do tych operacji.

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

Wbudowane role

Usługa Event Grid udostępnia następujące trzy wbudowane role.

Rola opis
EventGrid EventSubscription Reader Umożliwia odczytywanie subskrypcji zdarzeń usługi Event Grid.
EventGrid EventSubscription Contributor Umożliwia zarządzanie operacjami subskrypcji zdarzeń usługi Event Grid.
EventGrid Contributor Umożliwia tworzenie zasobów usługi Event Grid i zarządzanie nimi.
EventGrid Data Sender Umożliwia wysyłanie zdarzeń do tematów usługi Event Grid.

Role Czytelnik subskrypcji usługi Event Grid i Współautor subskrypcji usługi Event Grid służą do zarządzania subskrypcjami zdarzeń. Są one ważne podczas implementowania domen zdarzeń, ponieważ dają użytkownikom uprawnienia, których potrzebują do subskrybowania tematów w domenie zdarzeń. Te role koncentrują się na subskrypcjach zdarzeń i nie udzielają dostępu do akcji, takich jak tworzenie tematów.

Rola Współautor usługi Event Grid umożliwia tworzenie zasobów usługi Event Grid i zarządzanie nimi.

Uwaga

Wybierz linki w pierwszej kolumnie, aby przejść do artykułu zawierającego więcej szczegółów na temat roli. Aby uzyskać instrukcje dotyczące przypisywania użytkowników lub grup do ról RBAC, zobacz ten artykuł.

Role niestandardowe

Jeśli musisz określić uprawnienia inne niż role wbudowane, utwórz role niestandardowe.

Poniżej przedstawiono przykładowe definicje ról usługi Event Grid, które umożliwiają użytkownikom wykonywanie różnych akcji. Te role niestandardowe różnią się od ról wbudowanych, ponieważ zapewniają szerszy dostęp niż tylko subskrypcje zdarzeń.

EventGridReadOnlyRole.json: zezwalaj tylko na operacje tylko do odczytu.

{
  "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: Zezwalaj na akcje postów z ograniczeniami, ale nie zezwalaj na akcje usuwania.

{
  "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: zezwala na wszystkie akcje usługi 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>"
  ]
}

Role niestandardowe można tworzyć za pomocą programu PowerShell, interfejsu wiersza polecenia platformy Azure i interfejsu REST.

Szyfrowanie w spoczynku

Wszystkie zdarzenia lub dane zapisane na dysku przez usługę Event Grid są szyfrowane za pomocą klucza zarządzanego przez firmę Microsoft zapewniającego, że są szyfrowane w spoczynku. Ponadto maksymalny czas przechowywania zdarzeń lub danych wynosi 24 godziny zgodnie z zasadami ponawiania próby usługi Event Grid. Usługa Event Grid automatycznie usunie wszystkie zdarzenia lub dane po 24 godzinach lub czas wygaśnięcia zdarzenia, w zależności od tego, która z tych wartości jest mniejsza.

Uprawnienia do subskrypcji zdarzeń

Jeśli używasz procedury obsługi zdarzeń, która nie jest elementem WebHook (takim jak centrum zdarzeń lub magazynem kolejek), musisz mieć dostęp do zapisu do tego zasobu. Ta kontrola uprawnień uniemożliwia nieautoryzowanemu użytkownikowi wysyłanie zdarzeń do zasobu.

Musisz mieć uprawnienie Microsoft.EventGrid/EventSubscriptions/Write dla zasobu, który jest źródłem zdarzeń. Potrzebujesz tego uprawnienia, ponieważ piszesz nową subskrypcję w zakresie zasobu. Wymagany zasób różni się w zależności od tego, czy subskrybujesz temat systemowy, czy temat niestandardowy. Oba typy opisano w tej sekcji.

Tematy systemowe (wydawcy usług platformy Azure)

W przypadku tematów systemowych, jeśli nie jesteś właścicielem lub współautorem zasobu źródłowego, musisz mieć uprawnienia do zapisywania nowej subskrypcji zdarzeń w zakresie zasobu publikującego zdarzenie. Format zasobu to: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}

Aby na przykład zasubskrybować zdarzenie na koncie magazynu o nazwie myacct, potrzebne jest uprawnienie Microsoft.EventGrid/EventSubscriptions/Write: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/myacct

Tematy niestandardowe

W przypadku tematów niestandardowych musisz mieć uprawnienia do pisania nowej subskrypcji zdarzeń w zakresie tematu usługi Event Grid. Format zasobu to: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.EventGrid/topics/{topic-name}

Aby na przykład zasubskrybować temat niestandardowy o nazwie mytopic, potrzebne jest uprawnienie Microsoft.EventGrid/EventSubscriptions/Write: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.EventGrid/topics/mytopic

Następne kroki