Updated on 2026-04-20 GMT+08:00

Actions Supported by Policy-based Authorization

This section describes the actions supported by DMS for RabbitMQ in policy-based authorization.

Supported Actions

DMS provides system-defined policies that can be directly used in IAM. You can also create custom policies to supplement system-defined policies for more refined access control. Operations supported by policies are specific to APIs. The following are common concepts related to policies:

  • Permissions: statements in a policy that allow or deny certain operations
  • APIs: REST APIs that can be called by a user who has been granted specific permissions
  • Actions: specific operations that are allowed or denied in a custom policy
  • Dependencies: actions which a specific action depends on. When allowing an action for a user, you also need to allow any existing action dependencies for that user.
  • IAM projects/Enterprise projects: the authorization scope of a custom policy. A custom policy can be applied to IAM projects or enterprise projects or both. Policies that contain actions for both IAM and enterprise projects can be used and applied for both IAM and Enterprise Management. Policies that contain actions only for IAM projects can be used and applied to IAM only. Administrators can check whether an action supports IAM projects or enterprise projects in the action list. For details about the differences between IAM and enterprise management, see Differences Between IAM and Enterprise Management.

DMS for RabbitMQ supports the following actions that can be defined in custom policies.

  • Lifecycle management actions, including actions supported by RabbitMQ lifecycle management APIs, such as the APIs for creating an instance, querying the instance list, modifying instance information, and batch restarting or deleting instances.
  • Instance management actions, including actions supported by RabbitMQ instance management APIs, such as the APIs for resetting passwords, querying the plug-in list, and enabling or disabling a plug-in.
  • Specification modification management actions, including actions supported by specification modification management APIs, such as the APIs for querying product information for specification modification of instances with new flavors and modifying specifications of instances with new flavors.
  • Virtual host management actions, including actions supported by virtual host management APIs, such as the APIs for creating a virtual host and querying a virtual host list.
  • Exchange management actions, including actions supported by exchange management APIs, such as the APIs for creating an exchange and querying an exchange list.
  • Queue management actions, including actions supported by queue management APIs, such as the APIs for creating a queue and clearing messages in a queue.
  • Binding management actions, including actions supported by binding management APIs, such as the APIs for adding and deleting a binding.
  • User management actions, including actions supported by user management APIs, such as the APIs for creating a user and querying a user list.
  • Background task management actions, including actions supported by background task management APIs, such as the APIs for querying the background task list of an instance and querying a specified background task.
  • Tag management actions, including actions supported by tag management APIs, such as the APIs for querying instance tags and project tags.
  • Others, including actions supported by APIs for querying the maintenance time window and querying AZ information.

Lifecycle Management

Table 1 Lifecycle management actions

Permission

API

Action

IAM

Project

Enterprise

Project

Creating a pay-per-use instance

POST /v2/{engine}/{project_id}/instances

dms:instance:create

Querying all instances

GET /v2/{project_id}/instances

dms:instance:list

Querying an instance

GET /v2/{project_id}/instances/{instance_id}

dms:instance:get

Deleting an instance

DELETE /v2/{project_id}/instances/{instance_id}

dms:instance:delete

Modifying an instance

PUT /v2/{project_id}/instances/{instance_id}

dms:instance:modify

Batch restarting or deleting instances

POST /v2/{project_id}/instances/action

Restart: dms:instance:modifyStatus

Delete: dms:instance:delete

Instance Management

Table 2 Instance management actions

Permission

API

Action

IAM

Project

Enterprise

Project

Resetting a password

POST /v2/{project_id}/instances/{instance_id}/password

dms:instance:resetAuthInfo

Listing plug-ins

GET /v2/{project_id}/instances/{instance_id}/rabbitmq/plugins

dms:instance:list

Enabling or disabling a plug-in

PUT /v2/{project_id}/instances/{instance_id}/rabbitmq/plugins

dms:instance:modify

Restoring Instances from the Recycle Bin

POST /v2/{project_id}/recycle

dms:instance:modify

Querying the Recycle Bin Instance List

GET /v2/{project_id}/recycle

dms:instance:list

Updating the Recycle Bin Policy

PUT /v2/{project_id}/recycle

dms:instance:modify

Specification Modification Management

Table 3 Specification modification management action

Permission

API

Action

IAM

Project

Enterprise

Project

Querying Product Information for Specification Modification of Instances with New Flavors

GET /v2/{engine}/{project_id}/instances/{instance_id}/extend

dms:instance:get

Modifying Specifications of Instances with New Flavors

POST /v2/{engine}/{project_id}/instances/{instance_id}/extend

dms:instance:scale

Querying the Automatic Disk Storage Expansion Configuration

GET /v2/{project_id}/instances/{instance_id}/auto-volume-expand

dms:instance:get

Modifying the Automatic Disk Storage Expansion Configuration

PUT /v2/{project_id}/instances/{instance_id}/auto-volume-expand

dms:instance:scale

Virtual Host Management

Table 4 Virtual host management

Permission

API

Action

IAM

Project

Enterprise

(Enterprise Project)

Creating a Virtual Host

PUT /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts

dms:instance:modify

Querying Virtual Hosts

GET /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts

dms:instance:get

Deleting Specified Virtual Hosts in Batches

POST /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts

dms:instance:modify

Exchange Management

Table 5 Exchange management

Permission

API

Action

IAM

Project

Enterprise

Project

Creating an Exchange

PUT /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/exchanges

dms:instance:modify

Querying Exchanges

GET /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/exchanges

dms:instance:get

Deleting Specified Exchanges in Batches

POST /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/exchanges

dms:instance:modify

Queue Management

Table 6 Queue management

Permission

API

Action

IAM

Project

Enterprise

(Enterprise Project)

Creating a Queue

PUT /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/queues

dms:instance:modify

Querying Queues of a Virtual Host

GET /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/queues

dms:instance:get

Deleting Specified Queues in Batches

POST /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/queues

dms:instance:modify

Clearing Messages in a Queue

DELETE /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/queues/{queue}/contents

dms:instance:modify

Querying Specified Queue Details

GET /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/queues/{queue}

dms:instance:get

Binding Management

Table 7 Binding management

Permission

API

Action

IAM

Project

Enterprise

(Enterprise Project)

Adding a Binding

POST /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/exchanges/{exchange}/binding

dms:instance:modify

Querying Bindings of an Exchange

GET /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/exchanges/{exchange}/binding

dms:instance:get

Deleting Bindings

GET /v2/{project_id}/instances/{instance_id}/tasks/{task_id}

dms:instance:modify

User Management

Table 8 User management

Permission

API

Action

IAM

Project

Enterprise

(Enterprise Project)

Creating a User

POST /v2/{project_id}/instances/{instance_id}/users

dms:instance:modify

Querying Users

GET /v2/{project_id}/instances/{instance_id}/users

dms:instance:get

Modifying User Parameters

PUT /v2/{project_id}/instances/{instance_id}/users/{user_name}

dms:instance:modify

Deleting Users

DELETE /v2/{project_id}/instances/{instance_id}/users/{user_name}

dms:instance:modify

Background Task Management

Table 9 Background task management actions

Permission

API

Action

IAM

Project

Enterprise

Project

Listing background tasks

GET /v2/{project_id}/instances/{instance_id}/tasks

dms:instance:getBackgroundTask

Querying a background task

GET /v2/{project_id}/instances/{instance_id}/tasks/{task_id}

dms:instance:getBackgroundTask

Deleting a background task

GET /v2/{project_id}/instances/{instance_id}/tasks/{task_id}

dms:instance:deleteBackgroundTask

Querying the Scheduled Task List of an Instance

GET /v2/{project_id}/instances/{instance_id}/scheduled-tasks

dms:instance:get

Deleting a Specified Record in the Scheduled Task Management

DELETE /v2/{project_id}/instances/{instance_id}/scheduled-tasks/{task_id}

dms:instance:modify

Modifying a Specified Record in the Scheduled Task Management

PUT /v2/{project_id}/instances/{instance_id}/scheduled-tasks/{task_id}

dms:instance:modify

Tag Management

Table 10 Tag management actions

Permission

API

Action

IAM

Project

Enterprise

Project

Batch adding or deleting tags

POST /v2/{project_id}/rabbitmq/{instance_id}/tags/action

dms:instance:modify

Listing tags of an instance

GET /v2/{project_id}/rabbitmq/{instance_id}/tags

dms:instance:get

Listing tags of a project

GET /v2/{project_id}/rabbitmq/tags

dms:instance:get

Other APIs

Table 11 Other APIs

Permission

API

Action

IAM Projects

Enterprise Projects

Querying Maintenance Time Windows

GET /v2/instances/maintain-windows

dms:instance:get

Querying AZ Information

GET /v2/available-zones

dms:instance:get

Querying Product Specifications

GET /v2/{engine}/products

dms:instance:get

Querying RabbitMQ Instance Monitoring Dimensions

GET /v2/{project_id}/instances/{instance_id}/ces-hierarchy

dms:instance:get

Querying RabbitMQ Product vCPUs

GET /v2/rabbitmq/products/cores

dms:instance:get

Querying the Feature Switch List

GET /v2/config/features

dms:instance:get

Table 12 shows fine-grained permission dependencies of DMS for RabbitMQ.

Table 12 Fine-grained permission dependencies of DMS for RabbitMQ

Action

Description

Dependencies

dms:instance:get

Viewing instance details

None

dms:instance:getBackgroundTask

Viewing background task details

None

dms:instance:resetAuthInfo

Resetting instance passwords

None

dms:instance:scale

Enabling instance scale-up

  • vpc:vpcs:get
  • vpc:ports:create
  • vpc:securityGroups:get
  • vpc:ports:get
  • vpc:subnets:get
  • vpc:vpcs:list
  • vpc:publicIps:get
  • vpc:publicIps:list
  • vpc:ports:update
  • vpc:publicIps:update

dms:instance:modify

Modifying an instance

  • vpc:vpcs:get
  • vpc:ports:create
  • vpc:securityGroups:get
  • vpc:ports:get
  • vpc:subnets:get
  • vpc:vpcs:list
  • vpc:publicIps:get
  • vpc:publicIps:list
  • vpc:ports:update
  • vpc:publicIps:update

dms:instance:deleteBackgroundTask

Deleting a background task

None

dms:instance:modifyStatus

Restarting an instance

None

dms:instance:delete

Deleting an instance

None

dms:instance:create

Creating an instance

  • vpc:vpcs:get
  • vpc:ports:create
  • vpc:securityGroups:get
  • vpc:ports:get
  • vpc:subnets:get
  • vpc:vpcs:list
  • vpc:publicIps:get
  • vpc:publicIps:list
  • vpc:ports:update
  • vpc:publicIps:update

dms:instance:list

Viewing the instance list

None