Używanie tożsamości zarządzanych do dostarczania zdarzeń w usłudze Azure Event Grid

W tym artykule wyjaśniono, jak włączyć tożsamości usług zarządzanych dla tematów systemowych usługi Azure Event Grid, tematów niestandardowych i domen. Wyjaśniono również, jak używać tożsamości zarządzanych do dostarczania zdarzeń do obsługiwanych miejsc docelowych, takich jak kolejki i tematy w usłudze Service Bus, centra zdarzeń i konta przechowywania.

Wymagania wstępne

  1. Przypisz tożsamość przypisaną przez system lub tożsamość przypisaną przez użytkownika do tematu systemowego, tematu niestandardowego lub domeny.

  2. Dodaj tożsamość do odpowiedniej roli, takiej jak nadawca danych usługi Service Bus, w miejscu docelowym, takim jak kolejka usługi Service Bus. Aby uzyskać szczegółowe instrukcje, zobacz Dodawanie tożsamości do ról platformy Azure w miejscach docelowych.

    Uwaga / Notatka

    Obecnie nie możesz dostarczać wydarzeń za pomocą prywatnych punktów końcowych. Aby uzyskać więcej informacji, zobacz sekcję Prywatne punkty końcowe na końcu tego artykułu.

Utwórz subskrypcje zdarzeń korzystających z tożsamości

Po skonfigurowaniu niestandardowego tematu usługi Event Grid, tematu systemowego lub domeny z tożsamością zarządzaną i dodaniu tożsamości do odpowiedniej roli w miejscu docelowym możesz utworzyć subskrypcje korzystające z tożsamości.

Korzystanie z witryny Azure Portal

Podczas tworzenia subskrypcji zdarzeń w sekcji SZCZEGÓŁY PUNKTU KOŃCOWEGO zobaczysz opcję włączenia tożsamości przypisanej przez system lub użytkownika dla punktu końcowego.

W tym przykładzie pokazano, jak włączyć tożsamość przypisaną przez system podczas tworzenia subskrypcji zdarzeń z kolejką usługi Service Bus jako miejscem docelowym.

Zrzut ekranu z włączaniem tożsamości przypisanej przez system dla subskrypcji kolejki Service Bus.

Możesz również włączyć tożsamość przypisaną przez system na potrzeby utraconych komunikatów na karcie Dodatkowe funkcje .

Zrzut ekranu przedstawiający włączanie tożsamości przypisanej przez system na potrzeby obsługi niedostarczonych wiadomości.

Włącz tożsamość zarządzaną w subskrypcji zdarzeń po jej utworzeniu. Na stronie Subskrypcja zdarzeń przejdź do karty Dodatkowe funkcje, aby wyświetlić tę opcję. Możesz również włączyć funkcję identyfikacji dla usługi obsługi wiadomości nierozdzielczalnych na tej stronie.

Zrzut ekranu przedstawiający aktywowanie tożsamości przypisanej przez system w istniejącej subskrypcji zdarzeń.

Jeśli włączysz tożsamości przypisane przez użytkownika dla tematu, zobaczysz opcję tożsamości przypisanej przez użytkownika włączoną na liście rozwijanej dla typu tożsamości zarządzanej. Jeśli wybierzesz opcję Przypisany użytkownik dla typu tożsamości zarządzanej, możesz wybrać przypisaną tożsamość użytkownika, której chcesz użyć do dostarczania zdarzeń.

Zrzut ekranu przedstawiający włączanie tożsamości przypisanej przez użytkownika w subskrypcji zdarzeń.

Użyj Azure CLI - Service Bus queue

W tej sekcji nauczysz się, jak korzystać z Azure CLI, aby umożliwić systemowo przypisaną tożsamość do dostarczania zdarzeń do kolejki Service Bus. Tożsamość musi być członkiem roli Azure Service Bus Data Sender i roli Storage Blob Data Contributor na koncie magazynu używanym do zarządzania korespondencją nieprzetworzoną.

Definiowanie zmiennych

subid="<AZURE SUBSCRIPTION ID>"
rg="<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname="<EVENT GRID TOPIC NAME>"

# get the service bus queue resource id
queueid=$(az servicebus queue show --namespace-name <SERVICE BUS NAMESPACE NAME> --name <QUEUE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
sb_esname="<Specify a name for the event subscription>"

Tworzenie subskrypcji zdarzeń przy użyciu tożsamości zarządzanej na potrzeby dostarczania

To polecenie tworzy subskrypcję zdarzeń dla tematu niestandardowego usługi Event Grid z typem punktu końcowego ustawionym na kolejkę usługi Service Bus.

az eventgrid event-subscription create \
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname \
    --delivery-identity-endpoint-type servicebusqueue \
    --delivery-identity systemassigned \
    --delivery-identity-endpoint $queueid \
    -n $sb_esname

Tworzenie subskrypcji zdarzeń przy użyciu tożsamości zarządzanej na potrzeby dostarczania i zakleszczenia

To przykładowe polecenie tworzy subskrypcję zdarzeń dla tematu niestandardowego usługi Event Grid z typem punktu końcowego ustawionym na kolejkę usługi Service Bus. Określa również, że Event Grid używa systemowo przypisanej tożsamości zarządzanej do dead-letteringu.

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create \
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname \
    --delivery-identity-endpoint-type servicebusqueue \
    --delivery-identity systemassigned \
    --delivery-identity-endpoint $queueid \
    --deadletter-identity-endpoint $deadletterendpoint \
    --deadletter-identity systemassigned \
    -n $sb_esname

Korzystanie z Azure CLI — Event Hubs

W tej sekcji nauczysz się, jak wykorzystać Azure CLI, aby umożliwić systemowo przypisaną tożsamość do dostarczania zdarzeń do centrum zdarzeń. Tożsamość musi być członkiem roli nadawcy danych usługi Azure Event Hubs . Musi to być także członek roli Storage Blob Data Contributor na koncie pamięci, którego używasz do martwego literowania.

Definiowanie zmiennych

subid="<AZURE SUBSCRIPTION ID>"
rg="<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname="<EVENT GRID CUSTOM TOPIC NAME>"

hubid=$(az eventhubs eventhub show --name <EVENT HUB NAME> --namespace-name <NAMESPACE NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)
eh_esname="<SPECIFY EVENT SUBSCRIPTION NAME>"

Tworzenie subskrypcji zdarzeń przy użyciu tożsamości zarządzanej na potrzeby dostarczania

To przykładowe polecenie tworzy subskrypcję zdarzeń dla tematu niestandardowego usługi Event Grid z typem punktu końcowego ustawionym na Event Hubs.

az eventgrid event-subscription create \
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname \
    --delivery-identity-endpoint-type eventhub \
    --delivery-identity systemassigned \
    --delivery-identity-endpoint $hubid \
    -n $eh_esname

Tworzenie subskrypcji zdarzeń przy użyciu tożsamości zarządzanej na potrzeby dostarczania i zakleszczenia

To przykładowe polecenie tworzy subskrypcję zdarzeń dla tematu niestandardowego usługi Event Grid z typem punktu końcowego ustawionym na Event Hubs. Określa również, że zarządzana tożsamość przypisana systemowi obsługuje martwe litery.

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create \
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname \
    --delivery-identity-endpoint-type eventhub \
    --delivery-identity systemassigned \
    --delivery-identity-endpoint $hubid \
    --deadletter-identity-endpoint $deadletterendpoint \
    --deadletter-identity systemassigned \
    -n $eh_esname

Używanie interfejsu wiersza polecenia w usłudze Azure — kolejka Azure Storage

W tej sekcji nauczysz się, jak wykorzystać Azure CLI, aby umożliwić systemowo przypisaną tożsamość do dostarczania zdarzeń do kolejki Azure Storage. Tożsamość musi być członkiem roli Storage Queue Data Message Sender na koncie magazynu. Musi to być także członek roli Storage Blob Data Contributor na koncie pamięci, którego używasz do martwego literowania.

Definiowanie zmiennych

subid="<AZURE SUBSCRIPTION ID>"
rg="<RESOURCE GROUP of EVENT GRID CUSTOM TOPIC>"
topicname="<EVENT GRID CUSTOM TOPIC NAME>"

# get the storage account resource id
storageid=$(az storage account show --name <STORAGE ACCOUNT NAME> --resource-group <RESOURCE GROUP NAME> --query id --output tsv)

# build the resource id for the queue
queueid="$storageid/queueservices/default/queues/<QUEUE NAME>"

sa_esname="<SPECIFY EVENT SUBSCRIPTION NAME>"

Tworzenie subskrypcji zdarzeń przy użyciu tożsamości zarządzanej na potrzeby dostarczania

az eventgrid event-subscription create \
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname \
    --delivery-identity-endpoint-type storagequeue \
    --delivery-identity systemassigned \
    --delivery-identity-endpoint $queueid \
    -n $sa_esname

Tworzenie subskrypcji zdarzeń przy użyciu tożsamości zarządzanej na potrzeby dostarczania i zakleszczenia

storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"

az eventgrid event-subscription create \
    --source-resource-id /subscriptions/$subid/resourceGroups/$rg/providers/Microsoft.EventGrid/topics/$topicname \
    --delivery-identity-endpoint-type storagequeue \
    --delivery-identity systemassigned \
    --delivery-identity-endpoint $queueid \
    --deadletter-identity-endpoint $deadletterendpoint \
    --deadletter-identity systemassigned \
    -n $sa_esname

Prywatne punkty końcowe

Obecnie nie możesz dostarczać wydarzeń za pomocą prywatnych punktów końcowych. Oznacza to, że nie ma wsparcia, jeśli masz ścisłe wymagania dotyczące izolacji sieci, gdzie ruch dostarczanych zdarzeń nie może opuścić przestrzeni prywatnych adresów IP.

Jeśli jednak Twoje wymagania wymagają bezpiecznego sposobu wysyłania zdarzeń za pomocą zaszyfrowanego kanału i znanej tożsamości nadawcy (w tym przypadku Event Grid) z wykorzystaniem publicznej przestrzeni IP, możesz dostarczać zdarzenia do Event Hubów, Service Bus lub usługi Azure Storage, korzystając z niestandardowego tematu Azure Event Grid lub domeny z tożsamością zarządzaną, jak pokazano w tym artykule. Następnie możesz użyć prywatnego łącza skonfigurowanego w Azure Functions lub webhooka wdrożonego w sieci wirtualnej, aby pobrać zdarzenia. Zobacz samouczek: Nawiązywanie połączenia z prywatnymi punktami końcowymi za pomocą usługi Azure Functions.

W tej konfiguracji ruch odbywa się przez publiczny adres IP / Internet z Event Grid do usług Event Hubs, Service Bus lub Azure Storage, ale można zaszyfrować ten kanał i użyć tożsamości zarządzanej usługi Event Grid. Jeśli skonfigurujesz usługę Azure Functions lub element webhook wdrożony w sieci wirtualnej w celu używania usługi Event Hubs, usługi Service Bus lub usługi Azure Storage za pośrednictwem łącza prywatnego, ta sekcja ruchu pozostaje na platformie Azure.

Aby dowiedzieć się więcej o tożsamościach zarządzanych, zobacz , jakie są tożsamości zarządzane dla zasobów platformy Azure.