全部产品
Search
文档中心

E-MapReduce:Masuk ke kluster Kafka menggunakan SASL

更新时间:Jul 02, 2025

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.

  1. Buat pengguna.

    1. Masuk ke node master kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke kluster.

    2. 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 admin
      Catatan

      Dalam contoh ini, kata sandi pengguna admin adalah admin-secret. Anda dapat menentukan kata sandi sesuai dengan kebutuhan bisnis Anda.

  2. Ubah konfigurasi terkait mekanisme otentikasi SASL.

    1. Tambahkan item konfigurasi terkait SASL.

      Pada tab server.properties dari halaman Configure layanan Kafka, tambahkan item konfigurasi terkait SASL.

      1. Klik Add Configuration Item.

      2. 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

      3. Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.

    2. Ubah konfigurasi listener.

      1. Pada tab Configure halaman layanan Kafka, klik tab server.properties.

      2. Pada tab server.properties, ubah nilai item konfigurasi kafka.sasl.config.type menjadi CUSTOM dan klik Save.

      3. Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.

    3. Konfigurasikan Java Authentication and Authorization Service (JAAS) untuk broker Kafka.

      • Metode 1: Konfigurasikan JAAS untuk broker Kafka menggunakan item konfigurasi kustom.

        1. Pada tab Configure halaman layanan Kafka, klik tab server.properties.

        2. 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" ;

        3. Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.

      • Metode 2: Konfigurasikan JAAS untuk broker Kafka menggunakan file konfigurasi.

        1. 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

        2. Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.

    4. 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.

      1. 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

      2. 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.

  1. Masuk ke node master kluster EMR Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke kluster.

  2. Buat file konfigurasi administrator.

    1. Jalankan perintah berikut untuk membuat file konfigurasi sasl_admin.properties:

      vim sasl_admin.properties
    2. Tambahkan 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";
  3. 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.

  4. Buat file konfigurasi pengguna.

    1. Jalankan perintah berikut untuk membuat file konfigurasi sasl_user.properties:

      vim sasl_user.properties
    2. Tambahkan 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>";
  5. 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.properties

    test dalam perintah adalah nama topik yang ingin Anda buat. Anda dapat menentukan nama sesuai dengan kebutuhan bisnis Anda.

  6. 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.properties
  7. Jalankan 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.