Event Grid zabezpieczeń i uwierzytelnianiaEvent Grid security and authentication

Usługa Azure Event Grid ma trzy typy uwierzytelniania:Azure Event Grid has three types of authentication:

  • Dostarczanie zdarzeń elementu WebHookWebHook event delivery
  • Subskrypcje zdarzeńEvent subscriptions
  • Publikowanie tematu niestandardowegoCustom topic publishing

Dostarczanie zdarzeń elementu WebHookWebHook Event delivery

Elementy Webhook są jednym z wielu sposobów, aby odbierać zdarzenia z usługi Azure Event Grid.Webhooks are one of the many ways to receive events from Azure Event Grid. Gdy nowe zdarzenie jest gotowy, usługi Event Grid wysyła żądanie HTTP do punktu końcowego skonfigurowanego ze zdarzeniem w treści żądania.When a new event is ready, Event Grid service POSTs an HTTP request to the configured endpoint with the event in the request body.

Podobnie jak wielu innych usług, które obsługują elementy webhook usługi Event Grid wymaga udowodnić własność punktu końcowego usługi elementu Webhook, zanim zacznie dostarczanie zdarzeń do określonego punktu końcowego.Like many other services that support webhooks, Event Grid requires you to prove ownership of your Webhook endpoint before it starts delivering events to that endpoint. To wymaganie zapobiega przepełnieniu punktu końcowego usługi za pomocą zdarzeń przez złośliwego użytkownika.This requirement prevents a malicious user from flooding your endpoint with events. Gdy używasz dowolnego z trzech usług platformy Azure wymienionych poniżej infrastruktury platformy Azure automatycznie obsługuje tej weryfikacji:When you use any of the three Azure services listed below, the Azure infrastructure automatically handles this validation:

Jeśli używasz dowolnego typu punktu końcowego, takie jak wyzwalacz HTTP na podstawie funkcji platformy Azure, swój kod punktu końcowego musi wziąć udział w uzgadniania weryfikacji za pomocą usługi Event Grid.If you're using any other type of endpoint, such as an HTTP trigger based Azure function, your endpoint code needs to participate in a validation handshake with Event Grid. Usługa Event Grid obsługuje sprawdzanie poprawności subskrypcji na dwa sposoby.Event Grid supports two ways of validating the subscription.

  1. Uzgadnianie ValidationCode (programowe) : Jeśli dla punktu końcowego usługi jest kontroli kodu źródłowego, ta metoda jest zalecana.ValidationCode handshake (programmatic): If you control the source code for your endpoint, this method is recommended. Tworzenie subskrypcji zdarzeń usługi Event Grid wysyła zdarzenie sprawdzania poprawności subskrypcji do punktu końcowego usługi.At the time of event subscription creation, Event Grid sends a subscription validation event to your endpoint. Schemat tego zdarzenia jest podobne do innych zdarzeń usługi Event Grid.The schema of this event is similar to any other Event Grid event. Zawiera części danych to zdarzenie validationCode właściwości.The data portion of this event includes a validationCode property. Aplikacja sprawdza, czy żądanie weryfikacji dotyczy subskrypcji zdarzeń oczekiwanego i funkcją kod sprawdzania poprawności do usługi Event Grid.Your application verifies that the validation request is for an expected event subscription, and echoes the validation code to Event Grid. Ten mechanizm uzgadniania jest obsługiwana we wszystkich wersjach usługi Event Grid.This handshake mechanism is supported in all Event Grid versions.

  2. Uzgadnianie ValidationURL (ręcznie) : W niektórych przypadkach nie można uzyskać dostęp do kodu źródłowego punktu końcowego w celu wykonania uzgadniania ValidationCode.ValidationURL handshake (manual): In certain cases, you can't access the source code of the endpoint to implement the ValidationCode handshake. Na przykład, jeśli używasz usługi innych firm (np. Zapier lub IFTTT), nie możesz programowo odpowiedzieć kodem sprawdzania poprawności.For example, if you use a third-party service (like Zapier or IFTTT), you can't programmatically respond with the validation code.

    Począwszy od wersji 2018-05-01-preview usługi Event Grid obsługuje uzgadniania ręcznej weryfikacji.Starting with version 2018-05-01-preview, Event Grid supports a manual validation handshake. Jeżeli tworzysz subskrypcję zdarzeń przy użyciu zestawu SDK lub narzędzia, która używa interfejsu API w wersji 2018-05-01-preview lub później, usługa Event Grid wysyła validationUrl właściwości w części danych zdarzeń sprawdzania poprawności subskrypcji.If you're creating an event subscription with an SDK or tool that uses API version 2018-05-01-preview or later, Event Grid sends a validationUrl property in the data portion of the subscription validation event. Aby ukończyć uzgadnianie, należy znaleźć tego adresu URL w danych zdarzeń i ręcznie Wyślij żądanie Pobierz do niego.To complete the handshake, find that URL in the event data and manually send a GET request to it. Można użyć klienta REST lub przeglądarki sieci web.You can use either a REST client or your web browser.

    Podany adres URL jest ważny przez 5 minut.The provided URL is valid for 5 minutes. W tym czasie jest stan aprowizacji subskrypcji zdarzeń AwaitingManualAction.During that time, the provisioning state of the event subscription is AwaitingManualAction. Jeśli nie wykonasz ręcznej weryfikacji w ciągu 5 minut, stanu aprowizacji jest równa Failed.If you don't complete the manual validation within 5 minutes, the provisioning state is set to Failed. Należy utworzyć subskrypcję zdarzeń ponownie, przed rozpoczęciem ręcznej weryfikacji.You'll have to create the event subscription again before starting the manual validation.

    Ten mechanizm uwierzytelniania wymaga również punkt końcowy elementu webhook, aby zwrócić kod stanu HTTP 200, tak aby wie, że WPIS dla zdarzenia sprawdzania poprawności został zaakceptowany, aby można było umieścić w trybie ręcznej weryfikacji.This authentication mechanism also requires the webhook endpoint to return an HTTP status code of 200 so that it knows that the POST for the validation event was accepted before it can be put in the manual validation mode. Innymi słowy Jeśli punkt końcowy zwraca 200, ale nie zwróci odpowiedź weryfikacji programowo, tryb jest przenoszone do trybu ręcznej weryfikacji.In other words, if the endpoint returns 200 but doesn’t return back a validation response programmatically, the mode is transitioned to the manual validation mode. W przypadku GET dotyczące sprawdzania poprawności adresu URL w ciągu 5 minut, uzgadniania weryfikacji uznaje się zakończy się powodzeniem.If there is a GET on the validation URL within 5 minutes, the validation handshake is considered to be successful.

Uwaga

Za pomocą certyfikatów z podpisem własnym do sprawdzania poprawności nie jest obsługiwane.Using self-signed certificates for validation isn't supported. Zamiast tego użyj podpisanego certyfikatu od urzędu certyfikacji (CA).Use a signed certificate from a certificate authority (CA) instead.

Szczegóły sprawdzania poprawnościValidation details

  • W momencie utworzenie/aktualizacja subskrypcji zdarzeń usługi Event Grid publikuje zdarzenie sprawdzania poprawności subskrypcji do docelowego punktu końcowego.At the time of event subscription creation/update, Event Grid posts a subscription validation event to the target endpoint.
  • Zdarzenie zawiera wartość nagłówka "Æg zdarzeń typu: SubscriptionValidation".The event contains a header value "aeg-event-type: SubscriptionValidation".
  • Treść zdarzeń ma ten sam schemat, jak inne zdarzenia usługi Event Grid.The event body has the same schema as other Event Grid events.
  • Typ zdarzenia właściwości zdarzenia Microsoft.EventGrid.SubscriptionValidationEvent.The eventType property of the event is Microsoft.EventGrid.SubscriptionValidationEvent.
  • Właściwości danych zdarzenia zawiera validationCode właściwości z ciągiem generowanym losowo.The data property of the event includes a validationCode property with a randomly generated string. Na przykład "validationCode: acb13...".For example, "validationCode: acb13…".
  • Dane zdarzenia zawierają również validationUrl właściwość adres URL ręcznej weryfikacji subskrypcji.The event data also includes a validationUrl property with a URL for manually validating the subscription.
  • Tablica zawiera tylko zdarzenia sprawdzania poprawności.The array contains only the validation event. Inne zdarzenia są wysyłane w oddzielnym żądaniu po odsyłania kod sprawdzania poprawności.Other events are sent in a separate request after you echo back the validation code.
  • Zestawy SDK płaszczyzny danych EventGrid mają klas odpowiadających danych zdarzeń sprawdzania poprawności subskrypcji i odpowiedź weryfikacji subskrypcji.The EventGrid DataPlane SDKs have classes corresponding to the subscription validation event data and subscription validation response.

W poniższym przykładzie przedstawiono przykładowy SubscriptionValidationEvent:An example SubscriptionValidationEvent is shown in the following example:

[{
  "id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66",
  "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "subject": "",
  "data": {
    "validationCode": "0000000000-0000-0000-0000-00000000000000",
    "validationUrl": "https://rp-eastus2.eventgrid.azure.net:553/eventsubscriptions/estest/validate?id=0000000000-0000-0000-0000-0000000000000&t=2018-04-26T20:30:54.4538837Z&apiVersion=2018-05-01-preview&token=1A1A1A1A"
  },
  "eventType": "Microsoft.EventGrid.SubscriptionValidationEvent",
  "eventTime": "2018-01-25T22:12:19.4556811Z",
  "metadataVersion": "1",
  "dataVersion": "1"
}]

Aby udowodnić własność punktu końcowego, odsyłania kod sprawdzania poprawności we właściwości validationResponse, jak pokazano w poniższym przykładzie:To prove endpoint ownership, echo back the validation code in the validationResponse property, as shown in the following example:

{
  "validationResponse": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6"
}

Musi zwrócić kod stanu odpowiedzi HTTP 200 OK.You must return an HTTP 200 OK response status code. HTTP 202 zaakceptowano nie został rozpoznany jako prawidłowa odpowiedź sprawdzania poprawności subskrypcji usługi Event Grid.HTTP 202 Accepted is not recognized as a valid Event Grid subscription validation response.

Lub można ręcznie sprawdzić poprawność subskrypcji, wysyłając żądanie GET do adresu URL sprawdzania poprawności.Or, you can manually validate the subscription by sending a GET request to the validation URL. Subskrypcja zdarzeń pozostaje w stanie oczekiwania, aż zweryfikowane.The event subscription stays in a pending state until validated.

Na przykład obsługi uzgadnianie sprawdzania poprawności subskrypcji, zobacz C# przykładowe.For an example of handling the subscription validation handshake, see a C# sample.

Lista kontrolnaChecklist

Podczas tworzenia subskrypcji zdarzeń, jeśli jest wyświetlany komunikat o błędzie, taki jak "próby sprawdź poprawność podanego punktu końcowego https://your-endpoint-here nie powiodło się.During event subscription creation, if you're seeing an error message such as "The attempt to validate the provided endpoint https://your-endpoint-here failed. Aby uzyskać więcej informacji, odwiedź stronę https://aka.ms/esvalidation ", wskazuje, że jest błąd uzgadnianie sprawdzania poprawności.For more details, visit https://aka.ms/esvalidation", it indicates that there's a failure in the validation handshake. Aby rozwiązać ten problem, sprawdź następujące aspekty:To resolve this error, verify the following aspects:

  • Masz kontrolę nad kodem aplikacji w docelowy punkt końcowy?Do you have control of the application code in the target endpoint? Na przykład jeśli piszesz wyzwalacz HTTP na podstawie funkcji platformy Azure, czy masz dostęp do kodu aplikacji, aby wprowadzić zmiany?For example, if you're writing an HTTP trigger based Azure Function, do you have access to the application code to make changes to it?

  • Jeśli masz dostęp do kodu aplikacji, należy zaimplementować mechanizm uzgadnianie ValidationCode na podstawie, jak pokazano w powyższym przykładzie.If you have access to the application code, implement the ValidationCode based handshake mechanism as shown in the sample above.

  • Jeśli nie masz dostępu do kodu aplikacji (na przykład, jeśli używasz usługi innej firmy, która obsługuje elementy webhook), można użyć mechanizmu ręczne uzgadniania.If you don't have access to the application code (for example, if you're using a third-party service that supports webhooks), you can use the manual handshake mechanism. Upewnij się, że używasz wersji interfejsu API 2018-05-01-preview lub nowszej (Instalacja rozszerzenia siatki zdarzeń wiersza polecenia platformy Azure) do odbierania validationUrl w przypadku sprawdzania poprawności.Make sure you're using the 2018-05-01-preview API version or later (install Event Grid Azure CLI extension) to receive the validationUrl in the validation event. Aby ukończyć uzgadnianie ręcznej weryfikacji, należy uzyskać wartość validationUrl właściwości i odwiedź tego adresu URL w przeglądarce sieci web.To complete the manual validation handshake, get the value of the validationUrl property and visit that URL in your web browser. Jeśli weryfikacja zakończy się pomyślnie, powinien zostać wyświetlony komunikat w przeglądarce sieci web, czy Weryfikacja powiodła się.If validation is successful, you should see a message in your web browser that validation is successful. Zobaczysz, że provisioningState subskrypcji zdarzeń to "Powodzenie".You'll see that event subscription's provisioningState is "Succeeded".

Zabezpieczenia dostarczania zdarzeńEvent delivery security

Punkt końcowy usługi elementu webhook można zabezpieczyć, dodając parametry zapytania do adresu URL elementu webhook, podczas tworzenia subskrypcji zdarzeń.You can secure your webhook endpoint by adding query parameters to the webhook URL when creating an Event Subscription. Ustaw jeden z tych parametrów zapytania jako klucz tajny, takich jak token dostępu.Set one of these query parameters to be a secret such as an access token. Element webhook umożliwiają Rozpoznawaj zdarzenia pochodzi z usługi Event Grid przy użyciu prawidłowe uprawnienia klucza tajnego.The webhook can use the secret to recognize the event is coming from Event Grid with valid permissions. Usługa Event Grid będzie zawierać te parametry zapytań w każdym dostarczanie zdarzeń do elementu webhook.Event Grid will include these query parameters in every event delivery to the webhook.

Podczas edytowania subskrypcji zdarzeń, parametry zapytania nie są wyświetlane lub zwracane, chyba że — obejmują — pełny — — adres url punktu końcowego parametr jest używany na platformie Azure interfejsu wiersza polecenia.When editing the Event Subscription, the query parameters aren't displayed or returned unless the --include-full-endpoint-url parameter is used in Azure CLI.

Na koniec jest należy pamiętać, że usługi Azure Event Grid obsługuje tylko punkty końcowe HTTPS elementu webhook.Finally, it's important to note that Azure Event Grid only supports HTTPS webhook endpoints.

Subskrypcja zdarzeńEvent subscription

Aby subskrybować zdarzenie, muszą potwierdzić, że masz dostęp do źródła zdarzeń i obsługi.To subscribe to an event, you must prove that you have access to the event source and handler. Potwierdzające, że jesteś właścicielem elementu WebHook zostało opisane w poprzedniej sekcji.Proving that you own a WebHook was covered in the preceding section. Jeśli używasz programu obsługi zdarzeń, który nie jest element WebHook (np. event hub lub kolejki magazynu), należy się dostęp do zapisu do tego zasobu.If you're using an event handler that isn't a WebHook (such as an event hub or queue storage), you need write access to that resource. To sprawdzenie uprawnień uniemożliwia nieautoryzowany użytkownik wysyła zdarzenia do zasobu.This permissions check prevents an unauthorized user from sending events to your resource.

Konieczne jest posiadanie Microsoft.EventGrid/EventSubscriptions/Write uprawnienia dla zasobu, który jest źródłem zdarzeń.You must have the Microsoft.EventGrid/EventSubscriptions/Write permission on the resource that is the event source. To uprawnienie jest konieczne, ponieważ nowej subskrypcji w zakresie zasobów jest pisany.You need this permission because you're writing a new subscription at the scope of the resource. Wymagany zasób różni się zależnie od tego, czy w przypadku subskrybowania tematu system lub tematu niestandardowego.The required resource differs based on whether you're subscribing to a system topic or custom topic. Oba typy są opisane w tej sekcji.Both types are described in this section.

Tematy dotyczące systemu (wydawcy usług platformy Azure)System topics (Azure service publishers)

Tematy systemu musisz mieć uprawnienie do zapisu nowej subskrypcji zdarzeń w zakresie zasobów publikowanie zdarzenia.For system topics, you need permission to write a new event subscription at the scope of the resource publishing the event. Format zasobu jest następujący: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}The format of the resource is: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{resource-provider}/{resource-type}/{resource-name}

Na przykład, aby subskrybować zdarzenie na koncie magazynu o nazwie myacct, musisz mieć uprawnienie Microsoft.EventGrid/EventSubscriptions/Write na: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/myacctFor example, to subscribe to an event on a storage account named myacct, you need the Microsoft.EventGrid/EventSubscriptions/Write permission on: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/myacct

Tematy niestandardoweCustom topics

Niestandardowe tematy musisz mieć uprawnienie do zapisu nowej subskrypcji zdarzeń w zakresie tematu usługi event grid.For custom topics, you need permission to write a new event subscription at the scope of the event grid topic. Format zasobu jest następujący: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.EventGrid/topics/{topic-name}The format of the resource is: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.EventGrid/topics/{topic-name}

Na przykład do subskrybowania tematu niestandardowego o nazwie mytopic, musisz mieć uprawnienie Microsoft.EventGrid/EventSubscriptions/Write na: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.EventGrid/topics/mytopicFor example, to subscribe to a custom topic named mytopic, you need the Microsoft.EventGrid/EventSubscriptions/Write permission on: /subscriptions/####/resourceGroups/testrg/providers/Microsoft.EventGrid/topics/mytopic

Publikowanie tematu niestandardowegoCustom topic publishing

Tematy niestandardowe Użyj sygnatury dostępu współdzielonego (SAS) lub uwierzytelniania za pomocą klucza.Custom topics use either Shared Access Signature (SAS) or key authentication. Firma Microsoft zaleca sygnatury dostępu Współdzielonego, ale uwierzytelnianie za pomocą klucza udostępnia proste programowanie i jest zgodny z wielu istniejących wydawców elementu webhook.We recommend SAS, but key authentication provides simple programming, and is compatible with many existing webhook publishers.

Wartość uwierzytelniania jest uwzględniona w nagłówku HTTP.You include the authentication value in the HTTP header. Sygnatury dostępu Współdzielonego, można użyć Æg sygnatury dostępu współdzielonego token dla wartości nagłówka.For SAS, use aeg-sas-token for the header value. W przypadku uwierzytelniania za pomocą klucza Użyj Æg sygnatury dostępu współdzielonego klucza dla wartości nagłówka.For key authentication, use aeg-sas-key for the header value.

Uwierzytelnianie za pomocą kluczaKey authentication

Uwierzytelnianie za pomocą klucza jest najprostsza forma uwierzytelniania.Key authentication is the simplest form of authentication. Użyj formatu: aeg-sas-key: <your key>Use the format: aeg-sas-key: <your key>

Na przykład polega na przekazaniu klucza przy użyciu:For example, you pass a key with:

aeg-sas-key: VXbGWce53249Mt8wuotr0GPmyJ/nDT4hgdEj9DpBeRr38arnnm5OFg==

Tokeny sygnatur dostępu współdzielonegoSAS tokens

Tokeny sygnatur dostępu Współdzielonego dla usługi Event Grid obejmują zasobu, czasu wygaśnięcia i podpis.SAS tokens for Event Grid include the resource, an expiration time, and a signature. Format tokenu sygnatury dostępu Współdzielonego: r={resource}&e={expiration}&s={signature}.The format of the SAS token is: r={resource}&e={expiration}&s={signature}.

Zasób jest ścieżka do tematu usługi event grid do którego są wysyłane zdarzenia.The resource is the path for the event grid topic to which you're sending events. Na przykład ścieżka prawidłowy zasób jest: https://<yourtopic>.<region>.eventgrid.azure.net/eventGrid/api/eventsFor example, a valid resource path is: https://<yourtopic>.<region>.eventgrid.azure.net/eventGrid/api/events

Podpis jest generowanie z kluczem.You generate the signature from a key.

Na przykład prawidłowy Æg sygnatury dostępu współdzielonego token wartość to:For example, a valid aeg-sas-token value is:

aeg-sas-token: r=https%3a%2f%2fmytopic.eventgrid.azure.net%2feventGrid%2fapi%2fevent&e=6%2f15%2f2017+6%3a20%3a15+PM&s=a4oNHpRZygINC%2fBPjdDLOrc6THPy3tDcGHw1zP4OajQ%3d

Poniższy przykład tworzy token SAS do użycia z usługą Event Grid:The following example creates a SAS token for use with Event Grid:

static string BuildSharedAccessSignature(string resource, DateTime expirationUtc, string key)
{
    const char Resource = 'r';
    const char Expiration = 'e';
    const char Signature = 's';

    string encodedResource = HttpUtility.UrlEncode(resource);
    var culture = CultureInfo.CreateSpecificCulture("en-US");
    var encodedExpirationUtc = HttpUtility.UrlEncode(expirationUtc.ToString(culture));

    string unsignedSas = $"{Resource}={encodedResource}&{Expiration}={encodedExpirationUtc}";
    using (var hmac = new HMACSHA256(Convert.FromBase64String(key)))
    {
        string signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(unsignedSas)));
        string encodedSignature = HttpUtility.UrlEncode(signature);
        string signedSas = $"{unsignedSas}&{Signature}={encodedSignature}";

        return signedSas;
    }
}

Kontrola dostępu do zarządzaniaManagement Access Control

Usługa Azure Event Grid umożliwia kontrolowanie poziomu dostępu do różnych użytkowników może wykonać różne operacje zarządzania, takich jak lista subskrypcji zdarzeń, tworzenie nowych i generowanie kluczy.Azure Event Grid allows you to control the level of access given to different users to do various management operations such as list event subscriptions, create new ones, and generate keys. Kontrola dostępu oparta na rolach platformy Azure (RBAC) korzysta z usługi Event Grid.Event Grid uses Azure's role-based access control (RBAC).

Typy operacjiOperation types

Usługa Event Grid obsługuje następujące akcje:Event Grid supports the following actions:

  • Microsoft.EventGrid/*/readMicrosoft.EventGrid/*/read
  • Microsoft.EventGrid/*/writeMicrosoft.EventGrid/*/write
  • Microsoft.EventGrid/*/deleteMicrosoft.EventGrid/*/delete
  • Microsoft.EventGrid/eventSubscriptions/getFullUrl/actionMicrosoft.EventGrid/eventSubscriptions/getFullUrl/action
  • Microsoft.EventGrid/topics/listKeys/actionMicrosoft.EventGrid/topics/listKeys/action
  • Microsoft.EventGrid/topics/regenerateKey/actionMicrosoft.EventGrid/topics/regenerateKey/action

Ostatnie trzy operacje zwracają potencjalnie poufne informacje, które pobiera przefiltrowane z normalnych operacji odczytu.The last three operations return potentially secret information, which gets filtered out of normal read operations. Zalecane jest, można ograniczyć dostęp do tych operacji.It's recommended that you restrict access to these operations.

Wbudowane roleBuilt-in roles

Zarządzanie subskrypcjami zdarzeń usługi Event Grid zapewnia dwie wbudowane role.Event Grid provides two built-in roles for managing event subscriptions. Są one ważne podczas implementowania domen zdarzeń ponieważ zapewniają użytkownikom uprawnienia muszą subskrybować tematy w domenie zdarzeń.They are important when implementing event domains because they give users the permissions they need to subscribe to topics in your event domain. Te role koncentrują się na subskrypcji zdarzeń i nie przyznać dostęp do akcji, takich jak tworzenie tematów.These roles are focused on event subscriptions and don't grant access for actions such as creating topics.

Możesz przypisania tych ról użytkownikowi lub grupie.You can assign these roles to a user or group.

Współautor EventSubscription EventGrid (wersja zapoznawcza) : zarządzanie operacjami subskrypcji usługi Event GridEventGrid EventSubscription Contributor (Preview): manage Event Grid subscription operations

[
  {
    "Description": "Lets you manage EventGrid event subscription operations.",
    "IsBuiltIn": true,
    "Id": "428e0ff05e574d9ca2212c70d0e0a443",
    "Name": "EventGrid EventSubscription Contributor (Preview)",
    "IsServiceRole": false,
    "Permissions": [
      {
        "Actions": [
          "Microsoft.Authorization/*/read",
          "Microsoft.EventGrid/eventSubscriptions/*",
          "Microsoft.EventGrid/topicTypes/eventSubscriptions/read",
          "Microsoft.EventGrid/locations/eventSubscriptions/read",
          "Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read",
          "Microsoft.Insights/alertRules/*",
          "Microsoft.Resources/deployments/*",
          "Microsoft.Resources/subscriptions/resourceGroups/read",
          "Microsoft.Support/*"
        ],
        "NotActions": [],
        "DataActions": [],
        "NotDataActions": [],
        "Condition": null
      }
    ],
    "Scopes": [
      "/"
    ]
  }
]

Czytnik EventSubscription EventGrid (wersja zapoznawcza) : odczytu subskrypcji usługi Event GridEventGrid EventSubscription Reader (Preview): read Event Grid subscriptions

[
  {
    "Description": "Lets you read EventGrid event subscriptions.",
    "IsBuiltIn": true,
    "Id": "2414bbcf64974faf8c65045460748405",
    "Name": "EventGrid EventSubscription Reader (Preview)",
    "IsServiceRole": false,
    "Permissions": [
      {
        "Actions": [
          "Microsoft.Authorization/*/read",
          "Microsoft.EventGrid/eventSubscriptions/read",
          "Microsoft.EventGrid/topicTypes/eventSubscriptions/read",
          "Microsoft.EventGrid/locations/eventSubscriptions/read",
          "Microsoft.EventGrid/locations/topicTypes/eventSubscriptions/read",
          "Microsoft.Resources/subscriptions/resourceGroups/read"
        ],
        "NotActions": [],
        "DataActions": [],
        "NotDataActions": []
       }
    ],
    "Scopes": [
      "/"
    ]
  }
]

Role niestandardoweCustom roles

Jeśli musisz określić uprawnienia, które są inne niż wbudowane role mogą tworzyć role niestandardowe.If you need to specify permissions that are different than the built-in roles, you can create custom roles.

Poniżej przedstawiono przykładowe definicje ról usługi Event Grid, których użytkownicy mogą wykonać różne operacje.The following are sample Event Grid role definitions that allow users to take different actions. Te role niestandardowe różnią się od wbudowanych ról, ponieważ powodują udzielenie szerszy dostęp niż po prostu subskrypcji zdarzeń.These custom roles are different from the built-in roles because they grant broader access than just event subscriptions.

EventGridReadOnlyRole.json: Zezwalaj tylko operacji tylko do odczytu.EventGridReadOnlyRole.json: Only allow read-only operations.

{
  "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 po ograniczony, ale nie zezwalaj na akcje usuwania.EventGridNoDeleteListKeysRole.json: Allow restricted post actions but disallow delete actions.

{
  "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 siatki zdarzeń.EventGridContributorRole.json: Allows all event grid actions.

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

Można tworzyć niestandardowe role z PowerShell, wiersza polecenia platformy Azure, i REST.You can create custom roles with PowerShell, Azure CLI, and REST.

Kolejne krokiNext steps

  • Aby zapoznać się z wprowadzeniem do usługi Event Grid, zobacz Event GridFor an introduction to Event Grid, see About Event Grid