Updated on 2024-01-10 GMT+08:00

Permissions

If you need to assign different permissions to personnel in your enterprise to access your DDS resources, Identity and Access Management (IAM) is a good choice for fine-grained permissions management. IAM provides identity authentication, permissions management, and access control, helping you to securely access your Huawei Cloud resources.

With IAM, you can create IAM users and assign permissions to control their access to specific resources. For example, if you want some software developers in your enterprise to use DDS resources but do not want them to delete DDS instances or perform any other high-risk operations, you can create IAM users and grant permission to use DDS instances but not permission to delete them.

If your Huawei account does not require individual IAM users for permissions management, you can skip this section.

IAM is a free service. You only pay for the resources in your account. For more information about IAM, see IAM Service Overview.

DDS Permissions

New IAM users do not have any permissions assigned by default. You need to first add them to one or more groups and attach policies or roles to these groups. The users then inherit permissions from the groups and can perform specified operations on cloud services based on the permissions they have been assigned.

DDS is a project-level service deployed for specific regions. When you set Scope to Region-specific projects and select the specified projects in the specified regions, the users only have permissions for DDS instances in the selected projects. If you set Scope to All resources, the users have permissions for DDS instances in all region-specific projects. When accessing DDS, the users need to switch to the authorized region.

You can grant users permissions by using roles and policies.

  • Roles: A coarse-grained authorization strategy provided by IAM to assign permissions based on users' job responsibilities. Only a limited number of service-level roles are available for authorization. Huawei Cloud services depend on each other. When you grant permissions using roles, you also need to attach any existing role dependencies. Roles are not ideal for fine-grained authorization and least privilege access.
  • Policies: A fine-grained authorization strategy that defines permissions required to perform operations on specific cloud resources under certain conditions. This type of authorization is more flexible and is ideal for least privilege access. For example, you can grant users only permission to manage DDS instances of a certain type.

Table 1 lists all the system-defined permissions for DDS.

Table 1 System-defined permissions for DDS

Role/Policy Name

Description

Type

Dependencies

DDS FullAccess

Full permissions for Document Database Service.

System-defined policy

To create yearly/monthly instances, configure the CBC actions:
  • bss:balance:view
  • bss:balance:update
  • bss:order:view
  • bss:order:pay
  • bss:order:update
  • bss:renewal:view
  • bss:renewal:update
To unsubscribe from a yearly/monthly instance, you need to configure the following CBC action:
  • bss:unsubscribe:update

DDS ReadOnlyAccess

Read-only permissions for Document Database Service. Users with these permissions can only view DDS data.

System-defined policy

None

Table 2 lists the common operations supported by system-defined permissions for DDS.

Table 2 Common operations supported by system-defined permissions

Operation

DDS FullAccess

DDS ReadOnlyAccess

Creating an instance

x

Querying instances

Deleting an instance

x

Restarting an instance

x

Performing a primary/secondary switchover

x

Changing a database port

x

Resetting a password

x

Modifying an SSL policy

x

Changing a security group

x

Binding or unbinding an EIP

x

Scaling up storage space

x

Changing instance specifications

x

Adding nodes

x

Deleting the node that fails to be added

x

Modifying an automated backup policy

x

Renaming an instance

x

Changing a private IP address

x

Changing the parameter template associated with the node in a DB instance

x

Showing original slow logs

x

Enabling or disabling local log auditing

x

Downloading audit logs

x

Deleting audit logs

x

Downloading a backup

x

Creating a manual backup

x

Querying the backup list

Restoring data to a new DB instance

x

Restoring data to an existing instance

x

Deleting a backup

x

Creating a parameter template

x

Viewing parameter templates

Modifying a parameter template

x

Deleting a parameter template

x

Viewing a task center list

x

Stopping a backup

x

Table 3 lists common DDS operations and corresponding actions. You can refer to this table to customize permission policies.

Table 3 Common operations and supported actions

Operation

Actions

Authorization Scope

Description

Instance creation page

  • vpc:vpcs:list
  • vpc:subnets:get
  • vpc:securityGroups:get

Supported:

  • IAM projects
  • Enterprise projects

The VPC, subnet, and security group are displayed on the instance creation page.

Creating an instance

  • dds:instance:create
  • vpc:vpcs:list
  • vpc:vpcs:get
  • vpc:subnets:get
  • vpc:securityGroups:get
  • vpc:ports:get

Supported:

  • IAM projects
  • Enterprise projects

If the default VPC, subnet, and security group are used, the vpc:*:create permission must be configured.

To create an encrypted instance, configure the KMS Administrator permission for the project.

Querying DB instances

dds:instance:list

Supported:

  • IAM projects
  • Enterprise projects

-

Querying details of a DB instance

dds:instance:list

Supported:

  • IAM projects
  • Enterprise projects

If the VPC, subnet, and security group need to be displayed on the instance details page, add the vpc:*:get and vpc:*:list actions.

Exporting DB instance lists

dds:instance:list

Supported:

  • IAM projects
  • Enterprise projects

If the VPC, subnet, and security group are required, add the vpc:*:get and vpc:*:list actions.

Deleting a DB instance

dds:instance:deleteInstance

Supported:

  • IAM projects
  • Enterprise projects

When deleting a DB instance, delete the IP address on the data side.

Restarting a DB instance

dds:instance:reboot

Supported:

  • IAM projects
  • Enterprise projects

-

Performing a primary/secondary switchover

dds:instance:switchover

Supported:

  • IAM projects
  • Enterprise projects

-

Changing a port

dds:instance:modifyPort

Supported:

  • IAM projects
  • Enterprise projects

-

Resetting a password

dds:instance:resetPasswd

Supported:

  • IAM projects
  • Enterprise projects

-

Modified SSL

dds:instance:modifySSL

Supported:

  • IAM projects
  • Enterprise projects

-

Modifying a security group

dds:instance:modifySecurityGroup

Supported:

  • IAM projects
  • Enterprise projects

-

Binding an EIP

dds:instance:bindPublicIp

Supported:

  • IAM projects

When binding an EIP, you need to query the created EIP.

  • Enterprise projects are not supported.
  • Fine-grained authentication is not supported.

For details, see Floating IP Address.

Unbinding an EIP

dds:instance:unbindPublicIp

Supported:

  • IAM projects
  • Enterprise projects are not supported.
  • Fine-grained authentication is not supported.

For details, see Floating IP Address.

Scaling up storage space

dds:instance:extendVolume

Supported:

  • IAM projects
  • Enterprise projects

-

Changing DB instance classes

dds:instance:modifySpec

Supported:

  • IAM projects
  • Enterprise projects

-

Adding nodes

  • dds:instance:extendNode
  • vpc:vpcs:list
  • vpc:vpcs:get
  • vpc:subnets:get
  • vpc:securityGroups:get
  • vpc:ports:get

Supported:

  • IAM projects
  • Enterprise projects

-

Deleting the node that fails to be added

dds:instance:extendNode

Supported:

  • IAM projects
  • Enterprise projects

If the IP address has been created but the subsequent procedure fails, delete the IP address on the data side.

Modifying an automated backup policy

dds:instance:modifyBackupPolicy

Supported:

  • IAM projects
  • Enterprise projects

-

Renaming a DB instance

dds:instance:modify

Supported:

  • IAM projects
  • Enterprise projects

-

Changing a private IP address

  • dds:instance:modifyVIP
  • vpc:subnets:get
  • vpc:ports:get

Supported:

  • IAM projects
  • Enterprise projects

Before changing the private IP address, query available IP addresses.

Changing the parameter template associated with the node in a DB instance

dds:instance:modifyParameter

Supported:

  • IAM projects
  • Enterprise projects

-

Showing original slow logs

dds:instance:modifySlowLogPlaintextSwitch

Supported:

  • IAM projects
  • Enterprise projects

-

Enabling or disabling local log auditing

dds:instances:modifyAuditLogSwitch

Supported:

  • IAM projects
  • Enterprise projects

-

Downloading audit logs

dds:instances:downloadAuditLog

Supported:

  • IAM projects
  • Enterprise projects

-

Deleting audit logs

dds:instance:deleteAuditLog

Supported:

  • IAM projects
  • Enterprise projects

-

Downloading a backup file

dds:backup:download

Supported:

  • IAM projects
  • Enterprise projects

-

Changing the billing mode from pay-per-use to yearly/monthly

dds:instances:renew

Supported:

  • IAM projects
  • Enterprise projects

-

Creating a Manual Backup

dds:instance:createManualBackup

Supported:

  • IAM projects
  • Enterprise projects

-

Querying the backup list

dds:backup:list

Supported:

  • IAM projects
  • Enterprise projects

-

Restoring data to a new DB instance

  • dds:backup:createInstanceFromBackup
  • vpc:vpcs:list
  • vpc:vpcs:get
  • vpc:subnets:get
  • vpc:securityGroups:get
  • vpc:ports:get

Supported:

  • IAM projects
  • Enterprise projects

The KMS Administrator permission needs to be configured for the encrypted instance in the project.

Restoring to an existing DB instance

dds:backup:refreshInstanceFromBackup

Supported:

  • IAM projects
  • Enterprise projects

-

Deleting a backup

dds:backup:delete

Supported:

  • IAM projects
  • Enterprise projects

-

Creating a parameter template

dds:param:create

Supported:

  • IAM projects
  • Enterprise projects

-

Viewing parameter templates

dds:param:list

Supported:

  • IAM projects
  • Enterprise projects

-

Modifying a parameter template

dds:param:modify

Supported:

  • IAM projects
  • Enterprise projects

-

Deleting a parameter template

dds:param:delete

Supported:

  • IAM projects
  • Enterprise projects

-

Task Center list

dds:task:list

Supported:

  • IAM projects
  • Enterprise projects

-

Stopping a backup

dds:backup:stop

Supported:

  • IAM projects
  • Enterprise projects

-

Querying a log group

lts:groups:get

Supported:

  • IAM projects
  • Enterprise projects

-

Querying a log stream

lts:topics:get

Supported:

  • IAM projects
  • Enterprise projects

-