Sortie Kafka depuis Azure Stream Analytics (préversion)

Azure Stream Analytics vous permet de vous connecter directement à des clusters Kafka en tant que producteur pour géné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. La sortie ASA 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 à l’intérieur d’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 sortie 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 l’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. Accorder à Azure Stream Analytics des autorisations pour accéder au certificat chargé.
  6. Configurer la sortie 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 sortie Kafka :

Nom de la propriété Description
Alias de sortie Nom convivial utilisé dans les requêtes pour référencer votre 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 None.
Format de sérialisation de l'événement Le format de sérialisation (JSON, CSV ou Avro) du flux de données entrant.
Clé de partition Azure Stream Analytics attribue des partitions en utilisant un partitionnement arrondi.
Type de compression d’événement Kafka Le type de compression utilisé pour les flux de données sortants, tels que Gzip, Snappy, Lz4, Zstd ou None.

Capture d’écran illustrant comment configurer la sortie 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 :

Remarque

Pour SASL_SSL et SASL_PLAINTEXT, Azure Stream Analytics prend uniquement en charge le mécanisme PLAIN SASL. Vous devez charger des certificats en tant que secrets dans le coffre de clés à l’aide d’Azure CLI.

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 : SASL (authentification simple et couche de sécurité) et SSL pour garantir à la fois l’authentification et le chiffrement des données lors de la transmission. 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. Cliquez sur l'onglet Identité managée sous Configurer.
  2. Sélectionnez Changer d’identité et sélectionnez l’identité à utiliser avec le travail : 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 où 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 au réseau virtuel

Si votre Kafka se trouve à l'intérieur d'un réseau virtuel (VNET) ou derrière un pare-feu, vous devez configurer votre tâche Azure Stream Analytics pour accéder à votre rubrique Kafka. 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 tâches 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 diffusion en continu (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 se connecter est la version 0.10.
  • Azure Stream Analytics ne prend pas en charge l'authentification à Confluent Cloud à l'aide d'OAuth ou de l'authentification unique SAML (SSO). Vous devez utiliser la clé d'API via le protocole SASL_SSL

Remarque

Pour obtenir de l’aide directe sur l’utilisation de la sortie Kafka Azure Stream Analytics, contactez askasa@microsoft.com.

Étapes suivantes