Помещение BLOB-объектов в очередь для приема с использованием проверки подлинности на основе управляемого удостоверения
При помещении BLOB-объектов в очередь для приема данных из собственных учетных записей хранения вы можете использовать управляемые удостоверения вместо маркеров подписанного URL-адреса (SAS) и способов проверки подлинности на основе общих ключей. Управляемые удостоверения — это более безопасный способ приема данных, так как удостоверения не требуют отправки маркеров SAS клиента или общих ключей службе. Вместо этого управляемое удостоверение назначается кластеру и получает разрешения на чтение для учетной записи хранения, используемой для приема данных. Эти разрешения можно отозвать в любое время.
Примечание.
- Этот способ проверки подлинности применяется только к BLOB-объектам Azure и файлам Azure Data Lake, размещенным в учетных записях хранения, принадлежащих клиенту. Он не применяется к локальным файлам, отправленным с помощью пакета SDK для Kusto.
- Поддерживается только прием с постановкой в очередь. Встроенный прием в языке запросов Kusto и прямой прием с помощью интерфейсов API пакета SDK не поддерживаются.
Назначение управляемого удостоверения кластеру
Чтобы добавить управляемое удостоверение, назначаемое системой или пользователем, в кластер, следуйте инструкциям из статьи Общие сведения об управляемых удостоверениях. Если кластеру уже назначено требуемое управляемое удостоверение, скопируйте его идентификатор объекта, выполнив следующие действия:
Войдите на портал Azure с помощью учетной записи, связанной с подпиской Azure, которая содержит кластер.
Перейдите к кластеру и выберите Удостоверение.
Выберите соответствующий тип удостоверения (назначаемое системой или пользователем), а затем скопируйте идентификатор объекта необходимого удостоверения.
Предоставление разрешений управляемому удостоверению
На портале Azure перейдите к учетной записи хранения, содержащей данные, которые необходимо принять.
Выберите Управление доступом, а затем щелкните + Добавить>Добавить назначение ролей.
Предоставьте читателю данных хранилища 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). Служба попытается установить размер с помощью управляемого удостоверения для проверки подлинности.