Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otentikasi TLS timbal balik
Anda dapat mengaktifkan otentikasi klien dengan TLS untuk koneksi dari aplikasi Anda ke broker MSK Amazon Anda. Untuk menggunakan otentikasi klien, Anda memerlukan file AWS Private CA. AWS Private CA Bisa sama dengan cluster Anda Akun AWS , atau di akun yang berbeda. Untuk informasi tentang AWS Private CA s, lihat Membuat dan Mengelola a AWS Private CA.
catatan
Otentikasi TLS saat ini tidak tersedia di Wilayah Beijing dan Ningxia.
Amazon MSK tidak mendukung daftar pencabutan sertifikat (CRL). Untuk mengontrol akses ke topik klaster Anda atau memblokir sertifikat yang disusupi, gunakan Apache Kafka ACL dan grup keamanan. AWS Untuk informasi tentang menggunakan Apache Kafka ACL, lihat. Apache Kafka ACL
Topik ini berisi bagian-bagian berikut:
Untuk membuat cluster yang mendukung otentikasi klien
Prosedur ini menunjukkan kepada Anda cara mengaktifkan otentikasi klien menggunakan file. AWS Private CA
catatan
Kami sangat merekomendasikan penggunaan independen AWS Private CA untuk setiap cluster MSK ketika Anda menggunakan TLS timbal balik untuk mengontrol akses. Melakukannya akan memastikan bahwa sertifikat TLS yang ditandatangani oleh PCA hanya mengautentikasi dengan satu cluster MSK.
-
Buat file bernama
clientauthinfo.json
dengan isi berikut ini. GantiPrivate-CA-ARN dengan ARN PCA
Anda.{ "Tls": { "CertificateAuthorityArnList": ["
Private-CA-ARN
"] } } -
Buat file bernama
brokernodegroupinfo.json
seperti yang dijelaskan dalamMembuat cluster menggunakan AWS CLI. -
Otentikasi klien mengharuskan Anda juga mengaktifkan enkripsi dalam perjalanan antara klien dan broker. Buat file bernama
encryptioninfo.json
dengan isi berikut ini. GantiKMS-Key-ARN dengan ARN
kunci KMS Anda. Anda dapat mengaturClientBroker
keTLS
atauTLS_PLAINTEXT
.{ "EncryptionAtRest": { "DataVolumeKMSKeyId": "
KMS-Key-ARN
" }, "EncryptionInTransit": { "InCluster": true, "ClientBroker": "TLS" } }Untuk informasi selengkapnya tentang enkripsi, lihatEnkripsi MSK Amazon.
-
Pada mesin tempat Anda AWS CLI menginstal, jalankan perintah berikut untuk membuat cluster dengan otentikasi dan enkripsi dalam transit diaktifkan. Simpan ARN cluster yang disediakan dalam tanggapan.
aws kafka create-cluster --cluster-name "AuthenticationTest" --broker-node-group-info file://brokernodegroupinfo.json --encryption-info file://encryptioninfo.json --client-authentication file://clientauthinfo.json --kafka-version "
{YOUR KAFKA VERSION}
" --number-of-broker-nodes 3
Untuk mengatur klien untuk menggunakan otentikasi
-
Buat instans Amazon EC2 untuk digunakan sebagai mesin klien. Untuk mempermudah, buat instance ini di VPC yang sama yang Anda gunakan untuk cluster. Lihat Langkah 3: Buat mesin klien contoh cara membuat mesin klien seperti itu.
-
Buat topik. Sebagai contoh, lihat instruksi di bawahLangkah 4: Buat topik.
-
Pada mesin tempat Anda AWS CLI menginstal, jalankan perintah berikut untuk mendapatkan broker bootstrap dari cluster. Ganti
Cluster-ARN dengan ARN
cluster Anda.aws kafka get-bootstrap-brokers --cluster-arn
Cluster-ARN
Simpan string yang terkait
BootstrapBrokerStringTls
dengan respons. -
Pada mesin klien Anda, jalankan perintah berikut untuk menggunakan toko kepercayaan JVM untuk membuat toko kepercayaan klien Anda. Jika jalur JVM Anda berbeda, sesuaikan perintahnya.
cp /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64/jre/lib/security/cacerts kafka.client.truststore.jks
-
Pada mesin klien Anda, jalankan perintah berikut untuk membuat kunci pribadi untuk klien Anda.
Ganti
Dibedakan Nama,
Contoh-Alias, Your-Store-Pass
, dan Your-Key-Pass
dengan string pilihan Anda.keytool -genkey -keystore kafka.client.keystore.jks -validity 300 -storepass
Your-Store-Pass
-keypassYour-Key-Pass
-dname "CN=Distinguished-Name
" -aliasExample-Alias
-storetype pkcs12 -
Pada mesin klien Anda, jalankan perintah berikut untuk membuat permintaan sertifikat dengan kunci pribadi yang Anda buat pada langkah sebelumnya.
keytool -keystore kafka.client.keystore.jks -certreq -file client-cert-sign-request -alias
Example-Alias
-storepassYour-Store-Pass
-keypassYour-Key-Pass
-
Buka
client-cert-sign-request
file dan pastikan bahwa itu dimulai dengan-----BEGIN CERTIFICATE REQUEST-----
dan diakhiri dengan-----END CERTIFICATE REQUEST-----
. Jika dimulai dengan-----BEGIN NEW CERTIFICATE REQUEST-----
, hapus kataNEW
(dan spasi tunggal yang mengikutinya) dari awal dan akhir file. -
Pada mesin tempat Anda AWS CLI menginstal, jalankan perintah berikut untuk menandatangani permintaan sertifikat Anda. Ganti
Private-CA-ARN dengan ARN PCA
Anda. Anda dapat mengubah nilai validitas jika Anda mau. Di sini kita menggunakan 300 sebagai contoh.aws acm-pca issue-certificate --certificate-authority-arn
Private-CA-ARN
--csr fileb://client-cert-sign-request --signing-algorithm "SHA256WITHRSA" --validity Value=300,Type="DAYS"Simpan sertifikat ARN yang disediakan dalam tanggapan.
catatan
Untuk mengambil sertifikat klien Anda, gunakan
acm-pca get-certificate
perintah dan tentukan ARN sertifikat Anda. Untuk informasi selengkapnya, lihat mendapatkan sertifikat di Referensi AWS CLIPerintah. -
Jalankan perintah berikut untuk mendapatkan sertifikat yang AWS Private CA ditandatangani untuk Anda. Ganti
Certificate-ARN dengan
ARN yang Anda peroleh dari respons ke perintah sebelumnya.aws acm-pca get-certificate --certificate-authority-arn
Private-CA-ARN
--certificate-arnCertificate-ARN
-
Dari hasil JSON menjalankan perintah sebelumnya, salin string yang terkait dengan
Certificate
dan.CertificateChain
Tempel kedua string ini dalam file baru bernama signed-certificate-from-acm. Tempel string yang terkait denganCertificate
pertama, diikuti oleh string yang terkait denganCertificateChain
. Ganti\n
karakter dengan baris baru. Berikut ini adalah struktur file setelah Anda menempelkan sertifikat dan rantai sertifikat di dalamnya.-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
-
Jalankan perintah berikut pada mesin klien untuk menambahkan sertifikat ini ke keystore Anda sehingga Anda dapat mempresentasikannya ketika Anda berbicara dengan broker MSK.
keytool -keystore kafka.client.keystore.jks -import -file signed-certificate-from-acm -alias
Example-Alias
-storepassYour-Store-Pass
-keypassYour-Key-Pass
-
Buat file bernama
client.properties
dengan isi berikut ini. Sesuaikan lokasi truststore dan keystore ke jalur tempat Anda menyimpan.kafka.client.truststore.jks
Ganti versi klien Kafka Anda denganplaceholder {YOUR KAFKA VERSION}
.security.protocol=SSL ssl.truststore.location=/tmp/kafka_2.12-
{YOUR KAFKA VERSION}
/kafka.client.truststore.jks ssl.keystore.location=/tmp/kafka_2.12-{YOUR KAFKA VERSION}
/kafka.client.keystore.jks ssl.keystore.password=Your-Store-Pass
ssl.key.password=Your-Key-Pass
Untuk menghasilkan dan menggunakan pesan menggunakan otentikasi
-
Jalankan perintah berikut untuk membuat topik. File bernama
client.properties
adalah yang Anda buat di prosedur sebelumnya.<path-to-your-kafka-installation>
/bin/kafka-topics.sh --create --bootstrap-serverBootstrapBroker-String
--replication-factor 3 --partitions 1 --topic ExampleTopic --command-config client.properties -
Jalankan perintah berikut untuk memulai produsen konsol. File bernama
client.properties
adalah yang Anda buat di prosedur sebelumnya.<path-to-your-kafka-installation>
/bin/kafka-console-producer.sh --bootstrap-serverBootstrapBroker-String
--topic ExampleTopic --producer.config client.properties -
Di jendela perintah baru di mesin klien Anda, jalankan perintah berikut untuk memulai konsumen konsol.
<path-to-your-kafka-installation>
/bin/kafka-console-consumer.sh --bootstrap-serverBootstrapBroker-String
--topic ExampleTopic --consumer.config client.properties -
Ketik pesan di jendela produser dan saksikan mereka muncul di jendela konsumen.