Help Center/ Domain Name Service/ API Reference/ Permissions and Supported Actions/ Actions Supported by Role/Policy-based Authorization
Updated on 2026-09-28 GMT+08:00

Actions Supported by Role/Policy-based Authorization

This section describes the actions supported by DNS in role/policy-based authorization.

Supported Actions

DNS 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
  • Dependent actions: actions which a specific action depends on. When allowing an action for a user, you also need to allow its dependent actions 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 What Are the Differences Between IAM and Enterprise Management?

DNS supports the following actions in custom policies:

  • Zone Management: includes all the actions supported by zone management APIs, such as the API for creating a zone.
  • Record Set Management: includes all the actions supported by record set management APIs, such as the API for creating a record set.
  • PTR Record Management: includes all the actions supported by PTR record management APIs, such as the API for creating a PTR record.
  • Tag Management: includes all the actions supported by tag management APIs, such as the API for adding a resource tag.
  • Record Set Importing: includes all the actions supported by record set importing management APIs, such as the API for creating a task for importing public zone record sets.

Zone Management

Table 1 Zone management

Permission

API

Action

Dependent Action

IAM Project

Enterprise Project

Creating a zone

POST /v2/zones

dns:zone:create

vpc:*:get*

vpc:*:list*

Supported

√

Querying a zone

GET /v2/zones/{zone_id}

dns:zone:get

-

Supported

√

Querying zones

GET /v2/zones

dns:zone:list

-

Supported

The following filter criteria are supported:

  • Enterprise project
  • Resource ID

Modifying a zone

PATCH /v2/zones/{zone_id}

dns:zone:update

-

Supported

√

Setting the zone status

PUT /v2/zones/{zone_id}/statuses

dns:zone:setStatus

-

Supported

√

Deleting a zone

DELETE /v2/zones/{zone_id}

dns:zone:delete

ces:remoteChecks:list

ces:siteMonitorHealthCheck:get

ces:siteMonitorHealthCheck:create

ces:siteMonitorRule:delete

ces:siteMonitorRule:put

Supported

√

Deleting zones

DELETE /v2.1/zones

dns:zone:delete

ces:remoteChecks:list

ces:siteMonitorHealthCheck:get

ces:siteMonitorHealthCheck:create

ces:siteMonitorRule:delete

ces:siteMonitorRule:put

Supported

√

Associating a private zone with a VPC

POST /v2/zones/{zone_id}/associaterouter

dns:zone:associaterouter

vpc:*:get*

vpc:*:list*

Supported

√

NOTE:

Shared private zones are not included.

Disassociating a VPC from a private zone

POST /v2/zones/{zone_id}/disassociaterouter

dns:zone:disassociaterouter

vpc:*:get*

vpc:*:list*

Supported

√

NOTE:

Shared private zones are not included.

Retrieving a public zone

POST /v2/retrieval

dns:zone:createRetrieval

-

Supported

Not supported

Requesting immediate verification of public zone retrieval

POST /v2/retrieval/verification/{id}

Querying the public zone retrieval request

GET /v2/retrieval

dns:zone:getRetrieval

-

Supported

Not supported

Querying the retrieval result of a public zone

GET /v2/retrieval/verification/{id}

Exporting zones

GET /v2/zones/{zone_id}/export

dns:zone:getExport

-

Supported

√

Record Set Management

Table 2 Record set management

Permission

API

Action

Dependent Action

IAM Project

Enterprise Project

Creating a record set

POST /v2/zones/{zone_id}/recordsets

dns:recordset:create

-

Supported

√

Creating a record set

POST /v2.1/zones/{zone_id}/recordsets

dns:recordset:create

-

Supported

√

Querying a record set

GET /v2/zones/{zone_id}/recordsets/{recordset_id}

dns:recordset:get

-

Supported

√

Querying a record set

GET /v2.1/zones/{zone_id}/recordsets/{recordset_id}

dns:recordset:get

-

Supported

√

Querying record sets

GET /v2/zones/{zone_id}/recordsets

dns:recordset:list

-

Supported

This API is used to list record sets.

The zone ID can be used as a filter criterion.

GET /v2/recordsets

Querying record sets

GET /v2.1/zones/{zone_id}/recordsets

dns:recordset:list

-

Supported

This API is used to list record sets.

The zone ID can be used as a filter criterion.

GET /v2.1/recordsets

Modifying a record set

PUT /v2/zones/{zone_id}/recordsets/{recordset_id}

dns:recordset:update

-

Supported

√

Modifying a record set

PUT /v2.1/zones/{zone_id}/recordsets/{recordset_id}

dns:recordset:update

-

Supported

√

Deleting a record set

DELETE /v2/zones/{zone_id}/recordsets/{recordset_id}

dns:recordset:delete

ces:remoteChecks:list

ces:siteMonitorHealthCheck:get

ces:siteMonitorHealthCheck:create

ces:siteMonitorRule:delete

ces:siteMonitorRule:put

Supported

√

Deleting a record set

DELETE /v2.1/zones/{zone_id}/recordsets/{recordset_id}

dns:recordset:delete

ces:remoteChecks:list

ces:siteMonitorHealthCheck:get

ces:siteMonitorHealthCheck:create

ces:siteMonitorRule:delete

ces:siteMonitorRule:put

Supported

√

Deleting record sets

DELETE /v2.1/zones/{zone_id}/recordsets

dns:recordset:delete

ces:remoteChecks:list

ces:siteMonitorHealthCheck:get

ces:siteMonitorHealthCheck:create

ces:siteMonitorRule:delete

ces:siteMonitorRule:put

Supported

√

Setting record set status

PUT /v2.1/recordsets/{recordset_id}/statuses/set

dns:recordset:setStatus

-

Supported

√

PTR Record Management

Table 3 PTR record management

Permission

API

Action

Dependent Action

IAM Project

Enterprise Project

Creating a PTR record

PATCH /v2/reverse/floatingips/{region}:{floatingip_id}

dns:ptr:set

vpc:*:get*

vpc:*:list*

Supported

√

Modifying a PTR record

PATCH /v2/reverse/floatingips/{region}:{floatingip_id}

Restoring a PTR record

PATCH /v2/reverse/floatingips/{region}:{floatingip_id}

Restoring PTR records

DELETE /v2.1/reverse/floatingips

Querying a PTR record

GET /v2/reverse/floatingips/{region}:{floatingip_id}

dns:ptr:get

-

Supported

√

Querying PTR records

GET /v2/reverse/floatingips

dns:ptr:list

-

Supported

×

This API is used to list PTR records.

The following filter criteria are supported:
  • Enterprise project
  • Resource ID

    Resource ID format: {region}:{floatingip_id}

Tag Management

Table 4 Tag management

Permission

API

Action

Dependent Action

IAM Project

Enterprise Project

Adding a resource tag

POST /v2/{project_id}/{resource_type}/{resource_id}/tags

dns:tag:set

-

Supported

√

Adding or deleting resource tags

POST /v2/{project_id}/{resource_type}/{resource_id}/tags/action

Deleting a resource tag

DELETE /v2/{project_id}/{resource_type}/{resource_id}/tags/{key}

dns:tag:get

Querying tags of a resource

GET /v2/{project_id}/{resource_type}/{resource_id}/tags

dns:tag:get

-

Supported

√

Querying project tags

GET /v2/{project_id}/{resource_type}/tags

dns:tag:get

-

Supported

×

Querying resources by tag

POST /v2/{project_id}/{resource_type}/resource_instances/action

dns:tag:get

-

Supported

×

Record Set Importing

Table 5 Record set importing

Permission

API

Action

Dependent Action

IAM Project

Enterprise Project

Creating a task to import public zone record sets

POST /v2/zones/{zone_id}/import/recordsets

dns:publicRecordset:createImport

-

Supported

√

Querying a task for importing public zone record sets

GET /v2/zones/{zone_id}/import/recordsets

dns:publicRecordset:getImport

-

Supported

√

Deleting a task for importing public zone record sets

DELETE /v2/zones/{zone_id}/import/tasks/{task_id}

dns:publicRecordset:deleteImport

-

Supported

√

Creating a task to import private zone record sets

POST /v2/zones/{zone_id}/import/private/recordsets

dns:privateRecordset:createImport

-

Supported

√

Querying a task for importing private zone record sets

GET /v2/zones/{zone_id}/import/private/recordsets

dns:privateRecordset:getImport

-

Supported

√

Deleting a task for importing private zone record sets

DELETE /v2/zones/{zone_id}/import/private/tasks/{task_id}

dns:privateRecordset:deleteImport

-

Supported

√