Dostarczanie zdarzeń przy użyciu tożsamości zarządzanej

W tym artykule opisano sposób używania tożsamości usługi zarządzanej dla tematu systemu usługi Azure Event Grid, tematu niestandardowego lub domeny. Służy do przekazywania zdarzeń do obsługiwanych miejsc docelowych, takich jak kolejki i tematy usługi Service Bus, centra zdarzeń i konta magazynu.

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 (na przykład nadawcy danych usługi Service Bus) w miejscu docelowym (na przykład w kolejce usługi Service Bus). Aby uzyskać szczegółowe instrukcje, zobacz Dodawanie tożsamości do ról platformy Azure w miejscach docelowych

    Uwaga

    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.

Tworzenie subskrypcji zdarzeń korzystających z tożsamości

Po utworzeniu niestandardowego tematu usługi Event Grid lub 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.

Oto przykład włączania tożsamości przypisanej przez system podczas tworzenia subskrypcji zdarzeń z kolejką usługi Service Bus jako miejsca docelowego.

Screenshot that shows how to enable an identity when creating an event subscription for a Service Bus queue.

Możesz również włączyć używanie tożsamości przypisanej przez system do użycia do tworzenia utraconych komunikatów na karcie Dodatkowe funkcje .

Screenshot that shows how to enable a system-assigned identity for dead-lettering.

Tożsamość zarządzaną można włączyć w subskrypcji zdarzeń po jej utworzeniu. Na stronie Subskrypcjazdarzeń dla subskrypcji zdarzeń przejdź do karty Dodatkowe funkcje, aby wyświetlić tę opcję. Możesz również włączyć tożsamość w przypadku utraconych komunikatów na tej stronie.

Screenshot that shows how to enable a system-assigned identity on an existing event subscription.

Jeśli dla tematu włączono tożsamości przypisane przez użytkownika, na liście rozwijanej dla typu tożsamości manged zostanie włączona opcja tożsamości przypisanej przez użytkownika. Jeśli wybierzesz opcję Przypisano użytkownika dla typu tożsamości zarządzanej, możesz wybrać tożsamość przypisaną przez użytkownika, której chcesz użyć do dostarczania zdarzeń.

Screenshot that shows how to enable a user-assigned identity on an event subscription.

Korzystanie z interfejsu wiersza polecenia platformy Azure — kolejka usługi Service Bus

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 nadawcy danych usługi Azure Service Bus. Musi być również członkiem roli Współautor danych obiektu blob usługi Storage na koncie magazynu używanym do tworzenia utraconych komunikatów.

Definiowanie zmiennych

Najpierw określ wartości dla następujących zmiennych, które mają być używane w poleceniu interfejsu wiersza polecenia.

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 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.

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 interfejsu wiersza polecenia platformy Azure — 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ółautor danych obiektu blob usługi Storage na koncie magazynu używanym do tworzenia utraconych komunikatów.

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

Korzystanie z interfejsu wiersza polecenia platformy Azure — kolejka usługi 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 nadawcy komunikatów kolejki magazynu na koncie magazynu. Musi być również członkiem roli Współautor danych obiektu blob usługi Storage na koncie magazynu używanym do tworzenia utraconych komunikatów.

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żna dostarczać zdarzeń przy użyciu prywatnych punktów końcowych. Oznacza to, że nie ma obsługi, jeśli masz ścisłe wymagania dotyczące izolacji sieci, w których ruch dostarczanych zdarzeń nie może pozostawić prywatnej przestrzeni 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ć łącza prywatnego skonfigurowanego w usłudze Azure Functions lub elementu webhook wdrożonego w sieci wirtualnej w celu ściągnięcia zdarzeń. Zobacz samouczek: Połączenie do prywatnych punktów końcowych 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 będzie widocznie pozostawać w obrębie platformy Azure.

Następne kroki

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