Untuk meningkatkan keamanan data, broker ApsaraMQ for RocketMQ mengotentikasi identitas saat klien terhubung. Klien hanya dapat mengirim dan menerima pesan setelah berhasil melewati otentikasi. ApsaraMQ for RocketMQ mendukung otentikasi berbasis daftar kontrol akses (ACL), yang memungkinkan pemberian izin kepada pengguna ACL tertentu untuk mempublikasikan atau berlangganan pesan dari topik atau grup tertentu, sehingga memberikan kontrol izin yang lebih rinci.
Batasan
Jika fitur otentikasi pengguna tidak diaktifkan untuk instance ApsaraMQ for RocketMQ, submit a ticket untuk mengaktifkan fitur tersebut. Titik akses untuk kontrol akses hanya akan ditampilkan setelah aplikasi Anda disetujui.
Mekanisme Kerja
ApsaraMQ for RocketMQ mendukung otentikasi cerdas atau otentikasi berbasis ACL untuk kontrol akses. Salah satu metode harus dipilih sebagai metode kontrol akses untuk instance ApsaraMQ for RocketMQ guna mengotentikasi klien. Untuk informasi lebih lanjut, lihat Konfigurasikan kontrol akses.
Otentikasi cerdas: Metode otentikasi default. Saat klien mengakses instance ApsaraMQ for RocketMQ, sistem mengotentikasi klien berdasarkan nama pengguna dan kata sandi. Klien hanya dapat mengirim dan menerima pesan setelah berhasil melewati otentikasi.
Otentikasi berbasis ACL: Metode ini menyediakan kontrol akses lebih rinci. Anda dapat menggunakannya untuk mengotentikasi identitas klien dan menerapkan kontrol izin pada topik atau grup tertentu dalam instance.
Otentikasi gabungan: Jika Anda memilih otentikasi cerdas dan otentikasi berbasis ACL secara bersamaan, sistem secara otomatis mencocokkan metode otentikasi berdasarkan nama pengguna dan kata sandi yang ditentukan dalam kode klien. Jika nama pengguna dan kata sandi default instance digunakan, otentikasi cerdas diterapkan. Jika menggunakan nama pengguna dan kata sandi kustom pengguna ACL, otentikasi berbasis ACL diterapkan.
Proses untuk Otentikasi Cerdas (konfigurasi default)
Jika menggunakan otentikasi cerdas, Anda tidak perlu menentukan nama pengguna atau kata sandi dalam kode klien saat menghubungkan klien ke instance ApsaraMQ for RocketMQ dalam virtual private cloud (VPC). Sistem secara otomatis mengidentifikasi klien berdasarkan titik akhir VPC yang digunakan.
Jika Anda menghubungkan klien melalui Internet atau menonaktifkan fitur bebas otentikasi di VPC untuk instance tersebut, Anda harus menentukan nama pengguna dan kata sandi dalam kode klien.
Saat instance ApsaraMQ for RocketMQ diinisialisasi, sistem memberikan sepasang nama pengguna dan kata sandi unik. Jika menggunakan otentikasi cerdas, Anda harus menentukan nama pengguna dan kata sandi yang diberikan dalam kode klien. Untuk informasi tentang cara mendapatkan nama pengguna dan kata sandi, lihat Dapatkan nama pengguna dan kata sandi instance.
Jika menggunakan nama pengguna dan kata sandi yang diberikan ke instance ApsaraMQ for RocketMQ, Anda memiliki izin untuk mempublikasikan dan berlangganan pesan dari semua topik dan grup setelah klien lulus otentikasi.
Proses untuk Otentikasi Berbasis ACL
Otentikasi berbasis ACL dilakukan berdasarkan pengguna ACL. Sebelum memberikan izin pada sumber daya tertentu, Anda harus membuat pengguna ACL. Untuk informasi lebih lanjut, lihat Buat pengguna ACL dan Berikan izin kepada pengguna ACL.
Jika menggunakan otentikasi berbasis ACL, Anda harus menentukan nama pengguna dan kata sandi pengguna ACL dalam kode klien. Setelah klien lulus otentikasi, Anda dapat menggunakan klien untuk melakukan operasi hanya pada sumber daya tempat izin telah diberikan.
Sebagai contoh, jika Pengguna 1 diberikan izin untuk mempublikasikan pesan ke Topik A, Anda hanya dapat menggunakan klien untuk mempublikasikan pesan ke Topik A setelah klien lulus otentikasi dengan nama pengguna dan kata sandi Pengguna 1.
Jika Anda tidak memberikan izin kepada pengguna ACL setelah pembuatan, pengguna tersebut tidak memiliki izin untuk mempublikasikan atau berlangganan pesan.
Konfigurasikan kontrol akses
Masuk ke Konsol ApsaraMQ for RocketMQ. Di panel navigasi sebelah kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah, seperti China (Hangzhou). Pada halaman Instances, klik nama instance yang ingin Anda kelola.
Di panel navigasi sebelah kiri, klik Access Control. Pada halaman yang muncul, klik Edit di sebelah Tipe Kontrol Akses.
Di kotak dialog yang muncul, pilih setidaknya satu dari nilai Intelligent Authentication dan ACL-based Authentication, lalu klik OK.
Otentikasi Cerdas
Titik masuk untuk mengonfigurasi otentikasi cerdas ditampilkan di konsol ApsaraMQ for RocketMQ hanya setelah Anda memilih Intelligent Authentication.
Jika Anda mengubah nama pengguna dan kata sandi yang diberikan ke instance ApsaraMQ for RocketMQ, klien yang menggunakan nama pengguna dan kata sandi instance tidak dapat terhubung. Berhati-hatilah saat melakukan operasi ini.
Konfigurasikan bebas otentikasi di VPC
Di panel navigasi sebelah kiri, klik Access Control. Pada halaman yang muncul, klik tab Intelligent Authentication.
Aktifkan atau nonaktifkan Authentication-free in VPCs.
Jika bebas otentikasi di VPC diaktifkan, Anda tidak perlu menentukan nama pengguna atau kata sandi dalam kode klien saat menghubungkan klien ke instance ApsaraMQ for RocketMQ dalam VPC. Sistem secara otomatis mengidentifikasi klien berdasarkan titik akhir VPC yang digunakan.
Jika bebas otentikasi di VPC dinonaktifkan, Anda harus menentukan nama pengguna dan kata sandi dalam kode klien, baik klien terhubung melalui Internet maupun dalam VPC. Secara default, bebas otentikasi di VPC dinonaktifkan.
Dapatkan nama pengguna dan kata sandi instance
Jika Anda menentukan otentikasi cerdas sebagai metode kontrol akses dan menonaktifkan bebas otentikasi di VPC untuk instance ApsaraMQ for RocketMQ, Anda harus menentukan nama pengguna dan kata sandi instance dalam kode klien saat menghubungkan klien melalui Internet atau dalam VPC.
Pada halaman Access Control, klik tab Intelligent Authentication.
Lihat nama pengguna instance dalam daftar nama pengguna dan salin kata sandi instance.
Otentikasi Berbasis ACL
Jika Anda menentukan otentikasi berbasis ACL sebagai metode kontrol akses, Anda harus membuat pengguna ACL dan memberikan izin kepada pengguna tersebut pada sumber daya tertentu. Secara default, pengguna ACL baru tidak memiliki izin apa pun.
Saat menghubungkan klien ke instance ApsaraMQ for RocketMQ untuk pengiriman pesan, Anda harus menentukan nama pengguna dan kata sandi pengguna ACL yang telah dibuat dan diotorisasi dalam kode klien. Setelah klien lulus otentikasi, Anda dapat menggunakan klien untuk mempublikasikan atau berlangganan pesan dari sumber daya yang termasuk dalam rentang izin ACL.
Titik masuk untuk membuat pengguna ACL dan memberikan izin ACL ditampilkan di konsol ApsaraMQ for RocketMQ hanya setelah Anda memilih ACL-based Authentication.
Jika Anda menonaktifkan atau menghapus pengguna ACL, klien yang menggunakan nama pengguna dan kata sandi ACL tidak dapat terhubung ke instance ApsaraMQ for RocketMQ. Berhati-hatilah saat melakukan operasi ini.
Kelola pengguna ACL
Buat pengguna ACL
Di panel navigasi sebelah kiri, klik Access Control. Pada halaman yang muncul, klik tab ACL User.
Pada tab ACL User, klik Create ACL User. Di panel yang muncul, ikuti petunjuk di layar untuk mengonfigurasi parameter.
Berikan izin kepada pengguna ACL
Pada halaman Access Control, klik tab ACL Permissions lalu klik Add Permissions.
Di panel Add Permissions, konfigurasikan parameter dan klik OK. Tabel berikut menjelaskan parameter.
Parameter untuk memberikan izin kepada pengguna ACL
Parameter
Deskripsi
Contoh
Username
Pengguna ACL yang ingin Anda berikan izin. Pilih pengguna ACL yang telah dibuat dari daftar drop-down.
user_mq
Resource Type
TOPIC: memberikan izin pada topik kepada pengguna ACL.
GROUP: memberikan izin pada grup kepada pengguna ACL.
TOPIC
Resource Name
Nama topik atau grup tempat Anda ingin memberikan izin kepada pengguna ACL. Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi parameter ini:
Masukkan nama topik atau grup tertentu. Dalam hal ini, pengguna ACL diberikan izin pada topik atau grup yang ditentukan.
Masukkan karakter wildcard asterisk (*) untuk mencocokkan semua topik atau grup. Dalam hal ini, pengguna ACL diberikan izin pada semua topik atau grup pada instance.
Masukkan karakter dan karakter wildcard asterisk (*) untuk mencocokkan topik atau grup tertentu. Dalam hal ini, pengguna ACL diberikan izin pada topik atau grup yang ditentukan.
normal_topic
Action
Operasi yang dapat dilakukan pada sumber daya. Jika Anda menetapkan parameter Tipe Sumber Daya ke GROUP, Anda hanya dapat menetapkan parameter ini ke Subscribe.
Publish: memberikan izin kepada pengguna ACL untuk mempublikasikan pesan ke topik yang ditentukan.
Subscribe: memberikan izin ACL kepada pengguna untuk berlangganan pesan dari topik atau grup yang ditentukan.
Publish
IP Address Whitelist
Alamat IP atau blok CIDR yang dapat mengakses sumber daya. Pisahkan beberapa alamat IP atau blok CIDR dengan titik koma (;) atau koma (,).
Jika Anda membiarkan parameter ini kosong, semua alamat IP atau blok CIDR dapat mengakses sumber daya.
192.168.xx.xx
Permission Rule
Allow: mengizinkan operasi yang Anda tentukan untuk parameter Action.
Deny: menolak operasi yang Anda tentukan untuk parameter Action.
CatatanJika aturan yang mengizinkan dan menolak akses ke sumber daya tertentu ada pada saat yang sama, aturan yang menolak akses diprioritaskan.
Allow
Konfigurasi sampel dalam tabel di atas menunjukkan bahwa Anda dapat menggunakan nama pengguna dan kata sandi pengguna ACL bernama user_mq untuk otentikasi saat menghubungkan klien ke instance ApsaraMQ for RocketMQ. Klien hanya dapat terhubung ke instance untuk pengiriman pesan jika alamat IP klien adalah
192.168.xx.xx.Setelah klien lulus otentikasi, klien hanya dapat mempublikasikan pesan ke topik bernama normal_topic.
Kelola pengguna ACL secara massal
Anda dapat mengekspor template dan kemudian mengimpor template untuk membuat pengguna ACL secara massal.
Pada halaman Access Control, klik tab ACL User.
Pada tab ACL User, klik Export File atau Import File.
Jika tidak ada pengguna ACL yang dibuat, Anda harus membuat pengguna ACL dan kemudian mengekspor template.
Sebelum mengimpor template untuk membuat pengguna ACL secara massal, tentukan informasi tentang pengguna ACL lainnya dalam template.
Saat mengimpor template, Anda dapat memilih apakah akan menimpa pengguna yang ada.
Jika fitur penimpaan pengguna yang ada dinonaktifkan dan pengguna ACL tertentu dalam template yang ingin Anda impor sudah ada, informasi tentang pengguna ACL gagal diimpor.
Jika fitur penimpaan pengguna yang ada diaktifkan dan pengguna ACL tertentu dalam template yang ingin Anda impor sudah ada, sistem memperbarui informasi tentang pengguna ACL berdasarkan template.
Tabel berikut menjelaskan parameter dalam template pengguna ACL.
Parameter
Deskripsi
Nilai valid
Nama Pengguna
Nama pengguna pengguna ACL yang ingin Anda buat.
Nama pengguna harus dimulai dengan huruf.
Nama pengguna hanya dapat berisi huruf, angka, tanda hubung (-), dan garis bawah (_).
Nama pengguna harus memiliki panjang 3 hingga 64 karakter.
Kata Sandi
Kata sandi pengguna ACL yang ingin Anda buat.
Kata sandi harus memiliki panjang 3 hingga 64 karakter.
Status Akun
Status nama pengguna dan kata sandi.
ENABLE: tersedia
DISABLE: tidak tersedia
Tabel berikut memberikan contoh template pengguna ACL.
Nama Pengguna
Kata Sandi
Status Akun
user1
xxx
ENABLE
user2
xxx
DISABLE
user3
xxx
ENABLE
Anda dapat mengekspor template dan kemudian mengimpor template untuk memberikan izin kepada pengguna ACL secara massal.
Pada halaman Access Control, klik tab ACL Permissions.
Pada tab ACL Permissions, klik Export File atau Import File.
Jika tidak ada izin yang diberikan kepada pengguna ACL, Anda harus membuat izin ACL dan kemudian mengekspor template.
Sebelum mengimpor template untuk memberikan izin kepada pengguna ACL secara massal, tentukan informasi tentang izin ACL lainnya dalam template.
Saat mengimpor template, Anda dapat memilih apakah akan menimpa izin yang ada. Sistem menentukan apakah catatan izin ada berdasarkan nama pengguna, tipe sumber daya, dan nama sumber daya.
Jika fitur penimpaan izin yang ada dinonaktifkan dan catatan izin tertentu sudah ada, catatan izin gagal diimpor dan sistem tidak mengubah catatan izin yang ada.
Jika fitur penimpaan izin yang ada diaktifkan dan catatan izin tertentu sudah ada, sistem memperbarui catatan izin berdasarkan template.
Tabel berikut menjelaskan parameter dalam template izin ACL. Untuk informasi lebih lanjut, lihat Parameter untuk Memberikan Izin kepada Pengguna ACL.
Parameter
Deskripsi
Nama Pengguna
Nama pengguna pengguna ACL yang ingin Anda berikan izin.
Nama pengguna yang Anda masukkan harus merupakan nama pengguna ACL yang ada.
Tipe Sumber Daya
Tipe sumber daya tempat Anda ingin memberikan izin.
Nama Sumber Daya
Nama sumber daya tempat Anda ingin memberikan izin.
Tindakan
Operasi yang dapat dilakukan pada sumber daya.
PUB: memberikan izin kepada pengguna ACL untuk mempublikasikan pesan.
SUB: memberikan izin kepada pengguna ACL untuk berlangganan pesan.
PUB|SUB: memberikan izin kepada pengguna ACL untuk mempublikasikan dan berlangganan pesan. Nilai ini hanya berlaku saat Anda menetapkan ResourceType ke Topic.
SourceIps
Alamat IP atau blok CIDR yang dapat mengakses sumber daya.
Keputusan
Menentukan apakah akan mengizinkan pengguna ACL melakukan operasi pada sumber daya.
Allow: mengizinkan pengguna ACL melakukan operasi pada sumber daya.
Deny: tidak mengizinkan pengguna ACL melakukan operasi pada sumber daya.
Tabel berikut memberikan contoh template izin ACL.
Nama Pengguna
Tipe Sumber Daya
Nama Sumber Daya
Tindakan
SourceIps
Keputusan
user1
TOPIC
topic_normal
PUB
0.0.0.0/0
Allow
user2
TOPIC
*
PUB|SUB
0.0.0.0/0
Allow
user3
GROUP
Group_a
SUB
192.168.xx.xx
Deny
Dapatkan nama pengguna dan kata sandi pengguna ACL
Jika Anda menggunakan otentikasi berbasis ACL untuk mengotentikasi identitas klien, Anda harus menentukan nama pengguna dan kata sandi pengguna ACL dalam kode klien, baik menghubungkan klien ke broker melalui Internet maupun dalam VPC.
Di panel navigasi sebelah kiri, klik Access Control. Pada halaman yang muncul, klik tab ACL User.
Pada tab ACL User, periksa nama pengguna ACL dalam daftar pengguna dan salin kata sandi pengguna ACL.