Salida de Kafka desde Azure Stream Analytics (versión preliminar)

Azure Stream Analytics permite conectarse directamente a clústeres de Kafka como productor para generar datos. La solución es de poco código y está totalmente administrada por el equipo de Azure Stream Analytics en Microsoft, lo que le permite cumplir los estándares de cumplimiento empresarial. La salida de Kafka de ASA es compatible con versiones anteriores y admite todas las versiones con la versión de cliente más reciente a partir de la versión 0.10. Los usuarios pueden conectarse a clústeres de Kafka dentro de una red virtual y clústeres de Kafka con un punto de conexión público, en función de las configuraciones. La configuración se basa en las convenciones de configuración de Kafka existentes. Los tipos de compresión admitidos son None, Gzip, Snappy, LZ4 y Zstd.

Pasos

En este artículo se muestra cómo configurar Kafka como salida de Azure Stream Analytics. Hay seis pasos:

  1. Cree un trabajo de Azure Stream Analytics.
  2. Configure el trabajo de Azure Stream Analytics para usar la identidad administrada si usa los protocolos de seguridad mTLS o SASL_SSl.
  3. Configure Azure Key Vault si usa mTLS o SASL_SSl protocolos de seguridad.
  4. Cargue certificados como secretos en Azure Key Vault.
  5. Conceda permisos de Azure Stream Analytics para acceder al certificado cargado.
  6. Configure la salida de Kafka en el trabajo de Azure Stream Analytics.

Nota:

En función de cómo esté configurado el clúster de Kafka y del tipo de clúster de Kafka que use, es posible que algunos de los pasos anteriores no se le apliquen. Algunos ejemplos son: si usa Kafka en la nube de Confluent, no tendrá que cargar un certificado para usar el conector de Kafka. Si el clúster de Kafka está dentro de una red virtual (VNET) o detrás de un firewall, es posible que tenga que configurar el trabajo de Azure Stream Analytics para acceder al tema de Kafka mediante un vínculo privado o una configuración de red dedicada.

Configuración

En la tabla siguiente se enumeran los nombres de propiedad y su descripción para crear una salida de Kafka:

Nombre de propiedad Descripción
Alias de salida Nombre descriptivo que se usa en las consultas para hacer referencia a la salida
Direcciones del servidor de arranque Lista de pares host/puerto para establecer la conexión con el clúster de Kafka.
Tema de Kafka Flujo de datos con nombre, ordenado y particionado que permite el procesamiento de mensajes de publicación y suscripción y es controlado por eventos.
Protocolo de seguridad Cómo desea conectarse al clúster de Kafka. Azure Stream Analytics admite mTLS, SASL_SSL, SASL_PLAINTEXT o None.
Formato de serialización de eventos Formato de serialización (JSON, CSV, Avro) del flujo de datos saliente.
Clave de partición Azure Stream Analytics asigna particiones mediante la creación de particiones redondas.
Tipo de compresión de eventos kafka Tipo de compresión usado para flujos de datos salientes, como Gzip, Snappy, Lz4, Zstd o None.

Captura de pantalla que muestra cómo configurar la salida de kafka para un trabajo de análisis de transmisiones.

Autenticación y cifrado

Puede usar cuatro tipos de protocolos de seguridad para conectarse a los clústeres de Kafka:

Nota:

Para SASL_SSL y SASL_PLAINTEXT, Azure Stream Analytics solo admite el mecanismo PLAIN. Debe cargar certificados como secretos en el almacén de claves mediante la CLI de Azure.

Nombre de propiedad Descripción
mTLS Cifrado y autenticación. Admite mecanismos de seguridad PLAIN, SCRAM-SHA-256 y SCRAM-SHA-512.
SASL_SSL Esto combina dos mecanismos de seguridad diferentes: SASL (Capa de autenticación simple y seguridad) y SSL (Capa de sockets seguros) para garantizar que la autenticación y el cifrado estén en vigor para la transmisión de datos. El protocolo SASL_SSL admite mecanismos de seguridad PLAIN, SCRAM-SHA-256 y SCRAM-SHA-512.
SASL_PLAINTEXT autenticación estándar con nombre de usuario y contraseña sin cifrado
None Sin autenticación ni cifrado.

Importante

Confluent Cloud admite la autenticación mediante claves de API, OAuth o inicio de sesión único (SSO) de SAML. Azure Stream Analytics no admite la autenticación mediante OAuth ni el inicio de sesión único (SSO) de SAML. Puede conectarse a Confluent Cloud mediante una clave de API con acceso de nivel de tema mediante el protocolo de seguridad SASL_SSL.

Para ver un tutorial paso a paso sobre cómo conectarse a Confluent Cloud Kafka, visite la documentación:

Integración de almacén de claves

Nota:

Al usar certificados de almacén de confianza con protocolos de seguridad mTLS o SASL_SSL, debe tener el almacén de claves de Azure y la identidad administrada configurados para su trabajo de Azure Stream Analytics. Compruebe la configuración de red del almacén de claves para asegurarse de que está seleccionada Permitir el acceso público desde todas las redes. Supongamos que el almacén de claves está en una red virtual o solo permite el acceso desde redes específicas. En ese caso, debe insertar el trabajo de ASA en una red virtual que contenga el almacén de claves o insertar el trabajo de ASA en una red virtual y, a continuación, conectar el almacén de claves a la red virtual que contiene el trabajo mediante puntos de conexión de servicio.

Azure Stream Analytics se integra perfectamente con el almacén de claves de Azure para acceder a los secretos almacenados necesarios para la autenticación y el cifrado cuando se utilizan protocolos de seguridad mTLS o SASL_SSL. El trabajo de Azure Stream Analytics se conecta a la instancia de Azure Key Vault mediante una identidad administrada para garantizar una conexión segura y evitar la filtración de secretos. Los certificados se almacenan como secretos en el almacén de claves y deben estar en formato PEM.

Configuración de Key Vault con permisos

Puede crear un recurso de almacén de claves siguiendo la documentación Inicio rápido: Creación de un almacén de claves mediante Azure Portal Para cargar certificados, debe tener acceso de "Administrador de Key Vault" al almacén de claves. Siga los siguientes pasos para conceder acceso de administrador.

Nota:

Debe tener permisos de "Propietario" para conceder otros permisos del almacén de claves.

  1. Seleccione Access Control (IAM) .

  2. Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.

  3. Asigne el rol mediante la siguiente configuración:

Configuración Valor
Role Administrador de Key Vault
Asignar acceso a Usuario, grupo o entidad de servicio
Miembros <Su información de cuenta o correo electrónico>

Cargue el certificado en Key Vault a través de la CLI de Azure

Importante

Para que este comando funcione correctamente debe tener acceso con permisos de "Administrador de Key Vault" a su almacén de claves Debe cargar el certificado como un secreto. Debe usar la CLI de Azure para cargar certificados como secretos en el almacén de claves. El trabajo de Azure Stream Analytics producirá un error cuando expire el certificado usado para la autenticación. Para resolverlo, debe actualizar o reemplazar el certificado en el almacén de claves y reiniciar el trabajo de Azure Stream Analytics.

Asegúrese de que tiene la CLI de Azure configurada localmente con PowerShell. Puede visitar esta página para obtener instrucciones sobre cómo configurar la CLI de Azure: Introducción a la CLI de Azure

Inicio de sesión en la CLI de Azure:

az login

Conexión a la suscripción que contiene el almacén de claves:

az account set --subscription <subscription name>

El siguiente comando puede cargar el certificado como un secreto en el almacén de claves:

<your key vault> es el nombre del almacén de claves al que desea cargar el certificado. <name of the secret> es cualquier nombre que quiera asignar al secreto y cómo se muestra en el almacén de claves. <file path to certificate> es la ruta de acceso a donde se encuentra el certificado. Puede hacer clic con el botón derecho y copiar la ruta de acceso al certificado.

az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>

Por ejemplo:

az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem

Configuración de una identidad administrada

Azure Stream Analytics requiere configurar la identidad administrada para acceder al almacén de claves. Puede configurar el trabajo de ASA para usar la identidad administrada; para ello, vaya a la pestaña Identidad administrada situada a la izquierda en Configurar.

Captura de pantalla que muestra cómo configurar la identidad administrada para un trabajo de ASA.

  1. Haga clic en la pestaña Identidad administrada en Configurar.
  2. Seleccione Cambiar identidad y seleccione la identidad que se usará con el trabajo: identidad asignada por el sistema o identidad asignada por el usuario.
  3. Para la identidad asignada por el usuario, seleccione la suscripción en la que se encuentra la identidad asignada por el usuario y seleccione el nombre de la identidad.
  4. Revise y guarde.

Concesión de los permisos del trabajo de Stream Analytics para acceder al certificado en el almacén de claves

Para que el trabajo de Azure Stream Analytics lea el secreto en el almacén de claves, el trabajo debe tener permiso para acceder al almacén de claves. Siga estos pasos para conceder permisos especiales al trabajo de Stream Analytics:

  1. Seleccione Access Control (IAM) .

  2. Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.

  3. Asigne el rol mediante la siguiente configuración:

Configuración Valor
Role Usuario de secretos de Key Vault
Identidad administrada Trabajo de Stream Analytics para la identidad administrada asignada por el sistema o la identidad administrada asignada por el usuario
Miembros <Nombre del trabajo de Stream Analytics> o <nombre de identidad asignada por el usuario>

Integración con red virtual

Si Kafka está dentro de una red virtual (VNET) o detrás de un firewall, debe configurar el trabajo de Azure Stream Analytics para acceder al tema de Kafka. Visite Ejecución del trabajo de Azure Stream Analytics en una documentación de Azure Virtual Network para obtener más información.

Limitaciones

  • Al configurar los trabajos de Azure Stream Analytics para que usen VNET/SWIFT, el trabajo debe configurarse con al menos seis (6) unidades de streaming o una (1) unidad de streaming V2.
  • Cuando utilice mTLS o SASL_SSL con el almacén de claves Azure, deberá convertir su almacén de claves Java al formato PEM.
  • La versión mínima de Kafka a la que puede configurar Azure Stream Analytics para conectarse es la versión 0.10.
  • Azure Stream Analytics no admite la autenticación en Confluent Cloud mediante OAuth ni el inicio de sesión único (SSO) de SAML. Debe usar la clave de API mediante el protocolo SASL_SSL

Nota:

Para obtener ayuda directa con el uso de la salida de Kafka de Azure Stream Analytics, póngase en contacto con askasa@microsoft.com.

Pasos siguientes