Simple Authentication and Security Layer (SASL) est un framework qui permet aux couches applicatives de choisir et d'implémenter divers mécanismes d'authentification. Utilisez SASL pour authentifier les utilisateurs et garantir que seuls les clients disposant d'identifiants valides peuvent se connecter à votre service Kafka.
Prérequis
Vous devez avoir créé un cluster Dataflow (cluster Kafka) avec le service Kafka sélectionné dans la console EMR. Pour plus d'informations, consultez Créer un cluster Dataflow Kafka.
Procédure
Étape 1 : Configurer SASL
E-MapReduce utilise le fichier de configuration server.properties et son paramètre kafka.sasl.config.type pour gérer la configuration SASL.
SASL est désactivé par défaut sur les clusters Kafka. L'exemple suivant active SASL en utilisant le mécanisme d'authentification SCRAM-SHA-512.
-
Créez un utilisateur.
Connectez-vous au nœud master du cluster via SSH. Pour plus d'informations, consultez Se connecter à un cluster.
-
Exécutez la commande suivante pour créer l'utilisateur
admin.kafka-configs.sh --bootstrap-server core-1-1:9092 --alter --add-config 'SCRAM-SHA-256=[password=admin-secret],SCRAM-SHA-512=[password=admin-secret]' --entity-type users --entity-name adminRemarqueDans cet exemple, le mot de passe de l'utilisateur
adminestadmin-secret. Remplacez cette valeur par votre propre mot de passe.
-
Accédez à la page de configuration du service.
Connectez-vous à la console E-MapReduce.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources selon vos besoins.
Cliquez sur Services dans la colonne Actions du cluster cible.
Sur la page Services , cliquez sur Configure dans la zone du service Kafka.
-
Modifiez les configurations d'authentification SASL.
-
Ajoutez des éléments de configuration SASL.
Dans l'onglet server.properties de la page de configuration du service Kafka, ajoutez les éléments de configuration.
Cliquez sur Add Configuration Item.
-
Dans la boîte de dialogue Add Configuration Item , ajoutez les éléments de configuration suivants et cliquez sur OK.
Parameter
Value
sasl.mechanism.inter.broker.protocol
SCRAM-SHA-512
sasl.enabled.mechanisms
SCRAM-SHA-512
Dans la boîte de dialogue qui s'affiche, saisissez une raison dans le champ Execution Reason et cliquez sur Save.
-
Modifiez la configuration de l'écouteur.
Sur la page Configure , cliquez sur l'onglet server.properties.
Remplacez la valeur du paramètre kafka.sasl.config.type par CUSTOM et cliquez sur Save.
Dans la boîte de dialogue qui s'affiche, saisissez une raison dans le champ Execution Reason et cliquez sur Save.
-
Configurez JAAS côté serveur.
-
Méthode 1 : Configurez JAAS côté serveur en ajoutant des éléments de configuration personnalisés.
Sur la page de configuration du service Kafka, cliquez sur l'onglet server.properties.
-
Cliquez sur Add Configuration Item , ajoutez les éléments de configuration suivants, puis cliquez sur OK.
Parameter
Value
listener.name.sasl_plaintext.sasl.enabled.mechanisms
SCRAM-SHA-512
listener.name.sasl_plaintext.scram-sha-512.sasl.jaas.config
org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret" ;
Dans la boîte de dialogue qui s'affiche, saisissez une raison dans le champ Execution Reason et cliquez sur Save.
-
Méthode 2 : Configurez JAAS à l'aide d'un fichier de configuration.
-
Sur la page de configuration du service Kafka, modifiez les éléments de configuration suivants et cliquez sur Save.
Onglet
Paramètre
Valeur
kafka_server_jaas.conf
kafka.server.jaas.content
KafkaServer { org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret"; };server.properties
kafka_opts
-Djava.security.auth.login.config=/etc/taihao-apps/kafka-conf/kafka-conf/kafka_server_jaas.conf
Dans la boîte de dialogue qui s'affiche, saisissez une raison dans le champ Execution Reason et cliquez sur Confirm.
-
-
-
Configurez JAAS côté client.
Configurez JAAS côté client à l'aide du paramètre
kafka.client.jaas.contentdans le fichier de configurationkafka_client_jaas.conf. Les composants Kafka Schema Registry et Kafka Rest Proxy utilisent cette configuration au démarrage.-
Sur la page de configuration du service Kafka, modifiez les éléments de configuration suivants et cliquez sur Save.
Onglet
Paramètre
Valeur
kafka_client_jaas.conf
kafka.client.jaas.content
KafkaClient { org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret"; };schema-registry.properties
schema_registry_opts
-Djava.security.auth.login.config=/etc/taihao-apps/kafka-conf/kafka-conf/kafka_client_jaas.conf
kafka-rest.properties
kafkarest_opts
-Djava.security.auth.login.config=/etc/taihao-apps/kafka-conf/kafka-conf/kafka_client_jaas.conf
Dans la boîte de dialogue qui s'affiche, saisissez une raison dans le champ Execution Reason et cliquez sur Save.
-
-
-
Redémarrez le service Kafka.
Sur la page Configure du service Kafka, sélectionnez .
Dans la boîte de dialogue qui s'affiche, saisissez la raison de l'exécution et cliquez sur OK.
Dans la boîte de dialogue Confirm , cliquez sur OK.
Étape 2 : Se connecter à Kafka avec SASL
L'exemple suivant utilise le mécanisme SCRAM-SHA-512 ainsi que les outils de producteur et de consommateur intégrés à Kafka pour démontrer l'authentification du client et la connexion au service Kafka.
Connectez-vous au nœud master du cluster via SSH. Pour plus d'informations, consultez Se connecter à un cluster.
-
Créez un fichier de configuration administrateur.
-
Exécutez la commande suivante pour créer le fichier de configuration sasl_admin.properties.
vim sasl_admin.properties -
Ajoutez le contenu suivant au fichier.
security.protocol=SASL_PLAINTEXT sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret";
-
-
Exécutez la commande suivante pour créer un utilisateur standard.
kafka-configs.sh --bootstrap-server core-1-1:9092 --alter --add-config 'SCRAM-SHA-256=[password=<yourUserpassword>],SCRAM-SHA-512=[password=<yourUserpassword>]' --entity-type users --entity-name <yourUsername> --command-config /root/sasl_admin.propertiesDans la commande, remplacez
<yourUsername>et<yourUserpassword>par le nom d'utilisateur et le mot de passe du nouvel utilisateur. -
Créez un fichier de configuration utilisateur.
-
Exécutez la commande suivante pour créer le fichier de configuration
sasl_user.properties.vim sasl_user.properties -
Ajoutez le contenu suivant au fichier.
security.protocol=SASL_PLAINTEXT sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="<yourUsername>" password="<yourUserpassword>";
-
-
Exécutez la commande suivante pour créer un topic.
kafka-topics.sh --partitions 10 --replication-factor 2 --bootstrap-server core-1-1:9092 --topic test --create --command-config /root/sasl_user.propertiesDans cet exemple, le nom du topic est
test. Remplacez cette valeur par le nom de votre topic. -
Exécutez la commande suivante pour produire des données à l'aide du fichier de configuration SASL.
kafka-producer-perf-test.sh --topic test --num-records 123456 --throughput 10000 --record-size 1024 --producer-props bootstrap.servers=core-1-1:9092 --producer.config sasl_user.properties -
Exécutez la commande suivante pour consommer des données à l'aide du fichier de configuration SASL.
kafka-consumer-perf-test.sh --broker-list core-1-1:9092 --messages 100000000 --topic test --consumer.config sasl_user.properties
Rubriques connexes
Pour chiffrer la transmission des données entre un client et le serveur, consultez Utiliser SSL pour chiffrer les connexions Kafka.