Выходные данные Kafka из Azure Stream Analytics (предварительная версия)

Azure Stream Analytics позволяет подключаться непосредственно к кластерам Kafka в качестве производителя для вывода данных. Решение является низким кодом и полностью управляется командой Azure Stream Analytics в Корпорации Майкрософт, что позволяет ему соответствовать стандартам соответствия бизнес-требованиям. Выходные данные ASA Kafka являются обратно совместимыми и поддерживают все версии с последней версией клиента, начиная с версии 0.10. Пользователи могут подключаться к кластерам Kafka в виртуальной сети и кластерах Kafka с общедоступной конечной точкой в зависимости от конфигураций. Конфигурация зависит от существующих соглашений о конфигурации Kafka. Поддерживаемые типы сжатия: None, Gzip, Snappy, LZ4 и Zstd.

Шаги

В этой статье показано, как настроить Kafka в качестве выходных данных из Azure Stream Analytics. Существует шесть шагов:

  1. Создайте задание Azure Stream Analytics.
  2. Настройте задание Azure Stream Analytics для использования управляемого удостоверения, если используется mTLS или протоколы безопасности SASL_SSl.
  3. Настройте хранилище ключей Azure, если используется mTLS или SASL_SSl протоколы безопасности.
  4. Отправка сертификатов в качестве секретов в хранилище ключей Azure.
  5. Предоставьте Azure Stream Analytics разрешения для доступа к отправленном сертификату.
  6. Настройте выходные данные Kafka в задании Azure Stream Analytics.

Примечание.

В зависимости от того, как настроен кластер Kafka и тип используемого кластера Kafka, некоторые из описанных выше шагов могут не применяться к вам. Примеры: если вы используете confluent cloud Kafka, вам не потребуется отправить сертификат для использования соединителя Kafka. Если кластер Kafka находится в виртуальной сети или за брандмауэром, возможно, потребуется настроить задание Azure Stream Analytics для доступа к разделу Kafka с помощью приватного канала или выделенной конфигурации сети.

Настройка

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

Имя свойства Description
Псевдоним вывода Понятное имя, используемое в запросах для ссылки на выходные данные
Адреса сервера начальной загрузки Список пар узлов и портов для установления подключения к кластеру Kafka.
Раздел Kafka Именованный, упорядоченный и секционированные потоки данных, которые позволяют обрабатывать сообщения на основе публикации и подписки на события.
Протокол безопасности Как подключиться к кластеру Kafka. Azure Stream Analytics поддерживает MTLS, SASL_SSL, SASL_PLAINTEXT или Нет.
Формат сериализации событий Формат сериализации (JSON, CSV, Avro) исходящего потока данных.
Ключ раздела Azure Stream Analytics назначает секции с помощью циклического секционирования.
Тип сжатия событий Kafka Тип сжатия, используемый для исходящих потоков данных, таких как Gzip, Snappy, Lz4, Zstd или None.

Снимок экрана: настройка выходных данных kafka для задания Stream Analytics.

Проверка подлинности и шифрование

Для подключения к кластерам Kafka можно использовать четыре типа протоколов безопасности:

Примечание.

Для SASL_SSL и SASL_PLAINTEXT Azure Stream Analytics поддерживает только механизм PLAIN SASL. Вы должны отправлять сертификаты в качестве секретов в хранилище ключей с помощью Azure CLI.

Имя свойства Description
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.

Пошаговое руководство по подключению к cloud kakfa confluent см. в документации.

Интеграция хранилища ключей

Примечание.

При использовании сертификатов хранилища доверия с протоколами безопасности mTLS или SASL_SSL необходимо иметь хранилище ключей Azure и управляемое удостоверение, настроенное для задания Azure Stream Analytics. Проверьте параметры сети хранилища ключей, чтобы убедиться, что выбрано разрешение общедоступного доступа из всех сетей . Предположим, что хранилище ключей находится в виртуальной сети или разрешает доступ только из определенных сетей. В этом случае необходимо внедрить задание ASA в виртуальную сеть, содержащую хранилище ключей, или внедрить задание ASA в виртуальную сеть, а затем подключить хранилище ключей к виртуальной сети, содержащей задание с помощью конечных точек службы.

Azure Stream Analytics легко интегрируется с хранилищем ключей Azure для доступа к сохраненным секретам, необходимым для проверки подлинности и шифрования при использовании MTLS или протоколов безопасности SASL_SSL. Задание Azure Stream Analytics подключается к хранилищу ключей Azure с помощью управляемого удостоверения, чтобы обеспечить безопасное подключение и избежать кражи секретов. Сертификаты хранятся в виде секретов в хранилище ключей и должны находиться в формате PEM.

Настройка хранилища ключей с разрешениями

Вы можете создать ресурс хранилища ключей, выполнив краткое руководство по созданию хранилища ключей с помощью портал Azure для отправки сертификатов, у вас должен быть доступ к хранилищу ключей Администратор istrator. Следуйте приведенным ниже инструкциям, чтобы предоставить администратору доступ.

Примечание.

У вас должны быть разрешения "Владелец" для предоставления других разрешений хранилища ключей.

  1. Выберите Управление доступом (IAM) .

  2. Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.

  3. Назначьте роль с помощью следующей конфигурации:

Параметр Значение
Роль Администратор хранилища ключей
Назначить доступ для Пользователь, группа или субъект-служба
Участники <Сведения о вашей учетной записи или электронная почта>

Отправка сертификата в хранилище ключей с помощью Azure CLI

Внимание

Для правильной работы этой команды необходимо иметь разрешения Key Vault Администратор istrator. Для отправки сертификатов в хранилище ключей необходимо использовать 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 можно настроить для использования управляемого удостоверения, перейдя на вкладку "Управляемое удостоверение " слева в разделе "Настройка".

Снимок экрана: настройка управляемого удостоверения для задания ASA.

  1. Перейдите на вкладку Управляемое удостоверение в разделе Настройка.
  2. Выберите переключатель удостоверения и выберите удостоверение, используемое с заданием: назначаемое системой удостоверение или удостоверение, назначаемое пользователем.
  3. Для удостоверения, назначаемого пользователем, выберите подписку, в которой находится удостоверение, назначаемое пользователем, и выберите имя удостоверения.
  4. Проверьте и сохраните.

Предоставление разрешений на задание Stream Analytics для доступа к сертификату в хранилище ключей

Чтобы задание Azure Stream Analytics читало секрет в хранилище ключей, задание должно иметь разрешение на доступ к хранилищу ключей. Чтобы предоставить специальные разрешения заданию Stream Analytics, выполните следующие действия.

  1. Выберите Управление доступом (IAM) .

  2. Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.

  3. Назначьте роль с помощью следующей конфигурации:

Параметр Значение
Роль Пользователь секретов хранилища ключей
Управляемое удостоверение Задание Stream Analytics для управляемого удостоверения, назначаемого системой, или управляемого удостоверения, назначаемого пользователем
Участники <Имя задания> Stream Analytics или <имя назначаемого пользователем удостоверения>

Интеграция с виртуальной сетью

Если Kafka находится в виртуальной сети или за брандмауэром, необходимо настроить задание Azure Stream Analytics для доступа к разделу Kafka. Дополнительные сведения см. в статье "Запуск задания Azure Stream Analytics" в документации по Azure виртуальная сеть.

Ограничения

  • При настройке заданий Azure Stream Analytics для использования виртуальной сети или SWIFT задание должно быть настроено как минимум с шестью (6) единицами потоковой передачи или одной единицей потоковой передачи версии 2 (1).
  • При использовании mTLS или SASL_SSL с хранилищем ключей Azure необходимо преобразовать хранилище ключей Java в формат PEM.
  • Минимальная версия Kafka, к которому можно подключиться, можно настроить Azure Stream Analytics, версия 0.10.
  • Azure Stream Analytics не поддерживает проверку подлинности для слияния облака с помощью OAuth или единого входа SAML. Ключ API необходимо использовать с помощью протокола SASL_SSL

Примечание.

Чтобы получить прямую справку по использованию выходных данных Azure Stream Analytics Kafka, обратитесь к askasa@microsoft.com.

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