Simple Authentication and Security Layer (SASL) adalah kerangka kerja yang memungkinkan aplikasi untuk memilih dan menerapkan berbagai mekanisme otentikasi. SASL dapat digunakan untuk memverifikasi identitas pengguna, memastikan bahwa hanya klien dengan kredensial valid yang dapat terhubung ke Kafka, serta meningkatkan keamanan layanan secara signifikan. Topik ini menjelaskan cara mengonfigurasi SASL untuk kluster E-MapReduce (EMR) Kafka dan masuk ke kluster menggunakan SASL.
Prasyarat
Kluster Dataflow harus dibuat di Konsol E-MapReduce (EMR), dengan Kafka dipilih saat pembuatan kluster. Untuk informasi lebih lanjut, lihat Buat kluster Dataflow Kafka.
Prosedur
Langkah 1: Konfigurasi SASL
EMR mengelola kebijakan konfigurasi SASL berdasarkan item konfigurasi kafka.sasl.config.type dalam file konfigurasi server.properties.
Secara default, SASL dinonaktifkan untuk kluster Kafka. Anda dapat mengaktifkan SASL dengan mengikuti langkah-langkah berikut. Contoh berikut menunjukkan cara mengonfigurasi mekanisme SCRAM-SHA-512.
Buat pengguna.
Masuk ke node master kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke kluster.
Jalankan perintah berikut untuk membuat pengguna 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 adminCatatanDalam contoh ini, kata sandi pengguna
adminadalahadmin-secret. Anda dapat menentukan kata sandi sesuai dengan kebutuhan bisnis Anda.
Ubah konfigurasi terkait mekanisme otentikasi SASL.
Tambahkan item konfigurasi terkait SASL.
Pada tab server.properties dari halaman Configure layanan Kafka, tambahkan item konfigurasi terkait SASL.
Klik Add Configuration Item.
Dalam kotak dialog Add Configuration Item, tambahkan item konfigurasi yang dijelaskan dalam tabel berikut dan klik OK.
Item konfigurasi
Nilai
sasl.mechanism.inter.broker.protocol
SCRAM-SHA-512
sasl.enabled.mechanisms
SCRAM-SHA-512
Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.
Ubah konfigurasi listener.
Pada tab Configure halaman layanan Kafka, klik tab server.properties.
Pada tab server.properties, ubah nilai item konfigurasi kafka.sasl.config.type menjadi CUSTOM dan klik Save.
Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.
Konfigurasikan Java Authentication and Authorization Service (JAAS) untuk broker Kafka.
Metode 1: Konfigurasikan JAAS untuk broker Kafka menggunakan item konfigurasi kustom.
Pada tab Configure halaman layanan Kafka, klik tab server.properties.
Klik Add Configuration Item, tambahkan item konfigurasi yang dijelaskan dalam tabel berikut, lalu klik OK.
Item konfigurasi
Nilai
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" ;
Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.
Metode 2: Konfigurasikan JAAS untuk broker Kafka menggunakan file konfigurasi.
Pada tab Configure halaman layanan Kafka, ubah item konfigurasi yang dijelaskan dalam tabel berikut dan klik Save.
Tab
Item konfigurasi
Nilai
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
Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.
Konfigurasikan JAAS untuk klien Kafka.
Untuk mengonfigurasi JAAS untuk klien Kafka, konfigurasikan item konfigurasi kafka.client.jaas.content dalam file konfigurasi kafka_client_jaas.conf. Anda dapat menggunakan item konfigurasi ini untuk memulai Kafka Schema Registry dan Kafka REST Proxy.
Pada tab Configure halaman layanan Kafka, ubah item konfigurasi yang dijelaskan dalam tabel berikut dan klik Save.
Tab
Item konfigurasi
Nilai
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
Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.
Langkah 2: Masuk ke kluster Kafka menggunakan SASL
Contoh berikut menunjukkan cara mengotentikasi dan masuk ke kluster Kafka pada klien Kafka menggunakan mekanisme SCRAM-SHA-512. Dalam contoh ini, program Producer dan Consumer kluster Kafka digunakan untuk menjalankan tugas.
Masuk ke node master kluster EMR Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke kluster.
Buat file konfigurasi administrator.
Jalankan perintah berikut untuk membuat file konfigurasi sasl_admin.properties:
vim sasl_admin.propertiesTambahkan informasi berikut ke file konfigurasi:
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";
Jalankan perintah berikut untuk membuat pengguna biasa:
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.properties<yourUsername>dan<yourUserpassword>dalam perintah menunjukkan nama dan kata sandi pengguna yang ingin Anda buat. Anda dapat menentukan nama dan kata sandi sesuai dengan kebutuhan bisnis Anda.Buat file konfigurasi pengguna.
Jalankan perintah berikut untuk membuat file konfigurasi sasl_user.properties:
vim sasl_user.propertiesTambahkan informasi berikut ke file konfigurasi:
security.protocol=SASL_PLAINTEXT sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="<yourUsername>" password="<yourUserpassword>";
Jalankan perintah berikut untuk membuat topik:
kafka-topics.sh --partitions 10 --replication-factor 2 --bootstrap-server core-1-1:9092 --topic test --create --command-config /root/sasl_user.propertiestestdalam perintah adalah nama topik yang ingin Anda buat. Anda dapat menentukan nama sesuai dengan kebutuhan bisnis Anda.Jalankan perintah berikut untuk menggunakan file konfigurasi SASL untuk menghasilkan data:
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.propertiesJalankan perintah berikut untuk menggunakan file konfigurasi SASL untuk mengonsumsi data:
kafka-consumer-perf-test.sh --broker-list core-1-1:9092 --messages 100000000 --topic test --consumer.config sasl_user.properties
Referensi
Untuk informasi tentang cara membuat saluran transmisi data terenkripsi antara klien dan server, lihat Gunakan SSL untuk mengenkripsi data Kafka.