Lapisan Otentikasi dan Keamanan Sederhana (Simple Authentication and Security Layer/SASL) memastikan bahwa hanya klien dengan kredensial yang valid yang dapat terhubung ke broker Kafka. Secara default, SASL dinonaktifkan pada kluster Kafka E-MapReduce (EMR). Topik ini memandu Anda melalui proses mengaktifkan SASL dengan mekanisme SCRAM-SHA-512, mengonfigurasi otentikasi broker dan klien, serta memverifikasi konfigurasi tersebut.
Prasyarat
Kluster Dataflow telah dibuat di Konsol E-MapReduce (EMR), dan Kafka dipilih saat pembuatan kluster tersebut. Untuk informasi selengkapnya, lihat Buat kluster Dataflow Kafka.
Buat pengguna admin
EMR mengelola SASL melalui item konfigurasi kafka.sasl.config.type dalam file konfigurasi server.properties.
Masuk ke node master kluster Anda melalui SSH. Untuk informasi selengkapnya, lihat Masuk ke kluster.
Jalankan perintah berikut untuk membuat pengguna admin:
CatatanDalam contoh ini, kata sandi pengguna
adminadalahadmin-secret. Tentukan kata sandi sesuai kebutuhan bisnis Anda.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 admin
Tambahkan item konfigurasi SASL di Konsol EMR
Navigasi ke halaman konfigurasi Kafka
Masuk ke Konsol EMR. Di panel navigasi sebelah kiri, klik EMR on ECS.
Di bilah navigasi atas, pilih wilayah tempat kluster Anda berada dan pilih kelompok sumber daya sesuai kebutuhan bisnis Anda.
Pada halaman EMR on ECS, temukan kluster Anda lalu klik Services di kolom Actions.
Pada tab Services, temukan layanan Kafka lalu klik Configure.
Tambahkan pengaturan mekanisme SASL
Pada tab server.properties:
Klik Add Configuration Item.
Pada dialog Add Configuration Item, tambahkan item konfigurasi berikut lalu klik OK.
Item konfigurasi Nilai sasl.mechanism.inter.broker.protocol SCRAM-SHA-512 sasl.enabled.mechanisms SCRAM-SHA-512 Pada dialog yang muncul, masukkan Execution Reason lalu klik Save.
Atur listener ke mode custom
Pada tab server.properties:
Ubah nilai item konfigurasi kafka.sasl.config.type menjadi CUSTOM lalu klik Save.
Pada dialog yang muncul, masukkan Execution Reason lalu klik Save.
Konfigurasikan JAAS untuk broker Kafka
Pilih salah satu metode berikut untuk mengonfigurasi Java Authentication and Authorization Service (JAAS) untuk broker Kafka.
Metode 1: Gunakan item konfigurasi custom
Pada tab server.properties di halaman Configure Kafka:
Klik Add Configuration Item, tambahkan item konfigurasi 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" ; Pada dialog yang muncul, masukkan Execution Reason lalu klik Save.
Metode 2: Gunakan file konfigurasi
Pada halaman Configure Kafka, ubah item konfigurasi berikut lalu 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 |
Nilai lengkap dari kafka.server.jaas.content:
KafkaServer {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="admin"
password="admin-secret";
};Pada dialog yang muncul, masukkan Execution Reason lalu klik Save.
Konfigurasikan JAAS untuk client Kafka
Konfigurasikan item konfigurasi kafka.client.jaas.content dalam file konfigurasi kafka_client_jaas.conf. Konfigurasi ini digunakan untuk menjalankan Kafka Schema Registry dan Kafka REST Proxy.
Pada halaman Configure Kafka, ubah item konfigurasi berikut lalu 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 |
Nilai lengkap dari kafka.client.jaas.content:
KafkaClient {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="admin"
password="admin-secret";
};Pada dialog yang muncul, masukkan Execution Reason lalu klik Save.
Restart layanan Kafka
Setelah menyelesaikan konfigurasi SASL, restart layanan Kafka agar perubahan diterapkan.
Pada tab Configure di halaman layanan Kafka, pilih More > Restart di pojok kanan atas.
Pada dialog yang muncul, masukkan Execution Reason lalu klik OK.
Pada pesan Confirm, klik OK.
Verifikasi otentikasi SASL
Setelah layanan Kafka direstart, lakukan otentikasi ke kluster Kafka dengan mekanisme SCRAM-SHA-512. Contoh berikut menggunakan program Producer dan Consumer bawaan.
Buat file konfigurasi administrator
Masuk ke node master kluster EMR Anda melalui SSH. Untuk informasi selengkapnya, lihat Masuk ke kluster.
Jalankan perintah berikut untuk membuat file
sasl_admin.properties:vim sasl_admin.propertiesTambahkan konten berikut ke dalam 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";
Buat pengguna biasa
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.propertiesGanti <yourUsername> dan <yourUserpassword> dengan nama pengguna dan kata sandi yang ingin Anda tetapkan untuk pengguna biasa tersebut.
Buat file konfigurasi pengguna
Jalankan perintah berikut untuk membuat file
sasl_user.properties:vim sasl_user.propertiesTambahkan konten berikut ke dalam 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>";
Buat topik
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.propertiestest adalah nama topik tersebut. Tentukan nama topik sesuai kebutuhan bisnis Anda.
Produksi data
Jalankan perintah berikut untuk memproduksi data ke topik tersebut:
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.propertiesKonsumsi data
Jalankan perintah berikut untuk mengonsumsi data dari topik tersebut:
kafka-consumer-perf-test.sh --broker-list core-1-1:9092 --messages 100000000 --topic test --consumer.config sasl_user.propertiesReferensi
Untuk informasi tentang cara membuat saluran transmisi data terenkripsi antara klien dan server, lihat Gunakan SSL untuk mengenkripsi data Kafka.