Предоставление управляемому удостоверению доступа к назначению "Сетка событий"

В этом разделе описывается добавление удостоверения для раздела системы, пользовательского раздела или домена в роль Azure.

Необходимые компоненты

Назначьте управляемое удостоверение, назначаемое системой, с помощью инструкций из следующих статей:

Поддерживаемые назначения и роли Azure

После включения удостоверения для пользовательского раздела или домена сетки событий Azure автоматически создает удостоверение в идентификаторе Microsoft Entra. Это удостоверение добавляется в соответствующие роли Azure, чтобы пользовательский раздел или домен мог пересылать события в поддерживаемые назначения. Например, добавьте удостоверение в роль отправителя данных Центры событий Azure для пространства имен Центры событий Azure, чтобы настраиваемый раздел сетки событий перенаправил события в центры событий в этом пространстве имен.

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

Назначение Роль Azure
Очереди и разделы служебной шины Azure Отправитель данных Служебной шины Azure
Центры событий Azure Отправитель данных Центров событий Azure
Хранилище BLOB-объектов Azure Участник данных хранилища BLOB-объектов
Хранилище очередей Azure Отправитель сообщений данных в очередь хранилища

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

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

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

  1. Перейдите к пространству имен служебной шины на портале Azure.

  2. На панели слева выберите Управление доступом.

  3. В разделе Добавление назначения роли (предварительная версия) выберите Добавить.

    Image showing the selection of Add role assignment (Preview) menu

  4. На странице добавление назначения ролей выберите Отправитель данных Служебной шины Azure и нажмите кнопку Далее.

    Image showing the selection of the Azure Service Bus Data Sender role

  5. На вкладке Члены выполните следующие действия.

    1. Выберите Пользователь, группа или субъект-служба, а затем щелкните + Выбрать членов. Параметр управляемого удостоверения еще не поддерживает удостоверения сетки событий.

    2. В окне Выбор членов найдите и выберите субъект-службу с тем же именем, что и у пользовательского раздела. В приведенном ниже примере это spcustomtopic0728.

      Image showing the selection of the User, group, or service principal option

    3. В окне Выбор членов нажмите кнопку Выбрать.

      Image showing the selection of the Managed identity option

  6. Затем, вернувшись на вкладку Члены, выберите Далее.

    Image showing the selection of the Next button on the Members page

  7. На странице Проверка и назначение после проверки параметров выберите Проверка и назначение.

Эти действие аналогично добавлению удостоверения для других ролей, упомянутых в таблице.

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

В примере в этом разделе показано, как использовать Azure CLI для добавления удостоверения в роль Azure. Примеры команд предназначены для пользовательских разделов сетки событий. Команды для доменов сетки событий аналогичны.

Получение идентификатора субъекта для удостоверения системы пользовательского раздела

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

topic_pid=$(az ad sp list --display-name "$<TOPIC NAME>" --query [].objectId -o tsv)

Создание назначения роли для центров событий в различных областях

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

role="Azure Event Hubs Data Sender" 
namespaceresourceid=$(az eventhubs namespace show -n $<EVENT HUBS NAMESPACE NAME> -g <RESOURCE GROUP of EVENT HUB> --query "{I:id}" -o tsv) 
eventhubresourceid=$(az eventhubs eventhub show -n <EVENT HUB NAME> --namespace-name <EVENT HUBS NAMESPACE NAME> -g <RESOURCE GROUP of EVENT HUB> --query "{I:id}" -o tsv) 

# create role assignment for the whole namespace 
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$namespaceresourceid" 

# create role assignment scoped to just one event hub inside the namespace 
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$eventhubresourceid" 

Создание назначения ролей для раздела служебной шины в различных областях

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

role="Azure Service Bus Data Sender" 
namespaceresourceid=$(az servicebus namespace show -n $RG\SB -g "$RG" --query "{I:id}" -o tsv 
sbustopicresourceid=$(az servicebus topic show -n topic1 --namespace-name $RG\SB -g "$RG" --query "{I:id}" -o tsv) 

# create role assignment for the whole namespace 
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$namespaceresourceid" 

# create role assignment scoped to just one hub inside the namespace 
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$sbustopicresourceid" 

Следующие шаги

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