Diffuser en continu des données de Kafka vers Azure Stream Analytics
Kafka est une plateforme de diffusion en continu distribuée utilisée pour publier et s’abonner aux flux d’enregistrements. Kafka est conçue pour permettre à vos applications de traiter les enregistrements au fur et à mesure qu’ils se produisent. Il s’agit d’un système open source développé par Apache Software Foundation et écrit en Java et Scala.
Voici les principaux cas d’usage :
- Messagerie
- Suivi des activités du site web
- Métriques
- Agrégation des journaux
- Traitement de flux
Azure Stream Analytics vous permet de vous connecter directement aux clusters Kafka pour ingérer des données. La solution est à faible code et entièrement managée par l’équipe Azure Stream Analytics de Microsoft, ce qui lui permet de répondre aux normes de conformité métier. L’entrée Kafka est rétrocompatible et prend en charge toutes les versions, avec la dernière version du client à partir de la version 0.10. Les utilisateurs peuvent se connecter aux clusters Kafka dans un réseau virtuel, ainsi qu’aux clusters Kafka disposant d’un point de terminaison public, en fonction des configurations. La configuration s’appuie sur des conventions de configuration Kafka existantes. Les types de compression pris en charge sont None, Gzip, Snappy, LZ4 et Zstd.
Étapes
Cet article explique comment configurer Kafka en tant que source d’entrée d’Azure Stream Analytics. Il existe six étapes :
- Créez un travail Azure Stream Analytics.
- Configurez votre travail Azure Stream Analytics pour utiliser une identité managée si vous utilisez les protocoles de sécurité mTLS ou SASL_SSL.
- Configurez Azure Key Vault si vous utilisez les protocoles de sécurité mTLS ou SASL_SSL.
- Chargez des certificats en tant que secrets dans Azure Key Vault.
- Accordez à Azure Stream Analytics des autorisations pour accéder au certificat chargé.
- Configurez l’entrée Kafka dans votre travail Azure Stream Analytics.
Remarque
En fonction de la configuration de votre cluster Kafka et du type de cluster Kafka que vous utilisez, certaines des étapes ci-dessus peuvent ne pas s’appliquer. Par exemple, si vous utilisez Confluent Cloud Kafka, vous n’aurez pas besoin de charger un certificat pour utiliser le connecteur Kafka. Si votre cluster Kafka se trouve à l’intérieur d’un réseau virtuel (VNET) ou derrière un pare-feu, vous devrez peut-être configurer votre travail Azure Stream Analytics pour accéder à votre rubrique Kafka à l’aide d’une liaison privée ou d’une configuration réseau dédiée.
Configuration
Le tableau suivant répertorie les noms de propriétés et leur description pour la création d’une entrée Kafka :
Important
Pour configurer votre cluster Kafka en tant qu'entrée, le type d'horodatage de la rubrique d'entrée doit être LogAppendTime. Le seul type d'horodatage pris en charge par Azure Stream Analytics est LogAppendTime. Azure Stream Analytics prend uniquement en charge le format décimal numérique.
Nom de la propriété | Description |
---|---|
Alias d’entrée/sortie | Nom convivial utilisé dans les requêtes pour faire référence à votre entrée ou sortie |
Adresses des serveurs d’amorçage | Liste des paires hôte/port pour établir la connexion au cluster Kafka. |
Rubrique Kafka | Un flux de données nommé, ordonné et partitionné qui permet le traitement basé sur les événements et la publication des messages. |
Protocole de sécurité | Comment vous souhaitez vous connecter à votre cluster Kafka. Azure Stream Analytics prend en charge mTLS, SASL_SSL, SASL_PLAINTEXT ou Aucun. |
ID de groupe de consommateurs | Nom du groupe de consommateurs Kafka dont l’entrée doit faire partie. S’il n’est pas fourni, il est attribué automatiquement. |
Format de sérialisation de l'événement | Format de sérialisation (JSON, CSV, Avro, Parquet, Protobuf) du flux de données entrant. |
Authentification et chiffrement
Vous pouvez utiliser quatre types de protocoles de sécurité pour vous connecter à vos clusters Kafka :
Nom de la propriété | Description |
---|---|
mTLS | Chiffrement et authentification. Prend en charge les mécanismes de sécurité PLAIN, SCRAM-SHA-256 et SCRAM-SHA-512. |
SASL_SSL | Il combine deux mécanismes de sécurité différents : l’authentification simple et la couche de sécurité (SASL) et SSL (Secure Sockets Layer) pour garantir à la fois l’authentification et le chiffrement lors de la transmission des données. Le protocole SASL_SSL prend en charge les mécanismes de sécurité PLAIN, SCRAM-SHA-256 et SCRAM-SHA-512. |
SASL_PLAINTEXT | authentification standard avec nom d’utilisateur et mot de passe sans chiffrement |
Aucun | Aucune authentification ni chiffrement. |
Important
Confluent Cloud prend en charge l'authentification à l'aide de clés d'API, d'OAuth ou de l'authentification unique SAML (SSO). Azure Stream Analytics ne prend pas en charge l’authentification à l’aide d’OAuth ou de l’authentification unique SAML (SSO). Vous pouvez vous connecter à Confluent Cloud en utilisant une clé d’API ayant accès au niveau de la rubrique via le protocole de sécurité SASL_SSL.
Pour obtenir un tutoriel pas à pas sur la connexion à Kafka Confluent Cloud, consultez la documentation :
- Entrée Kafka Confluent Cloud : Diffuser des données depuis Kafka Confluent Cloud avec Azure Stream Analytics
- Sortie Kafka Confluent Cloud : Diffuser des données depuis Azure Stream Analytics avec Kafka Confluent Cloud
Intégration de Key Vault
Remarque
Lorsque vous utilisez des certificats de magasin de confiance avec les protocoles de sécurité mTLS ou SASL_SSL, vous devez configurer Azure Key Vault et l’identité managée pour votre travail Azure Stream Analytics. Vérifiez les paramètres réseau de votre coffre de clés pour veiller à ce que l’option Autoriser l’accès public à partir de tous les réseaux est sélectionnée. Supposez que votre coffre de clés se trouve dans un réseau virtuel ou autorise uniquement l’accès à partir de réseaux spécifiques. Dans ce cas, vous devez injecter votre travail ASA dans un réseau virtuel contenant le coffre de clés, ou injecter votre travail ASA dans un réseau virtuel, puis connecter votre coffre de clés au réseau virtuel contenant le travail en utilisant des points de terminaison de service.
Azure Stream Analytics s’intègre en toute transparence à Azure Key Vault pour accéder aux secrets stockés nécessaires à l’authentification et au chiffrement lors de l’utilisation de mTLS ou de protocoles de sécurité SASL_SSL. Votre tâche Azure Stream Analytics se connecte à votre coffre de clés Azure à l'aide d'une identité managée afin de garantir une connexion sécurisée et d'éviter l'exfiltration de secrets. Les certificats sont stockés comme secrets dans le coffre de clés et doivent être au format PEM.
Configurer le coffre de clés avec des autorisations
Vous pouvez créer une ressource de coffre de clés en suivant la documentation Démarrage rapide : créer un coffre de clés à l’aide du portail Microsoft Azure. Pour charger des certificats, vous devez disposer d’un accès « Administrateur de coffre de clés » à votre coffre de clés. Procédez comme suit pour accorder l'accès administrateur :
Remarque
Vous devez disposer des autorisations « Propriétaire » pour accorder d'autres autorisations de coffre de clés.
Sélectionnez Contrôle d’accès (IAM) .
Sélectionnez Ajouter>Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.
Attribuez le rôle en utilisant la configuration suivante :
Paramètre | Valeur |
---|---|
Role | Administrateur Key Vault |
Attribuer l’accès à | Utilisateur, groupe ou principal de service |
Membres | <Vos informations de compte ou e-mail> |
Charger un certificat dans Key vault via Azure CLI
Important
Vous devez avoir l'accès « Administrateur de coffre de clés » aux autorisations de votre coffre de clés pour que cette commande fonctionne correctement, vous devez charger le certificat en tant que secret. Vous devez utiliser Azure CLI pour charger des certificats en tant que secrets dans votre coffre de clés. Votre tâche Azure Stream Analytics échoue lorsque le certificat utilisé pour l'authentification expire. Pour résoudre ce problème, vous devez mettre à jour/remplacer le certificat dans votre coffre de clés et redémarrer votre travail Azure Stream Analytics.
Vérifiez qu’Azure CLI est configuré localement avec PowerShell. Vous pouvez consulter cette page pour obtenir des conseils sur la configuration d’Azure CLI : Prise en main d’Azure CLI
Se connecter à l'interface Azure CLI :
az login
Connectez-vous à votre abonnement contenant votre coffre de clés :
az account set --subscription <subscription name>
La commande suivante peut charger le certificat en tant que secret dans votre coffre de clés :
<your key vault>
est le nom du coffre de clés dans lequel vous souhaitez charger le certificat. <name of the secret>
est le nom que vous souhaitez donner à votre secret et la façon dont il apparaît dans le coffre de clés. <file path to certificate>
est le chemin d'accès à l'endroit où se trouve le certificat. Vous pouvez cliquer avec le bouton droit et copier le chemin d'accès au certificat.
az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>
Par exemple :
az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem
Configurer l'identité managée
Azure Stream Analytics vous oblige à configurer l'identité managée pour accéder au coffre de clés. Vous pouvez configurer votre tâche ASA pour utiliser l'identité managée en accédant à l'onglet Identité managée sur le côté gauche sous Configurer.
- Sélectionnez 'onglet Identité managée sous Configurer.
- Sélectionnez Changer d'identité et sélectionnez l'identité à utiliser avec la tâche : identité affectée par le système ou identité affectée par l'utilisateur.
- Pour l'identité affectée par l'utilisateur, sélectionnez l'abonnement dans lequel se trouve votre identité affectée par l'utilisateur et sélectionnez le nom de votre identité.
- Examinez et enregistrez.
Accorder à la tâche Stream Analytics les autorisations d'accès au certificat dans le coffre de clés.
Pour que votre travail Azure Stream Analytics lise le secret dans votre coffre de clés, le travail doit avoir l’autorisation d’accéder au coffre de clés. Procédez comme suit pour accorder des autorisations spéciales à votre travail Stream Analytics :
Sélectionnez Contrôle d’accès (IAM) .
Sélectionnez Ajouter>Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.
Attribuez le rôle en utilisant la configuration suivante :
Paramètre | Valeur |
---|---|
Rôle | Utilisateur des secrets du coffre de clés |
Identité gérée | Le tâche Stream Analytics pour l'identité managée affectée par le système ou l'identité managée affectée par l'utilisateur |
Membres | <Nom de votre tâche Stream Analytics> ou <nom d'identité affectée par l'utilisateur> |
Intégration du réseau virtuel
Si votre cluster Kafka se trouve à l’intérieur d’un réseau virtuel ou derrière un pare-feu, configurez votre travail Azure Stream Analytics pour accéder à votre rubrique Kafka en utilisant une liaison privée ou d’une configuration de mise en réseau dédiée. Pour plus d'informations, consultez la documentation Exécuter votre tâche Azure Stream Analytics dans un réseau virtuel Azure.
Limites
- Lors de la configuration de vos travaux Azure Stream Analytics pour utiliser un réseau virtuel/SWIFT, votre travail doit être configuré avec au moins six (6) unités de streaming ou une unité de streaming (1) V2.
- Lorsque vous utilisez mTLS ou SASL_SSL avec Azure Key Vault, vous devez convertir votre magasin de clés Java au format PEM.
- La version minimale de Kafka à laquelle vous pouvez configurer Azure Stream Analytics pour la connexion est la version 0.10.
- Azure Stream Analytics ne prend pas en charge l'authentification sur le cloud confluent à l'aide de l'authentification unique (SSO) OAuth ou SAML. Vous devez utiliser la clé d'API via le protocole SASL_SSL
Remarque
Pour obtenir de l'aide directe sur l'utilisation de l'entrée Kafka Azure Stream Analytics, contactez askasa@microsoft.com.