Lapisan Otentikasi dan Keamanan Sederhana (Simple Authentication and Security Layer/SASL) adalah kerangka kerja yang memungkinkan lapisan aplikasi memilih dan menerapkan berbagai mekanisme otentikasi. SASL melakukan otentikasi pengguna dan memastikan hanya klien dengan kredensial yang valid yang dapat terhubung ke layanan Kafka Anda, sehingga meningkatkan keamanan secara signifikan. Topik ini menjelaskan cara mengaktifkan SASL dan menggunakannya untuk terhubung ke Kafka.
Prasyarat
Kluster Dataflow (yaitu kluster Kafka) dengan layanan Kafka yang dipilih harus dibuat di Konsol EMR. Untuk informasi selengkapnya, lihat Buat kluster Dataflow Kafka.
Prosedur
Langkah 1: Konfigurasikan SASL
E-MapReduce menggunakan file konfigurasi server.properties dan parameter kafka.sasl.config.type untuk mengelola konfigurasi SASL-nya.
SASL dinonaktifkan secara default untuk kluster Kafka. Contoh berikut mengaktifkan SASL menggunakan mekanisme otentikasi SCRAM-SHA-512.
-
Buat pengguna.
-
Terhubung ke node master kluster melalui SSH. Untuk informasi selengkapnya, 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 adminCatatanPada contoh ini, kata sandi untuk pengguna
adminadalahadmin-secret. Ganti dengan kata sandi Anda.
-
-
Buka halaman konfigurasi layanan.
-
Masuk ke Konsol E-MapReduce.
-
Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya sesuai kebutuhan.
-
Klik Services di kolom Actions kluster target.
-
Di halaman Services, klik Configure di area layanan Kafka.
-
-
Ubah konfigurasi otentikasi SASL.
-
Tambahkan item konfigurasi SASL.
Di tab server.properties halaman konfigurasi layanan Kafka, tambahkan item konfigurasi tersebut.
-
Klik Add Configuration Item.
-
Di kotak dialog Add Configuration Item, tambahkan item konfigurasi berikut lalu klik OK.
Parameter
Nilai
sasl.mechanism.inter.broker.protocol
SCRAM-SHA-512
sasl.enabled.mechanisms
SCRAM-SHA-512
-
Di kotak dialog yang muncul, masukkan alasan di bidang Execution Reason lalu klik Save.
-
-
Ubah konfigurasi listener.
-
Di halaman Configure, klik tab server.properties.
-
Ubah nilai parameter kafka.sasl.config.type menjadi CUSTOM lalu klik Save.
-
Di kotak dialog yang muncul, masukkan alasan di bidang Execution Reason lalu klik Save.
-
-
Konfigurasikan JAAS sisi server.
-
Metode 1: Konfigurasikan JAAS sisi server dengan menambahkan item konfigurasi kustom.
-
Di halaman konfigurasi layanan Kafka, klik tab server.properties.
-
Klik Add Configuration Item, tambahkan item konfigurasi berikut, lalu klik OK.
Parameter
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" ;
-
Di kotak dialog yang muncul, masukkan alasan di bidang Execution Reason lalu klik Save.
-
-
Metode 2: Konfigurasikan JAAS menggunakan file konfigurasi.
-
Di halaman konfigurasi layanan Kafka, ubah item konfigurasi berikut lalu klik Save.
Tab
Parameter
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
-
Di kotak dialog yang muncul, masukkan alasan di bidang Execution Reason lalu klik Confirm.
-
-
-
Konfigurasikan JAAS sisi klien.
Konfigurasikan JAAS sisi klien menggunakan parameter
kafka.client.jaas.contentdalam file konfigurasikafka_client_jaas.conf. Komponen Kafka Schema Registry dan Kafka Rest Proxy menggunakan konfigurasi ini saat startup.-
Di halaman konfigurasi layanan Kafka, ubah item konfigurasi berikut lalu klik Save.
Tab
Parameter
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
-
Di kotak dialog yang muncul, masukkan alasan di bidang Execution Reason lalu klik Save.
-
-
-
Mulai ulang layanan Kafka.
-
Di halaman Configure layanan Kafka, pilih .
-
Di kotak dialog yang muncul, masukkan alasan eksekusi, lalu klik OK.
-
Di kotak dialog Confirm, klik OK.
-
Langkah 2: Hubungkan ke Kafka dengan SASL
Contoh berikut menggunakan mekanisme SCRAM-SHA-512 dan alat producer serta consumer bawaan Kafka untuk menunjukkan cara klien melakukan otentikasi dan terhubung ke layanan Kafka.
-
Masuk ke node master kluster menggunakan SSH. Untuk informasi selengkapnya, lihat Masuk ke kluster.
-
Buat file konfigurasi administrator.
-
Jalankan perintah berikut untuk membuat file konfigurasi sasl_admin.properties.
vim sasl_admin.properties -
Tambahkan konten berikut ke file tersebut.
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.propertiesDalam perintah tersebut, ganti
<yourUsername>dan<yourUserpassword>dengan nama pengguna dan kata sandi pengguna baru. -
Buat file konfigurasi pengguna.
-
Jalankan perintah berikut untuk membuat file konfigurasi
sasl_user.properties.vim sasl_user.properties -
Tambahkan konten berikut ke file tersebut.
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.propertiesPada contoh ini, nama topik adalah
test. Ganti dengan nama topik Anda. -
Jalankan perintah berikut untuk menghasilkan data menggunakan file konfigurasi 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 -
Jalankan perintah berikut untuk mengonsumsi data menggunakan file konfigurasi SASL.
kafka-consumer-perf-test.sh --broker-list core-1-1:9092 --messages 100000000 --topic test --consumer.config sasl_user.properties
Topik terkait
Untuk mengenkripsi transmisi data antara klien dan server, lihat Gunakan SSL untuk mengenkripsi koneksi Kafka.