Transmisión de datos de Kafka a Azure Stream Analytics (versión preliminar)
Kafka es una plataforma de streaming distribuido que se usa para publicar secuencias de registros y suscribirse a ellas. Kafka está diseñado para que las aplicaciones puedan procesar registros a medida que se producen. Es un sistema de código abierto desarrollado por Apache Software Foundation y escrito en Java y Scala.
Estos son los casos de uso principales:
- Mensajería
- Seguimiento de actividad de sitios web
- Métricas
- Agregación de registros
- Procesamiento de flujos
Azure Stream Analytics permite conectarse directamente a clústeres de Kafka para ingerir 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 entrada 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 origen de entrada para Azure Stream Analytics. Hay seis pasos:
- Cree un trabajo de Azure Stream Analytics.
- Configure el trabajo de Azure Stream Analytics para usar la identidad administrada si usa mTLS o SASL_SSL protocolos de seguridad.
- Configure Azure Key Vault si usa mTLS o SASL_SSL protocolos de seguridad.
- Cargue certificados como secretos en Azure Key Vault.
- Conceda permisos de Azure Stream Analytics para acceder al certificado cargado.
- Configure la entrada 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 entrada de Kafka:
Importante
Para configurar el clúster de Kafka como entrada, el tipo de marca de tiempo del tema de entrada debe ser LogAppendTime. El único tipo de marca de tiempo que admite Azure Stream Analytics es LogAppendTime. Azure Stream Analytics solo admite formato decimal numérico.
Nombre de propiedad | Descripción |
---|---|
Alias de entrada/salida | Nombre descriptivo que se usa en las consultas para hacer referencia a la entrada o 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. |
Identificador del grupo de consumidores | Nombre del grupo de consumidores de Kafka del que la entrada debe formar parte. Se asignará automáticamente si no se proporciona. |
Formato de serialización de eventos | Formato de serialización (JSON, CSV, Avro, Parquet o Protobuf) del flujo de datos entrante. |
Autenticación y cifrado
Puede usar cuatro tipos de protocolos de seguridad para conectarse a los clústeres de Kafka:
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:
- Entrada de Confluent Cloud Kafka: transmisión de datos de Confluent Cloud Kafka con Azure Stream Analytics
- Confluent Cloud Kafka: Transmisión de datos de Azure Stream Analytics a Confluent Cloud
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. Debe tener acceso de "Administrador de Key Vault" para cargar certificados 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.
Seleccione Access Control (IAM) .
Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.
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.
- Haga clic en la pestaña Identidad administrada en Configurar.
- Seleccione en Cambiar identidad y seleccione la identidad que se usará con el trabajo: identidad asignada por el sistema o identidad asignada por el usuario.
- 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.
- 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:
Seleccione Access Control (IAM) .
Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.
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 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. 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 entrada de Kafka de Azure Stream Analytics, póngase en contacto con askasa@microsoft.com.