Потоковая передача данных из облака Confluent cloud Kafka с помощью Azure Stream Analytics
В этой статье описывается, как подключить задание Azure Stream Analytics непосредственно к слиянию облачного kafka в качестве входных данных.
Необходимые компоненты
- У вас есть кластер confluent cloud kafka.
- У вас есть файл ключа API для кластера kafka, который содержит ключ API, используемый в качестве имени пользователя, секрет API для использования в качестве пароля и адреса сервера начальной загрузки.
- У вас есть задание Azure Stream Analytics. Задание Azure Stream Analytics можно создать, следуя документации. Краткое руководство. Создание задания Stream Analytics с помощью портал Azure
- Кластер confluent cloud kafka должен быть общедоступным, а не за брандмауэром или защищенным в виртуальной сети.
- Тип метки времени для раздела кластера confluent cloud kafka должен быть LogAppendTime. Значением по умолчанию для раздела CreateTime является confluent cloud kafka.
- У вас должно быть существующее хранилище ключей. Вы можете создать ресурс хранилища ключей, выполнив краткое руководство по созданию хранилища ключей с помощью портал Azure
Настройка Azure Stream Analytics для использования управляемого удостоверения
Azure Stream Analytics требует настройки управляемого удостоверения для доступа к хранилищу ключей. Задание stream analytics можно настроить для использования управляемого удостоверения, перейдя на вкладку "Управляемое удостоверение " слева в разделе "Настройка".
- Перейдите на вкладку Управляемое удостоверение в разделе Настройка.
- Выберите параметр "Переключить удостоверение " и выберите удостоверение, используемое с заданием: назначаемое системой удостоверение или удостоверение, назначаемое пользователем.
- Для удостоверения, назначаемого пользователем, выберите подписку, в которой находится удостоверение, назначаемое пользователем, и выберите имя удостоверения.
- Проверьте и сохраните.
Скачивание сертификата из LetsEncrypt
Azure Stream Analytics — это клиент на основе librdkafka, а для подключения к облаку требуется TLS-сертификаты, которые объединяют облачные ресурсы для проверки подлинности сервера. Confluent cloud использует сертификаты TLS из Let's Encrypt, открытый центр сертификации (ЦС).
Скачайте сертификат ISRG Root X1 в формате PEM на сайте LetsEncrypt.
Настройка хранилища ключей с разрешениями
Azure Stream Analytics легко интегрируется с хранилищем ключей Azure для доступа к сохраненным секретам, необходимым для проверки подлинности и шифрования. Задание Azure Stream Analytics подключается к хранилищу ключей Azure с помощью управляемого удостоверения, чтобы обеспечить безопасное подключение и избежать кражи секретов. Чтобы использовать скачанный сертификат, сначала необходимо передать его в хранилище ключей.
Для отправки сертификатов необходимо иметь доступ "Администратор Key Vault" к хранилищу ключей. Выполните следующие действия, чтобы предоставить администратору доступ:
Примечание.
У вас должны быть разрешения "Владелец" для предоставления других разрешений хранилища ключей.
В хранилище ключей выберите элемент управления доступом (IAM).
Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.
Назначьте роль с помощью следующей конфигурации:
Параметр | Значение |
---|---|
Роль | Администратор хранилища ключей |
Назначить доступ для | Пользователь, группа или субъект-служба |
Участники | <Сведения о вашей учетной записи или электронная почта> |
Отправка сертификата в хранилище ключей в качестве секрета с помощью Azure CLI
Внимание
Для правильной работы этой команды необходимо иметь разрешение "Администратор Key Vault" для правильной передачи сертификата в виде секрета. Для отправки сертификатов в хранилище ключей необходимо использовать Azure CLI. Задание Azure Stream Analytics завершится ошибкой, когда срок действия сертификата, используемого для проверки подлинности. Чтобы устранить эту проблему, необходимо обновить или заменить сертификат в хранилище ключей и перезапустить задание Azure Stream Analytics.
Убедитесь, что вы настроили и установили Azure CLI локально с помощью PowerShell. Вы можете посетить эту страницу, чтобы получить рекомендации по настройке Azure CLI: начало работы с Azure CLI
Войдите в Azure CLI:
az login
Подключитесь к подписке, содержащей хранилище ключей:
az account set --subscription <subscription name>
Например:
az account set --subscription mymicrosoftsubscription
Следующая команда может отправить сертификат в качестве секрета в хранилище ключей:
Имя <your key vault>
хранилища ключей, в которое нужно отправить сертификат. <name of the secret>
— любое имя, которое вы хотите дать секрету и как оно отображается в хранилище ключей. <file path to certificate>
— путь к расположению сертификата. Щелкните правой кнопкой мыши и скопируйте путь к сертификату.
az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>
Например:
az keyvault secret set --vault-name mykeyvault --name confluentsecret --file C:\Users\Downloads\isrgrootx1.pem
Предоставление разрешений на задание Stream Analytics для доступа к сертификату в хранилище ключей
Чтобы задание Azure Stream Analytics читало секрет в хранилище ключей, задание должно иметь разрешение на доступ к хранилищу ключей. Чтобы предоставить специальные разрешения заданию Stream Analytics, выполните следующие действия.
В хранилище ключей выберите элемент управления доступом (IAM).
Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.
Назначьте роль с помощью следующей конфигурации:
Параметр | Значение |
---|---|
Роль | Пользователь секретов хранилища ключей |
Управляемое удостоверение | Задание Stream Analytics для управляемого удостоверения, назначаемого системой, или управляемого удостоверения, назначаемого пользователем |
Участники | <Имя задания> Stream Analytics или <имя назначаемого пользователем удостоверения> |
Настройка входных данных kafka в задании Stream Analytics
Внимание
Чтобы настроить кластер Kafka в качестве входных данных, тип метки времени входного раздела должен быть LogAppendTime. Единственный тип метки времени Azure Stream Analytics поддерживает LogAppendTime. Azure Stream Analytics поддерживает только числовый десятичный формат.
В задании Stream Analytics выберите входные данные в разделе "Топология заданий"
Выберите "Добавить входные данные>Kafka", чтобы открыть колонку "Новая конфигурация ввода" Kafka.
Используйте следующую конфигурацию:
Примечание.
Для SASL_SSL и SASL_PLAINTEXT Azure Stream Analytics поддерживает только механизм PLAIN SASL.
Имя свойства | Description |
---|---|
Псевдоним входных данных | Понятное имя, используемое в запросах для ссылки на входные данные |
Адреса сервера начальной загрузки | Список пар узлов и портов для установления подключения к кластеру confluent cloud kafka. Пример: pkc-56d1g.eastus.azure.confluent.cloud:9092 |
Раздел Kafka | Имя раздела kafka в кластере confluent cloud kafka. |
Протокол безопасности | Выберите SASL_SSL. Поддерживаемый механизм — PLAIN. |
Идентификатор группы потребителей | Имя группы потребителей Kafka, в которую входные данные должны быть частью. Он будет автоматически назначен, если он не указан. |
Формат сериализации событий | Формат сериализации (JSON, CSV, Avro, Parquet, Protobuf) входящего потока данных. |
Внимание
Confluent Cloud поддерживает проверку подлинности с помощью ключей API, OAuth или единого входа SAML. Azure Stream Analytics не поддерживает проверку подлинности с помощью OAuth или единого входа SAML. Вы можете подключиться к облаку confluent с помощью ключа API, имеющего доступ на уровне раздела с помощью протокола безопасности SASL_SSL. Чтобы выполнить проверку подлинности в облаке confluent cloud, необходимо использовать SASL_SSL и настроить задание для проверки подлинности в облаке с помощью ключа API.
Используйте следующую конфигурацию:
Параметр | Значение |
---|---|
Имя пользователя | ключ облачного API confluent |
Пароль | Секрет облачного API confluent |
Имя хранилища ключей | Имя хранилища ключей Azure с отправленным сертификатом |
Сертификаты Truststore | имя секрета Key Vault, который содержит сертификат ISRG Root X1 |
Сохранение конфигурации и тестового подключения
Сохраните конфигурацию. Задание Azure Stream Analytics проверяется с помощью предоставленной конфигурации. Успешное подключение отображается на портале, если stream analytics может подключиться к кластеру kafka.
Ограничения
- Сертификат, отправленный в хранилище ключей, должен иметь формат PEM.
- Минимальная версия kafka должна быть версии 0.10.
- Azure Stream Analytics не поддерживает проверку подлинности для слияния облака с помощью OAuth или единого входа SAML. Ключ API необходимо использовать через протокол SASL_SSL.
- Для отправки сертификата в хранилище ключей необходимо использовать Azure CLI. Вы не можете отправлять сертификаты с несколькими строками секретов в хранилище ключей с помощью портал Azure.
Примечание.
Чтобы получить прямую справку по использованию входных данных Azure Stream Analytics Kafka, обратитесь к askasa@microsoft.com.