Jika kebijakan sistem tidak memenuhi kebutuhan Anda, Anda dapat mengonfigurasi kebijakan kustom untuk menerapkan prinsip hak istimewa minimal. Kebijakan kustom memungkinkan kontrol terperinci atas izin dan meningkatkan keamanan akses sumber daya. Topik ini menjelaskan skenario penggunaan kebijakan kustom untuk ApsaraMQ for RocketMQ serta menyediakan contoh kebijakan kustom.
Apa itu kebijakan kustom?
Kebijakan Manajemen Akses Sumber Daya (RAM) terbagi menjadi kebijakan sistem dan kebijakan kustom. Anda dapat mengelola kebijakan kustom sesuai dengan kebutuhan bisnis Anda.
Setelah membuat kebijakan kustom, Anda harus melampirkannya ke pengguna RAM, grup pengguna RAM, atau peran RAM agar izin yang ditentukan dalam kebijakan dapat diberikan kepada entitas utama.
Anda dapat menghapus kebijakan RAM yang tidak dilampirkan pada entitas utama. Namun, jika kebijakan RAM telah dilampirkan, Anda harus melepasnya terlebih dahulu sebelum menghapusnya.
Kebijakan kustom mendukung kontrol versi. Anda dapat mengelola versi kebijakan kustom menggunakan mekanisme manajemen versi yang disediakan oleh RAM.
Referensi
Contoh kebijakan kustom
Jika Anda ingin menggunakan kode contoh, hapus semua komentar setelah menyalin kode. Komentar mencakup dua garis miring (//) dan deskripsi yang mengikuti.
Contoh 1: Berikan izin pada topik atau grup dalam suatu instance.
Anda dapat memberikan izin kepada pengguna RAM untuk mempublikasikan atau berlangganan pesan dari topik atau grup tertentu. Untuk memberikan izin, konfigurasikan kebijakan berdasarkan contoh berikut:
Instance yang berisi namespace:
{ "Version":"1", "Statement":[ { // Berikan izin berikut pada instance. Sebelum memberikan izin pada topik atau grup, Anda harus terlebih dahulu memberikan izin berikut pada instance yang sesuai. Contoh ini berlaku untuk instance yang berisi namespace. "Effect":"Allow", "Action":[ "mq:QueryInstanceBaseInfo" ], "Resource":[ "acs:mq:*:*:{instanceId}" ] }, { // Berikan izin yang diperlukan untuk mempublikasikan pesan ke dan berlangganan pesan dari topik tertentu. "Effect":"Allow", "Action":[ "mq:PUB", "mq:SUB" ], "Resource":[ "acs:mq:*:*:{instanceId}%{topic}" ] }, { // Berikan izin yang diperlukan pada grup tertentu. "Effect":"Allow", "Action":[ "mq:SUB" ], "Resource":[ "acs:mq:*:*:{instanceId}%{groupId}" ] } ] }Instance yang tidak berisi namespace:
{ "Version":"1", "Statement":[ { // Berikan izin berikut pada instance. Sebelum memberikan izin pada topik atau grup, Anda harus terlebih dahulu memberikan izin berikut pada instance yang sesuai. Contoh ini berlaku untuk instance yang tidak berisi namespace. "Effect":"Allow", "Action":[ "mq:QueryInstanceBaseInfo" ], "Resource":[ "acs:mq:*:*:{instanceId}" ] }, { // Berikan izin yang diperlukan untuk mempublikasikan pesan ke dan berlangganan pesan dari topik tertentu. "Effect":"Allow", "Action":[ "mq:PUB", "mq:SUB" ], "Resource":[ "acs:mq:*:*:{topic}" ] }, { // Berikan izin yang diperlukan pada grup tertentu. "Effect":"Allow", "Action":[ "mq:SUB" ], "Resource":[ "acs:mq:*:*:{groupId}" ] } ] }
Contoh 2: Berikan semua izin pada semua sumber daya dalam suatu instance. Contoh ini hanya berlaku untuk instance yang berisi namespace.
Untuk memberikan semua izin pada semua sumber daya dalam suatu instance, konfigurasikan kebijakan berdasarkan contoh berikut:
{ // Contoh ini hanya berlaku untuk instance yang berisi namespace. "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "mq:*" ], "Resource": [ "acs:mq:*:*:{instanceId}*" // Berikan semua izin pada instance. Ganti {instanceId} dengan ID instance Anda. ] } ] }
Informasi otorisasi
Untuk menggunakan kebijakan kustom, Anda harus memahami persyaratan manajemen izin bisnis Anda dan informasi otorisasi tentang ApsaraMQ for RocketMQ. Untuk informasi lebih lanjut, lihat Otorisasi RAM.