全部产品
Search
文档中心

ApsaraMQ for RabbitMQ:Referensi untuk kebijakan kustom ApsaraMQ for RabbitMQ

更新时间:Nov 10, 2025

Jika kebijakan sistem tidak memenuhi kebutuhan Anda, Anda dapat membuat kebijakan kustom untuk menerapkan prinsip hak istimewa minimal. Kebijakan kustom menyediakan kontrol izin detail halus dan meningkatkan keamanan sumber daya. Topik ini menjelaskan berbagai skenario serta memberikan contoh kebijakan kustom untuk ApsaraMQ for RabbitMQ.

Apa itu kebijakan kustom?

Kebijakan Resource Access Management (RAM) diklasifikasikan menjadi kebijakan sistem dan kebijakan kustom. Anda bertanggung jawab untuk memelihara kebijakan kustom.

  • Setelah membuat kebijakan kustom, Anda perlu menyambungkannya ke Pengguna RAM, kelompok pengguna, atau Peran RAM agar izin yang ditentukan dalam kebijakan tersebut diberikan kepada pihak yang berwenang.

  • Anda dapat menghapus kebijakan RAM yang tidak disambungkan ke pihak yang berwenang. Jika kebijakan RAM tersebut telah disambungkan, Anda harus melepas sambungannya terlebih dahulu sebelum menghapusnya.

  • Kebijakan kustom mendukung pengendalian versi. Anda dapat mengelola versi kebijakan kustom berdasarkan mekanisme manajemen versi yang disediakan oleh RAM.

Referensi

Kebijakan otorisasi kustom

ApsaraMQ for RabbitMQ mendukung kebijakan kustom berikut.

Izin API klien

API Klien

Tindakan

Sumber Daya

Deskripsi

exchange.declare (passive=false)

amqp:CreateExchange

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/*

Mendeklarasikan exchange dan memeriksa apakah exchange tersebut ada.

  • Jika exchange yang ditentukan tidak ada, sebuah exchange dibuat dan pesan sukses dikembalikan.

  • Jika exchange yang ditentukan sudah ada, sistem memeriksa apakah informasi tentang exchange tersebut benar. Jika informasi benar, pesan sukses dikembalikan. Jika informasi salah, kesalahan dilaporkan.

exchange.declare (passive=true)

amqp:GetExchange

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/$exchangeName

Mendeklarasikan exchange dan memeriksa apakah exchange tersebut ada.

  • Jika exchange yang ditentukan tidak ada, kesalahan dilaporkan.

  • Jika exchange yang ditentukan sudah ada, pesan sukses dikembalikan.

exchange.bind

amqp:GetExchange (source exchange)

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/$exchangeName (source exchange)

Menyambungkan exchange sumber ke exchange tujuan.

amqp:CreateExchange (destination exchange)

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/* (destination exchange)

exchange.unbind

amqp:GetExchange (source exchange)

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/$exchangeName (source exchange)

Melepas sambungan exchange sumber dari exchange tujuan.

amqp:CreateExchange (destination exchange)

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/* (destination exchange)

queue.declare (passive=false)

amqp:CreateQueue

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/*

Mendeklarasikan antrian dan memeriksa apakah antrian tersebut ada.

  • Jika antrian yang ditentukan tidak ada, sebuah antrian dibuat.

  • Jika antrian yang ditentukan sudah ada, sistem memeriksa apakah informasi tentang antrian tersebut benar. Jika informasi benar, pesan sukses dikembalikan. Jika informasi salah, kesalahan dilaporkan.

queue.declare (passive=true)

amqp:GetQueue

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName

Mendeklarasikan antrian dan memeriksa apakah antrian tersebut ada.

  • Jika antrian yang ditentukan tidak ada, kesalahan dilaporkan.

  • Jika antrian yang ditentukan sudah ada, pesan sukses dikembalikan.

queue.declare (with dead-letter exchange)

amqp:CreateQueue

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/*

Mendeklarasikan antrian yang disambungkan ke dead-letter exchange.

amqp:GetQueue

acs:amqp:$region:$accountid:/vhosts/$vhostName/queues/$queueName

amqp:CreateExchange (dead-letter exchange)

acs:amqp:$region:$accountid:/instances/$instanceName/vhosts/$vhostName/exchanges/$exchangeName (dead-letter exchange)

queue.bind

amqp:CreateQueue

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/*

Menyambungkan antrian ke exchange.

amqp:GetExchange

acs:amqp:$region:$accountid:/instances/$instanceName/vhosts/$vhostName/exchanges/$exchangeName

queue.unbind

amqp:CreateQueue

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/*

Melepas sambungan antrian dari exchange.

amqp:GetExchange

acs:amqp:$region:$accountid:/instances/$instanceName/vhosts/$vhostName/exchanges/$exchangeName

BasicRecover

amqp:BasicRecover

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/*

Mengirim ulang paket yang belum diakui (Ack) oleh konsumen.

BasicCancel

amqp:BasicCancel

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Membatalkan langganan.

BasicPublish

amqp:BasicPublish

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/$exchangeName/messages/*

Menerbitkan paket.

BasicConsume

amqp:BasicConsume

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Memulai konsumen.

BasicAck

amqp:BasicAck

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Mengakui satu atau beberapa paket.

BasicNack

amqp:BasicNack

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Menolak satu atau beberapa paket.

BasicReject

amqp:BasicReject

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Menolak sebuah paket.

BasicGet

amqp:BasicGet

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Mengakses langsung paket dalam antrian.

Izin OpenAPI dan fitur konsol

OpenAPI/fitur Konsol

Tindakan

Sumber Daya

Deskripsi

ListInstances

amqp:ListInstance

acs:amqp:$region:$accountid:/instances/*

Menanyakan daftar instans.

CreateInstance

amqp:CreateInstance

acs:amqp:$region:$accountid:/instances/*

Membuat instans.

Kebijakan untuk operasi API CreateInstance mendukung kunci kondisi berikut. Untuk informasi selengkapnya, lihat Kondisi.

  • amqp:InstanceType: Edisi instans yang dapat dibuat. Nilai yang valid:

    • enterprise: Edisi Perusahaan

    • vip: Edisi Platinum

  • amqp:SupportEIP: Menentukan apakah mendukung akses Internet. Nilai yang valid:

    • true: Mendukung akses Internet.

    • false: Tidak mendukung akses Internet.

DeleteInstance

amqp:DeleteInstance

acs:amqp:$region:$accountid:/instances/$instanceId

Menghapus instans.

GetInstance

amqp:GetInstance

acs:amqp:$region:$accountid:/instances/$instanceId

Menampilkan instans.

ListVhost

amqp:ListVhost

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/*

Menanyakan daftar vhost.

CreateVhost

amqp:CreateVhost

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/*

Membuat vhost.

DeleteVhost

amqp:DeleteVhost

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName

Menghapus vhost. Operasi ini juga memerlukan izin API amqp:GetInstance.

amqp:GetInstance

acs:amqp:$region:$accountid:/instances/$instanceId

ListExchange

amqp:ListExchange

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/*

Menanyakan daftar exchange. Operasi ini juga memerlukan izin API amqp:GetInstance.

amqp:GetInstance

acs:amqp:$region:$accountid:/instances/$instanceId

CreateExchange

amqp:CreateExchange

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/*

Membuat exchange.

DeleteExchange

amqp:DeleteExchange

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/exchanges/$exchangeName

Menghapus exchange.

ListQueue

amqp:ListQueue

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/*

Menanyakan daftar antrian. Operasi ini juga memerlukan izin API amqp:GetInstance.

amqp:GetInstance

acs:amqp:$region:$accountid:/instances/$instanceId

CreateQueue

amqp:CreateQueue

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/*

Membuat antrian.

DeleteQueue

amqp:DeleteQueue

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName

Menghapus antrian.

QueuePurge

amqp:QueuePurge

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Membersihkan antrian.

ListStaticAccounts

amqp:ListStaticAccounts

acs:amqp:$region:$accountid:/instances/$instanceId/staticAccount/*

Menampilkan nama pengguna dan kata sandi. Operasi ini juga memerlukan izin API amqp:GetInstance.

amqp:GetInstance

acs:amqp:$region:$accountid:/instances/$instanceId

FetchStaticAccount

amqp:FetchStaticAccount

acs:amqp:$region:$accountid:/instances/$instanceId/staticAccount/*

Membuat nama pengguna dan kata sandi. Operasi ini juga memerlukan izin API amqp:GetInstance.

amqp:GetInstance

acs:amqp:$region:$accountid:/instances/$instanceId

DeleteStaticAccount

amqp:DeleteStaticAccount

acs:amqp:$region:$accountid:/instances/$instanceId/staticAccount/*

Menghapus nama pengguna dan kata sandi.

Menanyakan paket berdasarkan antrian

amqp:BasicGet

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Mengakses paket dalam antrian.

Mencari pesan berdasarkan ID pesan

amqp:BasicGet

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Mengakses paket dalam antrian.

Mengirim ulang paket

  • amqp:BasicGet

  • amqp:BasicPublish

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Mengirim ulang paket.

Kirim pesan

amqp:BasicPublish

acs:amqp:$region:$accountid:/instances/$instanceId/vhosts/$vhostName/queues/$queueName/messages/*

Mengirim paket.

Contoh kebijakan kustom

Penting

Saat membuat kebijakan kustom, ganti variabel parameter pada contoh berikut dengan nilai aktual Anda.

  • $region: ID wilayah tempat sumber daya berada. Untuk informasi selengkapnya, lihat Endpoint.

  • $accountid: ID Akun Alibaba Cloud dari objek otorisasi.

  • $instanceId: ID instans ApsaraMQ for RabbitMQ.

  • $vhostName: Nama vhost.

  • $queueName: Nama antrian.

  • $exchangeName: Nama exchange.

  • Contoh 1: Memberikan izin untuk mengirim dan menerima pesan dalam vhost

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "amqp:GetInstance",
                    "amqp:ListVhost",
                    "amqp:GetVhost"
                ],
                "Resource":[
                    "acs:amqp:*:*:/instances/$instanceId",
                    "acs:amqp:*:*:/instances/$instanceId/vhosts/$vhostName",
                    "acs:amqp:*:*:/instances/$instanceId/vhosts/*"
                ],
                "Effect":"Allow"
            },
            {
                "Action":[
                    "amqp:ListExchange",
                    "amqp:CreateExchange",
                    "amqp:DeleteExchange",
                    "amqp:ListQueue",
                    "amqp:DeleteQueue",
                    "amqp:CreateQueue",
                    "amqp:BasicRecover",
                    "amqp:BasicCancel",
                    "amqp:BasicPublish",
                    "amqp:BasicConsume",
                    "amqp:BasicAck",
                    "amqp:BasicNack",
                    "amqp:BasicReject",
                    "amqp:QueuePurge",
                    "amqp:BasicGet",
                    "amqp:GetExchange",
                    "amqp:GetQueue"
                ],
                "Resource":"acs:amqp:*:*:/instances/$instanceId/vhosts/$vhostName/*",
                "Effect":"Allow"
            },
            {
                "Action":[
                    "amqp:ListStaticAccounts",
                    "amqp:FetchStaticAccount",
                    "amqp:DeleteStaticAccount"
                ],
                "Resource":"acs:amqp:*:*:/instances/$instanceId/staticAccount/*",
                "Effect":"Allow"
            }
        ]
    }
  • Contoh 2: Memberikan izin untuk menerbitkan pesan

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "amqp:GetInstance"
                ],
                "Resource": [
                    "acs:amqp:*:*:/instances/$instanceId",
                    "acs:amqp:*:*:/instances/$instanceId/vhosts/$vhostName"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "amqp:CreateExchange",
                    "amqp:CreateQueue",
                    "amqp:BasicRecover",
                    "amqp:BasicPublish",
                    "amqp:BasicAck",
                    "amqp:BasicNack",
                    "amqp:GetExchange",
                    "amqp:GetQueue"
                ],
                "Resource": "acs:amqp:*:*:/instances/$instanceId/vhosts/$vhostName/*",
                "Effect": "Allow"
            }
        ]
    }
  • Contoh 3: Memberikan izin untuk berlangganan pesan

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "amqp:GetInstance",
                    "amqp:GetVhost"
                ],
                "Resource": [
                    "acs:amqp:*:*:/instances/$instanceId",
                    "acs:amqp:*:*:/instances/$instanceId/vhosts/$vhostName"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "amqp:CreateExchange",
                    "amqp:CreateQueue",
                    "amqp:BasicRecover",
                    "amqp:BasicCancel",
                    "amqp:BasicConsume",
                    "amqp:BasicAck",
                    "amqp:BasicNack",
                    "amqp:BasicReject",
                    "amqp:QueuePurge",
                    "amqp:BasicGet",
                    "amqp:GetExchange",
                    "amqp:GetQueue"
                ],
                "Resource": "acs:amqp:*:*:/instances/$instanceId/vhosts/$vhostName/*",
                "Effect": "Allow"
            }
        ]
    }
  • Contoh 4: Memberikan izin untuk menerbitkan dan berlangganan pesan

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "amqp:GetInstance",
                    "amqp:GetVhost"
                ],
                "Resource": [
                    "acs:amqp:*:*:/instances/$instanceId",
                    "acs:amqp:*:*:/instances/$instanceId/vhosts/$vhostName"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "amqp:ListExchange",
                    "amqp:CreateExchange",
                    "amqp:DeleteExchange",
                    "amqp:ListQueue",
                    "amqp:DeleteQueue",
                    "amqp:CreateQueue",
                    "amqp:BasicRecover",
                    "amqp:BasicCancel",
                    "amqp:BasicPublish",
                    "amqp:BasicConsume",
                    "amqp:BasicAck",
                    "amqp:BasicNack",
                    "amqp:BasicReject",
                    "amqp:QueuePurge",
                    "amqp:BasicGet",
                    "amqp:GetExchange",
                    "amqp:GetQueue"
                ],
                "Resource": "acs:amqp:*:*:/instances/$instanceId/vhosts/$vhostName/*",
                "Effect": "Allow"
            }
        ]
    }
  • Contoh 5: Memberikan izin untuk mengelola nama pengguna dan kata sandi

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "amqp:ListStaticAccounts",
                    "amqp:FetchStaticAccount",
                    "amqp:DeleteStaticAccount"
                ],
                "Resource": "acs:amqp:*:*:/instances/$instanceId/staticAccount/*"
            },
            {
                "Effect": "Allow",
                "Action": "amqp:GetInstance",
                "Resource": "acs:amqp:*:*:/instances/$instanceId"
            }
        ],
        "Version": "1"
    }
  • Contoh 6: Memberikan izin kepada Pengguna RAM untuk membuat instans

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "amqp:CreateInstance",
                "Resource": "acs:amqp:*:$accountid:/instances/*"
            }
        ]
    }
  • Contoh 7: Memberikan izin kepada Pengguna RAM hanya untuk membuat instans Edisi Platinum yang tidak mendukung akses Internet

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "amqp:CreateInstance",
                "Resource": "acs:amqp:*:$accountid:/instances/*",
                "Condition": {
                    "StringEquals": {
                        "amqp:InstanceType": [
                            "vip"
                        ],
                        "amqp:SupportEIP": [
                            "false"
                        ]
                    }
                }
            }
        ]
    }
  • Contoh 8: Memberikan izin kepada Pengguna RAM semua izin pada satu instans

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "amqp:ListInstance",
                "Resource": "acs:amqp:*:*:/instances/*",
                "Effect": "Allow"
            },
            {
                "Action": "amqp:*",
                "Resource": [
                    "acs:amqp:*:*:/instances/$instanceId",
                    "acs:amqp:*:*:/instances/$instanceId/vhosts/*"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "amqp:ListStaticAccounts",
                    "amqp:FetchStaticAccount",
                    "amqp:DeleteStaticAccount"
                ],
                "Resource": "acs:amqp:*:*:/instances/$instanceId/staticAccount/*",
                "Effect": "Allow"
            }
        ]
    }