Udostępnij przez


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żna dostarczać zdarzeń przy użyciu 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ń zobaczysz opcję włączenia korzystania z tożsamości przypisanej przez system lub tożsamości przypisanej przez użytkownika dla punktu końcowego w sekcji SZCZEGÓŁY 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 przedstawiający, jak włączyć tożsamość przypisaną przez system dla subskrypcji kolejki usługi 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ń.

Korzystaj z Azure CLI

W tej sekcji dowiesz się, jak za pomocą interfejsu wiersza polecenia platformy Azure umożliwić używanie tożsamości przypisanej przez system do dostarczania zdarzeń do kolejki usługi 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 tożsamość zarządzana przez system ma być używana do stosowania utraconych komunikatów.

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_esnameq 

Korzystanie z Azure CLI — Event Hubs

W tej sekcji dowiesz się, jak za pomocą interfejsu wiersza polecenia platformy Azure umożliwić używanie tożsamości przypisanej przez system do dostarczania zdarzeń do centrum zdarzeń. Tożsamość musi być członkiem roli nadawcy danych usługi Azure Event Hubs . Musi być również członkiem roli Współtwórca danych blob Storage na koncie magazynu używanym do przechwytywania niedostarczonych wiadomości.

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 $sbq_esname 

Tworzenie subskrypcji zdarzeń przy użyciu tożsamości zarządzanej na potrzeby dostarczania i obsługi wiadomości niedostarczonych

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 tożsamość zarządzana przez system ma być używana do stosowania utraconych komunikatów.

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 $hubid
    --deadletter-identity-endpoint $eh_deadletterendpoint
    --deadletter-identity systemassigned 
    -n $eh_esname 

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

W tej sekcji dowiesz się, jak za pomocą interfejsu wiersza polecenia platformy Azure włączyć używanie tożsamości przypisanej przez system do dostarczania zdarzeń do kolejki usługi Azure Storage. Tożsamość musi być członkiem roli Storage Queue Data Message Sender na koncie magazynu. Musi być również członkiem roli Współtwórca danych blob Storage na koncie magazynu używanym do przechwytywania niedostarczonych wiadomości.

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 obsługi wiadomości niedostarczonych

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żna dostarczać zdarzeń przy użyciu 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 wymagania wymagają bezpiecznego sposobu wysyłania zdarzeń przy użyciu zaszyfrowanego kanału i znanej tożsamości nadawcy (w tym przypadku usługi Event Grid) przy użyciu publicznej przestrzeni IP, możesz dostarczać zdarzenia do usługi Event Hubs, Service Bus lub Azure Storage przy użyciu niestandardowego tematu usługi 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 ramach tej konfiguracji ruch przechodzi przez publiczny adres IP/Internet z usługi Event Grid do usługi Event Hubs, usługi Service Bus lub usługi Azure Storage, ale kanał można zaszyfrować, a tożsamość zarządzana usługi Event Grid jest używana. 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.

Dalsze kroki

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