Partager via


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 :

  1. Créez un travail Azure Stream Analytics.
  2. Configurez votre travail Azure Stream Analytics pour utiliser une identité managée si vous utilisez les protocoles de sécurité mTLS ou SASL_SSL.
  3. Configurez Azure Key Vault si vous utilisez les protocoles de sécurité mTLS ou SASL_SSL.
  4. Chargez des certificats en tant que secrets dans Azure Key Vault.
  5. Accordez à Azure Stream Analytics des autorisations pour accéder au certificat chargé.
  6. 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.

Capture d’écran illustrant comment configurer l’entrée Kafka pour un travail Stream Analytics.

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 :

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.

  1. Sélectionnez Contrôle d’accès (IAM) .

  2. Sélectionnez Ajouter>Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.

  3. 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.

Capture d’écran montrant comment configurer une identité managée pour un travail ASA.

  1. Sélectionnez 'onglet Identité managée sous Configurer.
  2. 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.
  3. 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é.
  4. 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 :

  1. Sélectionnez Contrôle d’accès (IAM) .

  2. Sélectionnez Ajouter>Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.

  3. 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.

Étapes suivantes