Использование управляемых удостоверений для доступа к Базе данных SQL Azure или Azure Synapse Analytics из задания Azure Stream Analytics

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

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

Обзор

В этой статье показаны шаги, необходимые для подключения задания Stream Analytics к Базе данных SQL Microsoft Azure или пулу SQL Azure Synapse Analytics с использованием режима проверки подлинности по управляемым удостоверениям.

  • Сначала создайте назначаемое системой управляемое удостоверение для задания Stream Analytics. Это удостоверение задания в идентификаторе Microsoft Entra.

  • Добавьте администратора Active Directory в рабочую область SQL Server или Synapse, которая обеспечивает проверку подлинности Идентификатора Microsoft (Управляемое удостоверение) для этого ресурса.

  • Затем создайте автономного пользователя, представляющего удостоверение задания Stream Analytics в базе данных. При каждом взаимодействии задания Stream Analytics с ресурсом БД SQL или БД Synapse SQL оно будет использовать это удостоверение для проверки разрешений, имеющихся у вашего задания Stream Analytics.

  • Предоставьте заданию Stream Analytics разрешения для доступа к Базе данных SQL Microsoft Azure или пулам Synapse SQL.

  • Наконец, добавьте Базу данных SQL Microsoft Azure/службу Azure Synapse Analytics в качестве выходного объекта в задание Stream Analytics.

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

Для использования этой функции требуется следующее.

  • Задание Azure Stream Analytics.

  • Ресурс для Базы данных SQL Azure.

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

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

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

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

    Select system-assigned managed identity

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

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

  4. Если конфигурация сохраняется, идентификатор объекта (OID) субъекта-службы отображается в качестве идентификатора субъекта, как показано ниже:

    Object ID shown as Principal ID

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

Выбор администратора Active Directory

После создания управляемого удостоверения необходимо выбрать администратора Active Directory.

  1. Перейдите в Базу данных SQL Microsoft Azure или ресурс пула Azure Synapse Analytics SQL и выберите соответственно SQL Server или Synapse Workspace, в которых находится ресурс. Ссылку на них можно найти на странице обзора ресурсов рядом с именем сервера или именем рабочего пространства.

  2. Выберите Администрирование доменных служб Active Director или Администрирование SQL Active Directory в разделе Параметры для SQL Server или рабочего пространства Synapse соответственно. Затем выберите Задать администратора.

    Active Directory admin page

  3. На странице администрирования Active Directory выберите пользователя (или группу), чтобы назначить его администратором SQL Server, и нажмите кнопку Выбрать. Это будет пользователь, который сможет создать пользователя автономной базы данных, как описано в следующем разделе.

    Add Active Directory admin

    На странице "Администратор Active Directory" отобразятся все участники и группы Active Directory. Неактивные пользователи или группы не могут быть выбраны так, как они не поддерживаются в качестве администраторов Microsoft Entra. Список поддерживаемых администраторов см. в разделе "Функции и ограничения Майкрософт" в разделе "Использование проверки подлинности Microsoft Entra для проверки подлинности с помощью База данных SQL или Azure Synapse".

  4. На странице Администратор Active Directory нажмите кнопку Сохранить. Процесс смены администратора занимает несколько минут.

Создание пользователя автономной базы данных

Затем вы создадите пользователя автономной базы данных в базе данных SQL Azure или Azure Synapse, сопоставленную с удостоверением Microsoft Entra. У пользователя автономной базы данных нет имени входа для основной базы данных, но он сопоставляется с удостоверением в каталоге, которое связано с этой базой данных. Удостоверение Microsoft Entra может быть отдельной учетной записью пользователя или группой. В этом случае необходимо создать пользователя автономной базы данных для задания Stream Analytics.

Дополнительные сведения см. в следующей статье по интеграции Microsoft Entra: универсальная проверка подлинности с помощью База данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA)

  1. Подключитесь к базе данных Azure SQL или Azure Synapse с помощью SQL Server Management Studio. Имя пользователя — это пользователь Microsoft Entra с разрешением ALTER ANY USER. Примером может быть администратор, заданный в SQL Server. Используйте идентификатор Microsoft Entra — универсальный с проверкой подлинности MFA .

    Connect to SQL Server

    Имя сервера <SQL Server name>.database.windows.net может отличаться в разных регионах. Например, в регионе Китая используйте <SQL Server name>.database.chinacloudapi.cn.

    Можно указать конкретную базу данных Azure SQL или Azure Synapse, выбрав Параметры > Свойства подключения > Подключение к базе данных.

    SQL Server connection properties

  2. При первом подключении может появиться следующее окно:

    New firewall rule window

    1. Если это произойдет, перейдите на ресурс SQL Server/в рабочую область Synapse на портале Microsoft Azure. В разделе Безопасность откройте страницу Брандмауэры и виртуальная сеть/брандмауэры.
    2. Добавьте новое правило с любым именем.
    3. Используйте IP-адрес Из в окне Новое правило брандмауэра для параметра Начальный IP-адрес.
    4. Используйте IP-адрес К в окне Новое правило брандмауэра для параметра Конечный IP-адрес.
    5. Нажмите кнопку Сохранить и повторите попытку подключения из SQL Server Management Studio.
  3. После подключения создайте пользователя автономной базы данных. Следующая команда SQL создает пользователя автономной базы данных с тем же именем, что и у задания Stream Analytics. Не забудьте добавить квадратные скобки вокруг ASA_JOB_NAME. Используйте следующий синтаксис T-SQL и выполните запрос.

    CREATE USER [ASA_JOB_NAME] FROM EXTERNAL PROVIDER;
    

    Чтобы проверить, правильно ли добавлен пользователь автономной базы данных, выполните следующую команду в среде SSMS и соответствующей базе данных, затем проверьте, приведено ли указанное вами имя ASA_JOB_NAME в столбце "Имя".

    SELECT * FROM <SQL_DB_NAME>.sys.database_principals
    WHERE type_desc = 'EXTERNAL_USER'
    
  4. Чтобы идентификатор Microsoft Entra проверял, имеет ли задание Stream Analytics доступ к База данных SQL, необходимо предоставить Microsoft Entra разрешение на обмен данными с базой данных. Для этого снова перейдите на страницу "Брандмауэры и виртуальная сеть"/"Брандмауэры" на портале Microsoft Azure и включите параметр "Разрешить доступ к серверу/рабочей области службам и ресурсам Azure".

    Firewall and virtual network

Предоставление разрешений заданию Stream Analytics

После создания пользователя автономной базы данных и получения доступа к службам Azure на портале, как описано в предыдущем разделе, задание Stream Analytics получит разрешение от управляемого удостоверения на выполнение команды CONNECT (подключение) к ресурсу базы данных Azure SQL через управляемое удостоверение. Рекомендуется предоставить разрешения SELECT и INSERT на выполнение задания Stream Analytics, поскольку они потребуются рабочему процессу Stream Analytics в дальнейшем. Разрешение SELECT позволяет заданию проверять подключение к таблице в базе данных Azure SQL. Разрешение INSERT позволяет тестировать комплексные запросы Stream Analytics после настройки ввода и вывода базы данных Azure SQL.

Эти разрешения можно предоставить заданию Stream Analytics с помощью среды SQL Server Management Studio. Дополнительные сведения см. в справочнике по работе с командой GRANT (Transact-SQL).

Чтобы предоставить разрешение только для определенной таблицы или объекта в базе данных, используйте следующий синтаксис T-SQL и выполните запрос.

GRANT CONNECT TO ASA_JOB_NAME;
GRANT SELECT, INSERT ON OBJECT::TABLE_NAME TO ASA_JOB_NAME;

Вместо этого можно щелкнуть правой кнопкой мыши базу данных Azure SQL или Azure Synapse в среде SQL Server Management Studio и выбрать Свойства > Разрешения. В меню разрешения можно просмотреть задание Stream Analytics, добавленное ранее, а затем по своему усмотрению вручную предоставить или отменить разрешения.

Чтобы просмотреть все разрешения, добавленные в пользователя ASA_JOB_NAME, выполните следующую команду в SSMS в соответствующей базе данных:

SELECT dbprin.name, dbprin.type_desc, dbperm.permission_name, dbperm.state_desc, dbperm.class_desc, object_name(dbperm.major_id)
FROM sys.database_principals dbprin
LEFT JOIN sys.database_permissions dbperm
ON dbperm.grantee_principal_id = dbprin.principal_id
WHERE dbprin.name = '<ASA_JOB_NAME>'

Создание выходных данных для Базы данных SQL Microsoft Azure или Azure Synapse

Примечание.

При использовании Управляемый экземпляр SQL (MI) в качестве ссылочных входных данных необходимо настроить общедоступную конечную точку в Управляемый экземпляр SQL. При настройке свойства базы данных необходимо указать полное доменное имя с портом. Например: sampleserver.public.database.windows.net,3342.

Теперь, после настройки управляемого удостоверения, можно добавить выходные данные Базы данных SQL Microsoft Azure или Azure Synapse в задание Stream Analytics.

Таблицу в базе данных SQL необходимо создавать с соответствующей выходной схемой. Имя этой таблицы — одно из обязательных свойств, которые должны быть заполнены при добавлении выходных данных базы данных SQL в задание Stream Analytics. Кроме того, для проверки подключения и выполнения запросов Stream Analytics заданию необходимо предоставить разрешения SELECT и INSERT. Если вы еще не сделали этого, ознакомьтесь с разделом Предоставление разрешений заданию Stream Analytics.

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

  2. Выберите Добавить > База данных SQL. В окне свойств выходных данных приемника Базы данных SQL выберите Управляемое удостоверение из раскрывающегося списка режима проверки подлинности.

  3. Укажите остальные свойства. Дополнительные сведения о создании выходных данных для Базы данных SQL см. в разделе База данных SQL. По завершении выберите Сохранить.

  4. После нажатия кнопки Сохранить должна автоматически запуститься проверка подключения к вашему ресурсу. Успешное завершение проверки указывает, что настройка подключения задания Stream Analytics к Базе данных SQL Microsoft Azure или Synapse SQL с использованием проверки подлинности по управляемым удостоверениям выполнена успешно.

Дополнительные шаги для ссылочных данных SQL

Azure Stream Analytics требует настройки учетной записи хранения задания при использовании справочных данных SQL. Эта учетная запись хранения используется для хранения содержимого, связанного с заданием Stream Analytics, например моментальных снимков эталонных данных SQL.

Выполните следующие действия, чтобы настроить связанную учетную запись хранения:

  1. На странице задания Stream Analytics выберите параметры учетной записи служба хранилища в разделе "Настройка" в меню слева.

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

  3. Следуйте инструкциям по настройке параметров учетной записи хранения.

    Screenshot of the Storage account settings page of a Stream Analytics job.

Важно!

  • Чтобы пройти проверку подлинности с помощью строка подключения, необходимо отключить параметры брандмауэра учетной записи хранения.
  • Чтобы выполнить проверку подлинности с помощью управляемого удостоверения, необходимо добавить задание Stream Analytics в список управления доступом учетной записи хранения для роли участника служба хранилища данных BLOB-объектов и роли участника табличных данных служба хранилища. Если вы не предоставите заданию доступ, задание не сможет выполнять никаких операций. Дополнительные сведения о том, как предоставить доступ, см. в разделе Назначение управляемому удостоверению доступа к другому ресурсу с помощью Azure RBAC.

Дополнительные шаги с управляемым удостоверением, назначаемого пользователем

Повторите действия, если выбранное управляемое удостоверение, назначаемое пользователем, для подключения ASA к Synapse:

  1. Создайте пользователя автономной базы данных. Замените ASA_Job_Name на управляемое удостоверение, назначаемое пользователем. См. пример ниже.
    CREATE USER [User-Assigned Managed Identit] FROM EXTERNAL PROVIDER;
    
  2. Предоставьте разрешения управляемому удостоверению, назначаемого пользователем. Замените ASA_Job_Name на управляемое удостоверение, назначаемое пользователем.

Дополнительные сведения см. в приведенных выше разделах.

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

Управляемое удостоверение, созданное для задания Stream Analytics, удаляется только при удалении этого задания. Невозможно удалить управляемое удостоверение, не удаляя задание. Если вы больше не хотите использовать управляемое удостоверение, измените способ проверки подлинности для вывода данных. Управляемое удостоверение продолжит существовать до тех пор, пока задание не будет удалено, и будет использоваться, если вы снова решите задействовать проверку подлинности по управляемым удостоверениям.

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