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


Используйте управляемые идентификаторы для доступа к Azure Cosmos DB из задания Azure Stream Analytics

Azure Stream Analytics поддерживает аутентификацию с использованием управляемого удостоверения для выхода данных Azure Cosmos DB. Управляемые удостоверения устраняют ограничения методов проверки подлинности на основе пользователя, например необходимость повторной аутентификации в связи с изменением пароля или истечением срока действия пользовательского токена, которое наступает каждые 90 дней. При устранении необходимости в ручной проверке подлинности ваши развертывания Stream Analytics можно полностью автоматизировать. 

Управляемое удостоверение — это управляемое приложение, зарегистрированное в идентификаторе Microsoft Entra, представляющее заданное задание Stream Analytics. Управляемое приложение используется для проверки подлинности в целевом ресурсе. Дополнительные сведения об управляемых удостоверениях для Azure Stream Analytics см. в Управляемые удостоверения для Azure Stream Analytics.

В этой статье показано, как включить управляемое удостоверение, назначенное системой, для выхода базы данных Azure Cosmos DB задания Stream Analytics с помощью портала Azure. Прежде чем включать назначаемое системой управляемое удостоверение, необходимо уже иметь задание Stream Analytics и ресурс Azure Cosmos DB.

Создание управляемого удостоверения

Сначала создайте управляемое удостоверение для задания Azure Stream Analytics. 

  1. На портале Azure откройте задание Stream Analytics. 

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

    Системой назначаемое управляемое удостоверение

  3. В Microsoft Entra ID создается служебный принципал для удостоверения личности задания Stream Analytics. Жизненным циклом нового удостоверения будет управлять Azure. При удалении задания Stream Analytics Azure автоматически удаляет связанное удостоверение (то есть служебный принципал). 

    При сохранении конфигурации идентификатор объекта (OID) основного сервиса указан в качестве ID основного сервиса, как показано ниже:

    Идентификатор принципала

    Субъект-служба имеет то же имя, что и задание Stream Analytics. Например, если имя задания MyASAJob, имя субъекта службы также будет MyASAJob. 

Предоставление разрешений для заданий Stream Analytics для доступа к учетной записи Azure Cosmos DB

Чтобы задание Stream Analytics могло получить доступ к Azure Cosmos DB с помощью управляемого удостоверения, созданный вами сервисный принципал должен иметь необходимые разрешения для учетной записи Azure Cosmos DB. На этом шаге можно назначить роль назначаемому системой управляемому удостоверению вашего задания Stream Analytics. Azure Cosmos DB имеет несколько встроенных ролей, которые можно назначить управляемому удостоверению. Для этого решения будет использоваться следующая роль:

Встроенная роль
Встроенный участник данных Cosmos DB

Внимание

Встроенное управление доступом на основе ролей (RBAC) для плоскости данных в Azure Cosmos DB не доступно через портал Azure. Чтобы назначить встроенную роль участника данных Cosmos DB, необходимо предоставить разрешение с помощью Azure PowerShell. Дополнительную информацию об управлении доступом на основе ролей с использованием Microsoft Entra ID для вашей учетной записи Azure Cosmos DB см. в документации по настройке управления доступом на основе ролей с Microsoft Entra ID для вашей учетной записи Azure Cosmos DB.

Следующая команда может использоваться для проверки подлинности задания ASA с помощью Azure Cosmos DB. Для $accountName и $resourceGroupName в вашей учетной записи Azure Cosmos DB, а $principalId — это значение, полученное на предыдущем шаге, на вкладке "Удостоверение" задания ASA. Для корректной работы этой команды необходимо иметь доступ уровня "Участник" к учетной записи Azure Cosmos DB.

New-AzCosmosDBSqlRoleAssignment -AccountName $accountName -ResourceGroupName $resourceGroupName -RoleDefinitionId 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' -Scope "/" -PrincipalId $principalId

Примечание.

Из-за задержки глобальной репликации или кэширования может возникнуть задержка при отмене или предоставлении разрешений. Изменения должны отражаться в течение 10 минут. Несмотря на то что тестовое подключение может пройти успешно сначала, задания могут завершиться ошибкой при запуске до распространения разрешений.

Внимание

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

Добавьте Azure Cosmos DB в качестве выходных данных

Теперь, когда управляемое удостоверение настроено, вы готовы добавить ресурс Azure Cosmos DB в качестве выходных данных в задание Stream Analytics. 

  1. Перейдите к заданию Stream Analytics и откройте страницу Выходные данные в разделе Топология задания.

  2. Выберите "Добавить > Azure Cosmos DB". В окне свойств вывода выполните поиск и выберите учетную запись Azure Cosmos DB и выберите управляемое удостоверение: системное назначение в раскрывающемся меню режима проверки подлинности.

  3. Укажите остальные свойства и нажмите кнопку Сохранить.

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