Updated on 2024-06-17 GMT+08:00

Permissions

If you need to assign different permissions to personnel in your enterprise to access your FlexusRDS 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 FlexusRDS resources but do not want them to delete FlexusRDS instances or perform any other high-risk operations, you can create IAM users and grant permission to use FlexusRDS 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.

FlexusRDS 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.

FlexusRDS is a project-level service deployed in specific physical regions. When you set Scope to Region-specific projects and select the specified projects (for example, cn-north-1) in the specified regions (for example, CN North-Beijing1), the users only have permissions for FlexusRDS instances in the selected projects. If you set Scope to All resources, the users have permissions for FlexusRDS instances in all region-specific projects. When accessing FlexusRDS instances, the users need to switch to the authorized region.

You can grant 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. 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 permissions to manage database resources of a certain type.

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

Table 1 System-defined permissions for FlexusRDS

Role/Policy Name

Description

Type

Dependencies

RDS FullAccess

Full permissions for FlexusRDS

System-defined policy

To purchase a yearly/monthly DB instance, configure the following actions:

bss:order:update

bss:order:pay

To use storage autoscaling, configure the following actions for IAM users:

  • Creating a custom policy:
    • iam:agencies:listAgencies
    • iam:agencies:createAgency
    • iam:permissions:listRolesForAgencyOnProject
    • iam:permissions:grantRoleToGroupOnProject
    • iam:roles:listRoles
    • cors:productInstance:createDefault
  • Adding system role Security Administrator:

    Select a user group to which the user belongs.

    Click Authorize in the Operation column.

    Add the Security Administrator role.

RDS ReadOnlyAccess

Read-only permissions for FlexusRDS resources

System-defined policy

N/A

RDS ManageAccess

Database administrator permissions for all operations except deleting FlexusRDS resources

System-defined policy

N/A

RDS Administrator

Administrator permissions for FlexusRDS

System-defined role

Tenant Guest and Server Administrator roles, which must be attached in the same project as the RDS Administrator role

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

Table 2 Common operations supported by system-defined permissions

Operation

RDS FullAccess

RDS ReadOnlyAccess

RDS ManageAccess

RDS Administrator

Creating a FlexusRDS instance

x

Deleting a FlexusRDS instance

x

x

Querying FlexusRDS instances

Table 3 Common operations and supported actions

Operation

Actions

Remarks

Creating a DB instance

rds:instance:create

rds:param:list

To select a VPC, subnet, and security group, configure the following actions:

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

To purchase a yearly/monthly DB instance, configure the following actions:

bss:order:update

bss:order:pay

cors:productInstance:createDefault

Rebooting a DB instance

rds:instance:restart

N/A

Querying a DB instance list

rds:instance:list

N/A

Querying DB instance details

rds:instance:list

If the VPC, subnet, and security group are displayed in the DB instance list, you need to configure vpc:*:get and vpc:*:list.

Changing a DB instance password

rds:password:update

N/A

Changing a DB instance name

rds:instance:modify

N/A

Binding or unbinding an EIP

rds:instance:modifyPublicAccess

To query public IP addresses, configure the following actions:

vpc:publicIps:get

vpc:publicIps:list

Modifying parameters in a parameter template

rds:param:modify

N/A

Creating a manual backup

rds:backup:create

N/A

Obtaining the link for downloading a backup file

rds:backup:download

N/A

Deleting a manual backup

rds:backup:delete

N/A

Querying the restoration time range

rds:instance:list

N/A

Restoring data to a new DB instance

rds:instance:create

To select a VPC, subnet, and security group, configure the following actions:

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

cors:productInstance:createDefault

Restoring data to the original DB instance

rds:instance:restoreInPlace

N/A

Obtaining a database backup file list

rds:backup:list

N/A

Querying a database error log

rds:log:list

N/A

Querying a database slow log

rds:log:list

N/A

Submitting an order for a yearly/monthly DB instance

bss:order:update

To purchase a yearly/monthly DB instance, configure the following actions:

bss:order:pay

Managing a tag

rds:instance:modify

Tag-related operations depend on the tms:resourceTags:* permission.

Configuring autoscaling

rds:instance:extendSpace

To enable autoscaling, configure the following actions for the IAM users instead of your Huawei account:

  • Creating a custom policy
    • iam:agencies:listAgencies
    • iam:agencies:createAgency
    • iam:permissions:listRolesForAgencyOnProject
    • iam:permissions:grantRoleToGroupOnProject
    • iam:roles:listRoles
  • Adding system role Security Administrator:

    Select a user group to which the user belongs.

    Click Authorize in the Operation column.

    Add the Security Administrator role.