Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Kafka — это распределенная платформа потоковой передачи, используемая для публикации и подписки на потоки записей. Kafka предназначен для того, чтобы приложения могли обрабатывать записи по мере их возникновения. Это система с открытым исходным кодом, разработанная Apache Software Foundation и написанная на Java и Scala.
Ниже приведены основные варианты использования.
- Обмен сообщениями
- Отслеживание действий веб-сайта
- Метрики
- Агрегирование журналов
- Потоковая обработка
Azure Stream Analytics позволяет подключаться непосредственно к кластерам Kafka для приема данных. Решение является низким кодом и полностью управляется командой Azure Stream Analytics в Корпорации Майкрософт, что позволяет ему соответствовать стандартам соответствия бизнес-требованиям. Входные данные Kafka являются обратно совместимыми и поддерживают все версии с последним выпуском клиента, начиная с версии 0.10. Пользователи могут подключаться к кластерам Kafka в виртуальной сети и кластерах Kafka с общедоступной конечной точкой в зависимости от конфигураций. Конфигурация зависит от существующих соглашений о конфигурации Kafka. Поддерживаемые типы сжатия: None, Gzip, Snappy, LZ4 и Zstd.
Шаги
В этой статье показано, как настроить Kafka в качестве источника входных данных для Azure Stream Analytics. Существует шесть шагов:
- Создайте задание Azure Stream Analytics.
- Настройте задание Azure Stream Analytics для использования управляемого удостоверения, если используется mTLS или протоколы безопасности SASL_SSL.
- Настройте хранилище ключей Azure, если вы используете mTLS или SASL_SSL протоколы безопасности.
- Отправка сертификатов в качестве секретов в хранилище ключей Azure.
- Предоставьте Azure Stream Analytics разрешения для доступа к отправленном сертификату.
- Настройте входные данные Kafka в задании Azure Stream Analytics.
Примечание.
В зависимости от того, как настроен кластер Kafka и тип используемого кластера Kafka, некоторые из описанных выше шагов могут не применяться к вам. Примеры: если вы используете confluent cloud Kafka, вам не потребуется отправить сертификат для использования соединителя Kafka. Если кластер Kafka находится в виртуальной сети или за брандмауэром, возможно, потребуется настроить задание Azure Stream Analytics для доступа к разделу Kafka с помощью приватного канала или выделенной конфигурации сети.
Настройка
В следующей таблице перечислены имена свойств и их описание для создания входных данных Kafka:
Внимание
Чтобы настроить кластер Kafka в качестве входного, тип метки времени входной темы должен быть LogAppendTime. Единственный тип метки времени Azure Stream Analytics поддерживает LogAppendTime. Azure Stream Analytics поддерживает только числовый десятичный формат.
| Имя свойства | Описание |
|---|---|
| Псевдоним ввода/вывода | Понятное имя, используемое в запросах для ссылки на входные или выходные данные |
| Адреса сервера начальной загрузки | Список пар узлов и портов для установления подключения к кластеру Kafka. |
| Тема Kafka | Именованный, упорядоченный и секционированный поток данных, который позволяет обрабатывать сообщения на основе модели публикация-подписка и событийной обработки. |
| Протокол безопасности | Как подключиться к кластеру Kafka. Azure Stream Analytics поддерживает mTLS, SASL_SSL, SASL_PLAINTEXT или None. |
| Идентификатор группы потребителей | Имя группы потребителей Kafka, которой должны принадлежать входные данные. Автоматически назначается, если не указано. |
| Формат сериализации событий | Формат сериализации (JSON, CSV, Avro, Parquet, Protobuf) входящего потока данных. |
Проверка подлинности и шифрование
Для подключения к кластерам Kafka можно использовать четыре типа протоколов безопасности:
| Имя свойства | Описание |
|---|---|
| mTLS | Шифрование и проверка подлинности. Поддерживает механизмы безопасности PLAIN, SCRAM-SHA-256 и SCRAM-SHA-512. |
| SASL_SSL | Он объединяет два разных механизма безопасности — SASL (простой уровень проверки подлинности и безопасности) и SSL-уровень безопасности, чтобы обеспечить как проверку подлинности, так и шифрование для передачи данных. Протокол SASL_SSL поддерживает механизмы безопасности PLAIN, SCRAM-SHA-256 и SCRAM-SHA-512. |
| SASL_PLAINTEXT | стандартная проверка подлинности с использованием имени пользователя и пароля без шифрования |
| нет | Проверка подлинности и шифрование отсутствует. |
Внимание
Confluent Cloud поддерживает проверку подлинности с помощью ключей API, OAuth или единого входа SAML. Azure Stream Analytics не поддерживает проверку подлинности единого входа OAuth или SAML. Вы можете подключиться к облаку confluent с помощью ключа API с доступом на уровне раздела через протокол безопасности SASL_SSL.
Пошаговые руководства по подключению к облаку Kafka см. в документации:
- Ввод Confluent Cloud Kafka: Передача данных из Confluent Cloud Kafka с помощью Azure Stream Analytics
- Выходные данные Confluent Cloud Kafka: потоковая передача данных из Azure Stream Analytics в облако Confluent
Интеграция хранилища ключей
Примечание.
При использовании сертификатов хранилища доверия с протоколами безопасности mTLS или SASL_SSL необходимо иметь хранилище ключей Azure и управляемое удостоверение, настроенное для задания Azure Stream Analytics. Проверьте параметры сети хранилища ключей, чтобы убедиться, что выбрано разрешение общедоступного доступа из всех сетей . Предположим, что хранилище ключей находится в виртуальной сети или разрешает доступ только из определенных сетей. В этом случае необходимо внедрить задание ASA в виртуальную сеть, содержащую хранилище ключей, или внедрить задание ASA в виртуальную сеть, а затем подключить хранилище ключей к виртуальной сети, содержащей задание с помощью конечных точек службы.
Azure Stream Analytics легко интегрируется с хранилищем ключей Azure для доступа к сохраненным секретам, необходимым для проверки подлинности и шифрования при использовании MTLS или протоколов безопасности SASL_SSL. Задание Azure Stream Analytics соединяется с хранилищем ключей Azure с использованием управляемого удостоверения, чтобы гарантировать безопасное подключение и предотвратить эксфильтрацию секретов. Сертификаты хранятся в виде секретов в хранилище ключей и должны находиться в формате PEM.
Настройка хранилища ключей с разрешениями
Вы можете создать ресурс хранилища ключей, выполнив краткое руководство по созданию хранилища ключей с помощью портала Azure. Для загрузки сертификатов у вас должны быть права 'Администратора хранилища ключей'. Выполните следующие действия, чтобы предоставить администратору доступ:
Примечание.
У вас должны быть права "Владелец" для предоставления других прав доступа к хранилищу ключей.
Выберите Управление доступом (IAM) .
Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.
Назначьте роль с помощью следующей конфигурации:
| Настройка | Значение |
|---|---|
| Роль | Администратор хранилища ключей |
| Назначить доступ к | Пользователь, группа или субъект-служба |
| Участники | <Сведения о вашей учетной записи или электронная почта> |
Отправка сертификата в хранилище ключей с помощью Azure CLI
Внимание
Для правильной работы этой команды необходимо иметь разрешение "Администратор Key Vault" для доступа к вашему 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>
Следующая команда может отправить сертификат в качестве секрета в хранилище ключей:
Имя <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 kafkasecret --file C:\Users\Downloads\certificatefile.pem
Настройка управляемой идентичности
Azure Stream Analytics требует настройки управляемого удостоверения для доступа к хранилищу ключей. Задание ASA можно настроить для использования управляемого удостоверения, перейдя на вкладку "Управляемое удостоверение " слева в разделе "Настройка".
- Выберите вкладку "Управляемое удостоверение" в разделе Настройка.
- Выберите параметр "Переключить удостоверение" и выберите удостоверение, которое будет использоваться с заданием: системное удостоверение или пользовательское удостоверение.
- Для пользовательской назначенной идентичности выберите подписку, в которой находится ваша пользовательская назначенная идентичность, и выберите имя вашей идентичности.
- Проверьте и сохраните.
Предоставление разрешений на задание Stream Analytics для доступа к сертификату в хранилище ключей
Чтобы задание Azure Stream Analytics читало секрет в хранилище ключей, задание должно иметь разрешение на доступ к хранилищу ключей. Чтобы предоставить специальные разрешения заданию Stream Analytics, выполните следующие действия.
Выберите Управление доступом (IAM) .
Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.
Назначьте роль с помощью следующей конфигурации:
| Настройка | Значение |
|---|---|
| Роль | Пользователь секретов хранилища ключей |
| Управляемая идентификация | Задание Stream Analytics для управляемого удостоверения, назначаемого системой, или управляемого удостоверения, назначаемого пользователем |
| Участники | <Имя задания Stream Analytics> или <имя назначенного пользователем удостоверения> |
Интеграция виртуальной сети
Если кластер Kafka находится в виртуальной сети или за брандмауэром, настройте задание Azure Stream Analytics для доступа к разделу Kafka с помощью приватного канала или выделенной конфигурации сети. Дополнительные сведения см. в документации по запуску задания Azure Stream Analytics в виртуальной сети Azure.
Ограничения
- При настройке заданий Azure Stream Analytics для использования виртуальной сети/SWIFT, задание должно быть настроено как минимум с шестью (6) потоковыми единицами или одной (1) потоковой единицей версии 2.
- При использовании mTLS или SASL_SSL с хранилищем ключей Azure необходимо преобразовать хранилище ключей Java в формат PEM.
- Минимальная версия Kafka, с которой можно настроить подключение Azure Stream Analytics, — это версия 0.10.
- Azure Stream Analytics не поддерживает аутентификацию в Confluent Cloud с помощью OAuth или SAML единой авторизации (SSO). Ключ API необходимо использовать с помощью протокола SASL_SSL
Примечание.
Чтобы получить прямую помощь по использованию входных данных Kafka для Azure Stream Analytics, свяжитесь с askasa@microsoft.com.