Поделиться через


Использование управляемых удостоверений для доставки событий в Сетке событий Azure

В этой статье объясняется, как включить удостоверения управляемых служб для системных тем Azure Event Grid, пользовательских тем и доменов. В нем также объясняется, как использовать управляемые удостоверения для доставки событий в поддерживаемые назначения, такие как очереди и темы Service Bus, центры обработки событий и учетные записи хранения.

Предпосылки

  1. Назначьте системно назначаемое удостоверение или пользовательски назначаемое удостоверение к системной теме, пользовательской теме или домену.

  2. Добавьте удостоверение в соответствующую роль, например отправитель данных служебной шины, в месте назначения, например очередь служебной шины. Подробные инструкции см. в статье "Добавление удостоверения в роли Azure" в местах назначения.

    Замечание

    В настоящее время невозможно доставлять события с помощью частных конечных точек. Дополнительные сведения см. в разделе "Частные конечные точки " в конце этой статьи.

Создание подписок на события с использованием идентификации

После того как вы настроите настраиваемую тему Event Grid, системную тему или домен с управляемым удостоверением и добавите это удостоверение в соответствующую роль в целевой системе, вы готовы создавать подписки, использующие это удостоверение.

Использование портала Azure

При создании подписки на события вы увидите возможность включить использование идентификатора, назначаемого системой, или назначаемого пользователем идентификатора для конечной точки в разделе ENDPOINT DETAILS.

В этом примере показано, как включить системное удостоверение при создании подписки на события с очереди Service Bus в качестве конечной точки.

Снимок экрана, показывающий, как включить назначаемую системой идентичность для подписки на очередь Service Bus.

Вы также можете включить удостоверение, назначаемое системой, для мертвых писем на вкладке Дополнительные функции.

Снимок экрана: включение системного идентификатора для помещения в 'мёртвое письмо'.

Включите управляемое удостоверение для подписки на события после её создания. На странице "Подписка на события" для подписки на событие перейдите на вкладку "Дополнительные функции ", чтобы просмотреть этот параметр. Вы также можете включить идентификацию для обработки недоставленных сообщений на этой странице.

Снимок экрана: включение системного удостоверения для существующей подписки на события.

Если вы включите назначаемые пользователем удостоверения для темы, в раскрывающемся списке для типа управляемого удостоверения будет доступна опция назначаемого пользователем удостоверения. Если выбрать назначенный пользователем тип управляемых удостоверений, можно выбрать назначаемое пользователем удостоверение, которое вы хотите использовать для доставки событий.

Снимок экрана включения идентификации, назначенной пользователем, в подписке на событие.

Использование командной строки Azure CLI

В этом разделе вы узнаете, как использовать Azure CLI для включения использования системно назначаемого удостоверения для доставки событий в очередь Service Bus. Удостоверение должно быть членом роли отправителя данных служебной шины Azure и роль участника данных BLOB-объектов хранилища в учетной записи хранения, используемой для недоставки.

Определение переменных

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

Создайте подписку на события, используя управляемое удостоверение для доставки

Эта команда создает подписку на событие для настраиваемого раздела Сетки событий с типом конечной точки, заданным для очереди служебной шины.

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 

Создание подписки на события с использованием управляемого удостоверения для доставки и обработки недоставленных сообщений.

Эта примерная команда создает подписку на события для настраиваемого раздела Сетки событий с типом конечной точки, заданным для очереди служебной шины. В документе также указывается, что управляемое системой удостоверение используется для обработки недоставленных сообщений.

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 

Использование Azure CLI — Центры событий

В этом разделе описано, как использовать Azure CLI для включения использования назначаемого системой удостоверения для доставки событий в концентратор событий. Идентификатор должен быть членом роли отправителя данных Azure Event Hubs. Он также должен быть членом роли участника данных BLOB хранилища в учетной записи хранения, которая используется для обработки недоставленных сообщений.

Определение переменных

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

Создайте подписку на события, используя управляемое удостоверение для доставки

Эта примерная команда создает подписку на события для настраиваемого раздела Сетки событий с типом конечной точки, заданным для Центров событий.

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 

Создайте подписку на событие с использованием управляемой учетной записи для доставки и обработки необрабатываемых сообщений.

Эта примерная команда создает подписку на события для настраиваемого раздела Сетки событий с типом конечной точки, заданным для Центров событий. В документе также указывается, что управляемое системой удостоверение используется для обработки недоставленных сообщений.

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 

Использование интерфейса командной строки Azure — очередь хранилища Azure

В этом разделе описано, как использовать Azure CLI для включения использования назначаемого системой удостоверения для доставки событий в очередь службы хранилища Azure. Удостоверение должно быть членом роли отправитель сообщений данных в очереди хранилища в учетной записи хранилища. Он также должен быть членом роли участника данных BLOB хранилища в учетной записи хранения, которая используется для обработки недоставленных сообщений.

Определение переменных

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

Создайте подписку на события, используя управляемое удостоверение для доставки

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 

Создайте подписку на событие с использованием управляемой учетной записи для доставки и обработки необрабатываемых сообщений.

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 

Частные конечные точки

В настоящее время невозможно доставлять события с помощью частных конечных точек. То есть, нет поддержки, если у вас есть строгие требования к сетевой изоляции, в которых трафик доставленных событий не должен оставить частное IP-пространство.

Однако если требования вызывают безопасный способ отправки событий с помощью зашифрованного канала и известного удостоверения отправителя (в данном случае сетки событий) с помощью общедоступного IP-пространства, вы можете доставлять события в Центры событий, служебную шину или службу хранилища Azure с помощью настраиваемого раздела сетки событий Azure или домена с управляемым удостоверением, как показано в этой статье. Затем можно использовать приватную ссылку, настроенную в Azure Functions, или веб-хук, развернутый в вашей виртуальной сети, для извлечения событий. См. руководство. Подключение к частным конечным точкам с помощью Функций Azure.

В этой конфигурации трафик передается через общедоступный IP-адрес или Интернет из сетки событий в центры событий, служебную шину или службу хранилища Azure, но канал можно зашифровать и использовать управляемое удостоверение сетки событий. Если вы настраиваете функции Azure или веб-перехватчик, развернутые в виртуальной сети для использования центров событий, служебной шины или службы хранилища Azure через приватную связь, этот раздел трафика остается в Azure.

Дальнейшие шаги

Сведения об управляемых удостоверениях см. в разделе что такое управляемые удостоверения для ресурсов Azure.