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


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

При помещении BLOB-объектов в очередь для приема данных из собственных учетных записей хранения вы можете использовать управляемые удостоверения вместо маркеров подписанного URL-адреса (SAS) и способов проверки подлинности на основе общих ключей. Управляемые удостоверения — это более безопасный способ приема данных, так как удостоверения не требуют отправки маркеров SAS клиента или общих ключей службе. Вместо этого управляемое удостоверение назначается кластеру и получает разрешения на чтение для учетной записи хранения, используемой для приема данных. Эти разрешения можно отозвать в любое время.

Примечание.

  • Этот способ проверки подлинности применяется только к BLOB-объектам Azure и файлам Azure Data Lake, размещенным в учетных записях хранения, принадлежащих клиенту. Он не применяется к локальным файлам, отправленным с помощью пакета SDK для Kusto.
  • Поддерживается только прием с постановкой в очередь. Встроенный прием в языке запросов Kusto и прямой прием с помощью интерфейсов API пакета SDK не поддерживаются.

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

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

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

  2. Перейдите к кластеру и выберите Удостоверение.

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

Снимок экрана: страница обзора, на которой показан идентификатор объекта удостоверения, управляемого системой

Предоставление разрешений управляемому удостоверению

  1. На портале Azure перейдите к учетной записи хранения, содержащей данные, которые необходимо принять.

  2. Выберите Управление доступом, а затем щелкните + Добавить>Добавить назначение ролей.

  3. Предоставьте читателю данных хранилища BLOB-объектов управляемого удостоверения или участнику данных BLOB-объектов хранилища, если вы планируете использовать параметр источника DeleteSourceOnSuccess, разрешения для учетной записи хранения.

Примечание.

Разрешений Владелец или Участник будет недостаточно, и их предоставление приведет к сбою приема данных.

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

Внимание

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

Настройка политики управляемых удостоверений в Azure Data Explorer

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

Применение политики можно определить на уровне кластера или на уровне базы данных целевого кластера.

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

.alter-merge database <database name> policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Чтобы применить политику на уровне кластера, выполните следующую команду:

.alter-merge cluster policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Замените <managed_identity_id> идентификатором объекта требуемого управляемого удостоверения.

Примечание.

Для изменения политики управляемых удостоверений необходимо иметь All Database Admin разрешение на кластер.

Помещение BLOB-объектов в очередь с использованием управляемого удостоверения и пакета SDK для Kusto

При приеме данных с помощью пакета SDK для Kusto создайте URI BLOB-объекта с использованием проверки подлинности на основе управляемого удостоверения, добавив ;managed_identity={objectId} к URI неавторизованного BLOB-объекта. Если для приема данных вы используете назначаемое системой управляемое удостоверение кластера, можно добавить ;managed_identity=system в URI BLOB-объекта.

Внимание

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

Ниже приведены примеры кодов URI BLOB-объектов для управляемых удостоверений, назначенных системой и пользователем.

  • Назначаемое системой: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=system
  • Назначаемое пользователем: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=6a5820b9-fdf6-4cc4-81b9-b416b444fd6d

Внимание

  • При использовании управляемых удостоверений для приема данных с помощью пакета SDK для C# необходимо указать размер BLOB-объекта в StorageSourceOptions. Если он не указан, пакет SDK попытается заполнить размер BLOB-объекта путем доступа к учетной записи хранения, что приведет к сбою.
  • Параметр размера должен быть необработанным (несжатым) размером данных, а не размером большого двоичного объекта.
  • Если вы не знаете размер во время приема, укажите значение нуля (0). Служба попытается установить размер с помощью управляемого удостоверения для проверки подлинности.