Transmisión de datos de Confluent Cloud Kafka con Azure Stream Analytics
En este artículo se describe cómo conectar el trabajo de Azure Stream Analytics directamente a Confluent Cloud Kafka como entrada.
Requisitos previos
- Tiene un clúster de Confluent Cloud Kafka.
- Tiene un archivo de clave de API para el clúster de Kafka, que contiene la clave de API que se va a usar como nombre de usuario, secreto de API para usarlo como contraseña y la dirección del servidor de arranque.
- Tiene un trabajo de Azure Stream Analytics. Puede crear un trabajo de Azure Stream Analytics siguiendo la documentación: Inicio rápido: Creación de un trabajo de Stream Analytics mediante Azure Portal
- El clúster de Confluent Cloud Kafka debe ser accesible públicamente y no estar detrás de un firewall o protegido en una red virtual.
- El tipo de marca de tiempo del tema del clúster de Confluent Cloud Kafka debe ser LogAppendTime. El valor predeterminado para el tema de Confluent Cloud Kafka es CreateTime.
- Debe tener un almacén de claves existente. 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
Configuración de Azure Stream Analytics para usar la identidad administrada
Azure Stream Analytics requiere configurar la identidad administrada para acceder al almacén de claves. Puede configurar el trabajo de Stream Analytics 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.
Descargar certificado de LetsEncrypt
Azure Stream Analytics es un cliente basado en librdkafka y para conectarse a Confluent Cloud, necesita certificados TLS que Confluent Cloud usa para la autenticación del servidor. Confluent Cloud usa certificados TLS de Let’s Encrypt, una entidad de certificación (CA) abierta.
Descargue el certificado ISRG Root X1 en formato PEM en el sitio de LetsEncrypt.
Configuración de Key Vault con permisos
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. 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. Para usar el certificado que descargó, primero debe cargarlo en el almacén de claves.
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.
En el almacén de claves, seleccione Control de acceso (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> |
Carga del certificado en Key Vault como secreto 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 e instalada 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>
Por ejemplo:
az account set --subscription mymicrosoftsubscription
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 confluentsecret --file C:\Users\Downloads\isrgrootx1.pem
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:
En el almacén de claves, seleccione Control de acceso (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> |
Configuración de la entrada de Kafka en el trabajo de Stream Analytics
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.
En su trabajo de Stream Analytics, seleccione Entradas en Topología de trabajo
Seleccione Agregar entrada>Kafka para abrir la hoja Nueva configuración de entrada de Kafka.
Use la configuración siguiente:
Nota:
Para SASL_SSL y SASL_PLAINTEXT, Azure Stream Analytics solo admite el mecanismo PLAIN SASL.
Nombre de propiedad | Descripción |
---|---|
Alias de entrada | Un nombre descriptivo que se usa en las consultas para hacer referencia a la entrada |
Direcciones del servidor de arranque | Lista de pares host/puerto para establecer la conexión con el clúster de Confluent Cloud Kafka. Ejemplo: pkc-56d1g.eastus.azure.confluent.cloud:9092 |
Tema de Kafka | El nombre del tema de Kafka en el clúster de Confluent Cloud Kafka. |
Protocolo de seguridad | Seleccione SASL_SSL. El mecanismo admitido es PLAIN. |
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. |
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 que tenga acceso de nivel de tema mediante el protocolo de seguridad SASL_SSL. Para autenticarse en Confluent Cloud, deberá usar SASL_SSL y configurar el trabajo para autenticarse en Confluent Cloud mediante la clave de API.
Use la configuración siguiente:
Configuración | Valor |
---|---|
Nombre de usuario | clave de API de Confluent Cloud |
Contraseña | secreto de API de Confluent Cloud |
Nombre del almacén de claves | nombre de almacén de claves de Azure con certificado cargado |
Certificados de almacén de confianza | nombre del Secreto de Key Vault que contiene el certificado ISRG Root X1 |
Guardar la configuración y probar la conexión
Guarde la configuración. El trabajo de Azure Stream Analytics se valida mediante la configuración proporcionada. Una conexión correcta se muestra en el portal si Stream Analytics puede conectarse al clúster de Kafka.
Limitaciones
- El certificado cargado en el almacén de claves debe estar en formato PEM.
- La versión mínima de Kafka debe ser 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.
- Debe usar la CLI de Azure para cargar el certificado como secreto en el almacén de claves. No se pueden cargar certificados con secretos de varias líneas en el almacén de claves mediante Azure Portal.
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.