Permissions Management
If you need to assign different permissions to employees in your enterprise to access your DRS resources, IAM is a good choice for fine-grained permissions management. IAM provides identity authentication, permissions management, and access control, helping you secure access to Huawei Cloud resources.
With IAM, you can use your Huawei Cloud account to create IAM users for your employees, and assign permissions to the users to control their access to specific resources. For example, some software developers in your enterprise need to use DRS resources but must not delete DRS or perform any high-risk operations. To achieve this result, you can create IAM users for the software developers and grant them only the permissions required for using DRS resources.
If your Huawei Cloud account does not need individual IAM users for permissions management, you may skip over this topic.
IAM can be used free of charge. You pay only for the resources in your Huawei Cloud account. For more information about IAM, see IAM Service Overview.
DRS Permissions
By default, new IAM users do not have permissions assigned. You need to add a user to one or more groups, and attach permissions policies or roles to these groups. Users inherit permissions from the groups to which they are added and can perform specified operations on cloud services based on the permissions.
DRS is a project-level service deployed and accessed in specific physical regions. To assign DRS permissions to a user group, specify the scope as region-specific (for example, Europe-Dublin) projects and select projects for example, (eu-west-101) for the permissions to take effect. If All projects is selected, the permissions will take effect for the user group in all region-specific projects. When accessing DRS, users need to switch to a region where they have been authorized to use DRS.
- Roles: A type of coarse-grained authorization mechanism that defines permissions related to user responsibilities. This mechanism provides only a limited number of service-level roles for authorization. When using roles to grant permissions, you need to also assign other roles on which the permissions depend to take effect. However, roles are not an ideal choice for fine-grained authorization and secure access control.
- Policies: A type of fine-grained authorization mechanism that defines permissions required to perform operations on specific cloud resources under certain conditions. This mechanism allows for more flexible policy-based authorization, meeting requirements for secure access control. For example, you can grant ECS users only the permissions for managing a certain type of ECSs. Most fine-grained policies are API-based.
Table 1 lists all the system policies supported by DRS.
Policy Name/System Role |
Description |
Type |
Dependency |
---|---|---|---|
Security Administrator |
Security administrator To improve your experience with DRS, add the Security Administrator permission using IAM in case some functions become unavailable, such as scheduled task startup, automatic ending of full-migration tasks, and automatic retry of failed tasks. If the automatic function is unavailable, see Why Cannot Scheduled DRS Tasks Be Started? |
System-defined role |
None |
DRS Administrator |
DRS administrator Basic permission, which must be added when DRS is used. |
System role |
Dependent on the Tenant Guest, Server Administrator, and RDS Administrator roles.
|
DRS FullAccess |
Full permissions for DRS |
System policy |
Dependent on the VPC FullAccess, RDS ReadOnlyAccess, and SMN Administrator, and OBS Administrator policies. VPC FullAccess: This parameter needs to be configured when the VPC and subnet are selected. RDS ReadOnlyAccess: This parameter needs to be configured when RDS is selected. SMN Administrator: This parameter needs to be configured when SMN is selected. OBS Administrator: This parameter needs to be configured when bucket information is selected for a backup task. |
DRS ReadOnlyAccess |
Read-only permissions for DRS resources. |
System policy |
Configure the following policies as required: RDS ReadOnlyAccess: This parameter needs to be configured when RDS is selected. SMN Administrator: This parameter needs to be configured when SMN is selected. |
DRS FullWithOutDeletePermission |
All permissions on DRS except the deletion permission |
System Policy |
Dependent on the VPC FullAccess, RDS ReadOnlyAccess, and SMN Administrator, and OBS Administrator policies. VPC FullAccess: This parameter needs to be configured when the VPC and subnet are selected. RDS ReadOnlyAccess: This parameter needs to be configured when RDS is selected. SMN Administrator: This parameter needs to be configured when SMN is selected. OBS Administrator: This parameter needs to be configured when bucket information is selected for a backup task. |
Table 2 lists the common operations supported by the DRS system policy.
Procedure |
DRS FullAccess |
DRS ReadOnlyAccess |
DRS Administrator |
DRS FullWithOutDeletePermission |
---|---|---|---|---|
Creating a task |
√ |
x |
√ |
√ |
Editing a task |
√ |
x |
√ |
√ |
Deleting a task |
√ |
x |
√ |
x |
Starting a task |
√ |
x |
√ |
√ |
Retrying a task |
√ |
x |
√ |
√ |
Stopping a task |
√ |
x |
√ |
√ |
Table 3 lists common DRS operations and corresponding actions. You can refer to this table to customize permission policies.
Permission |
Actions |
Remarks |
---|---|---|
Querying the RPO and RTO |
drs:dataGuardJob:list |
None |
Performing a primary/standby switchover |
drs:disasterRecoveryJob:switchover |
None |
Performing operations on tasks. |
drs:migrationJob:action |
The VPC FullAccess permission for the project is required. The read permission for the corresponding instance is required. For example, if the RDS database is used, configure the RDS ReadOnlyAccess permission for the project. If the DDS database is used, configure the DDS ReadOnlyAccess permission for the project. The OBS Administrator permission for backup tasks is required. |
Stopping a task |
drs:migrationJob:terminate |
Permissions required for the project: VPC FullAccess RDS ReadOnlyAccess Permissions required for the backup task: OBS Administrator Permission required for subscribing to message notification: SMN Administrator |
Modifying a migration task |
drs:migrationJob:modify |
Permission required for selecting VPCs and subnets on the GUI: VPC FullAccess The read permission for the corresponding instance is required. For example, if the RDS database is used, configure the RDS ReadOnlyAccess permission for the project. If the DDS database is used, configure the DDS ReadOnlyAccess permission for the project. Permission required for subscribing to message notification: SMN Administrator |
Creating a migration task |
drs:migrationJob:create |
Permission required for selecting VPCs and subnets on the GUI: VPC FullAccess The read permission for the corresponding instance is required. For example, if the RDS database is used, configure the RDS ReadOnlyAccess permission for the project. If the DDS database is used, configure the DDS ReadOnlyAccess permission for the project. Permission required for subscribing to message notification: SMN Administrator For a yearly/monthly task, the following permissions must be configured: BSS Operator or BSS Administrator |
Deleting a migration task |
drs:migrationJob:delete |
None |
Updating the database user information. |
drs:migrationJob:modifyUserInfo |
The read permission for the corresponding instance is required. For example, if the RDS database is used, configure the RDS ReadOnlyAccess permission for the project. |
Controlling the migration speed |
drs:migrationJob:setMigrationTransSpeed |
None |
Modify database parameters |
drs:dataBaseParams:modify |
The read permission for the corresponding instance is required. For example, if the RDS database is used, you need to configure the RDS ReadOnlyAccess permission for the project. |
Updating the data processing information |
drs:dataTransformation:update |
The read permission for the corresponding instance is required. For example, if the RDS database is used, you need to configure the RDS ReadOnlyAccess permission for the project. |
Adding the data processing information |
drs:dataTransformation:add |
The read permission for the corresponding instance is required. For example, if the RDS database is used, you need to configure the RDS ReadOnlyAccess permission for the project. |
Deleting the data processing data |
drs:dataTransformation:delete |
None |
Updating the database object selection information |
drs:migrationJob:update |
The read permission for the corresponding instance is required. For example, if the RDS database is used, you need to configure the RDS ReadOnlyAccess permission for the project. |
Updating the ignore policy of a synchronization task |
drs:synchronizationJob:update |
None |
Updating the task configuration |
drs:migrationJob:updateJobConfig |
None |
Updating the DDL filtering policy. |
drs:migrationJob:updateDDLPolicy |
None |
Modifying the comparison policy |
drs:healthCompare:modify |
None |
Stopping a comparison task |
drs:healthCompare:stop |
None |
Creating an object-level table comparison task |
drs:migrationCompareJob:create |
None |
Canceling a data-level table comparison task |
drs:migrationCompareJob:delete |
None |
Immediately starting a data-level table comparison task |
drs:migrationCompareJob:start |
None |
Creating a data subscription task |
drs:subscriptionJob:create |
Permission required for selecting RDS on the GUI: RDS ReadOnlyAccess Permission required for subscribing to message notification: SMN Administrator Permission required for the project: VPC FullAccess |
Modifying a data subscription task |
drs:subscriptionJob:update |
Permission required for selecting RDS on the GUI: OBS Administrator RDS ReadOnlyAccess Permission required for subscribing to message notification: SMN Administrator Permission required for the project: VPC FullAccess |
Editing the data subscription information |
drs:subscriptionJob:edit |
Permission required for selecting buckets and RDS on the GUI: OBS Administrator RDS ReadOnlyAccess Permission required for subscribing to message notification: SMN Administrator Permissions required: VPC FullAccess |
Deleting a subscription task |
drs:subscriptionJob:delete |
None |
Performing operations on a subscription task |
drs:subscriptionJob:subscribe |
Permissions required for the project: VPC FullAccess RDS ReadOnlyAccess Permissions required for the backup task: OBS Administrator Permission required for subscribing to message notification: SMN Administrator |
Modifying consumption start time |
drs:subscriptionJob:UpdateConsumeTime |
None |
Creating a backup migration task 2.0 |
drs:backupMigrationJob:create |
Permission required for selecting buckets and RDS on the GUI: OBS Administrator RDS ReadOnlyAccess Permission required for subscribing to message notification: SMN Administrator |
Deleting a backup migration task |
drs:backupMigrationJob:delete |
None |
Modifying backup migration task details |
drs:backupMigrationJob:modify |
Permission required for selecting buckets and RDS on the GUI: OBS Administrator RDS ReadOnlyAccess Permission required for subscribing to message notification: SMN Administrator |
Freezing and unfreezing resources. |
drs:frozenOrUnfreezeJob:frozen |
None |
Cleaning up resources |
drs:cleanJob:clean |
The VPC FULLAccess permission is required. |
Verifying the backup task name. |
drs:backupMigrationJob:check |
None |
Verifying data processing |
drs:dataTransformation:check |
None |
Verifying online task names |
drs:migrationJob:check |
None |
Obtaining database parameters |
drs:databaseParameters:get |
None |
Querying backup migration tasks |
drs:backupMigrationJob:list |
None |
Querying backup migration task details |
drs:backupMigrationJob:get |
None |
Obtaining the data subscription task details |
drs:subscriptionJob:get |
The read permission for the corresponding instance is required. For example, if the RDS database is used, you need to configure the RDS ReadOnlyAccess permission for the project. |
Querying operation results |
drs:job:getResult |
None |
Obtaining the task pricing details |
drs:migrationJob:getMeteringPrice |
None |
Querying the data processing information |
drs:migrationTransformationJob:get |
None |
Obtaining the task pre-check results |
drs:precheckJob:get |
None |
Obtaining the object-level migration comparison overview |
drs:compareJob:getOverview |
None |
Querying data-level table comparison tasks |
drs:compareJob:list |
None |
Querying data-level table comparison results |
drs:compareJob:getResult |
None |
Obtaining object-level migration comparison details |
drs:compareJob:getDetails |
None |
Querying details about a data-level table comparison task |
drs:compareJob:getContentsInfo |
None |
Querying the estimated time of a comparison task |
drs:compareJob:getEstimateTime |
None |
Querying the value comparison overview. |
drs:compareJob:getContentOverview |
None |
Querying the row comparison overview |
drs:compareJob:getLineOverview |
None |
Querying row comparison details |
drs:compareJob:getLineDetail |
None |
Obtaining account comparison details |
drs:compareJob:getAccountDetails |
None |
Querying value comparison details |
drs:compareJob:getContentDetail |
None |
Querying value comparison differences |
drs:compareJob:getContentDiff |
None |
Obtaining the online migration task list |
drs:migrationJob:list |
None |
Obtaining the online migration task details |
drs:migrationJob:get |
The read permission for the corresponding instance is required. For example, if the RDS database is used, you need to configure the RDS ReadOnlyAccess permission for the project. |
Obtaining the object-level migration comparison overview |
drs:migrationJob:getCompareStruct |
None |
Obtaining the data-level stream comparison |
drs:migrationJob:getStreamComparison |
None |
Obtaining the source database user list |
drs:migrationJob:getSrcUsers |
The read permission for the corresponding instance is required. For example, if the RDS database is used, you need to configure the RDS ReadOnlyAccess permission for the project. |
Obtaining the migration progress of a specified migration task |
drs:migrationJob:getSpecifiedProgress |
None |
Obtaining the database affected time of a specified task. |
drs:migrationJob:getEffectTime |
None |
Querying the migration progress |
drs:migrationJobs:getProgress |
None |
Querying the health comparison report list |
drs:healthCompareJob:list |
None |
Obtaining the object-level migration comparison overview |
drs:healthCompareJob:getOverview |
None |
Obtaining object-level comparison details |
drs:healthCompareJob:getObjectDetail |
None |
Obtaining account comparison details |
drs:healthCompareJob:getAccountDetails |
None |
Querying row comparison details |
drs:healthCompareJob:getLineDetail |
None |
Querying the comparison policy |
drs:healthCompareJob:getComparePolicy |
None |
Obtaining the disaster recovery monitoring data |
drs:disasterRecoveryJob:get |
Permissions required: CES ReadOnlyAccess |
Obtaining the RPO and RTO of a specified task |
drs:dataGuardJob:list |
None |
Obtaining the replay failure list |
drs:replayFaultsJob:list |
None |
Processing data |
drs:migrationJob:action |
The read permission for the corresponding instance is required. For example, if the RDS database is used, you need to configure the RDS ReadOnlyAccess permission for the project. |
Starting a task |
drs:migrationJob:action |
The VPC FULLAccess permission is required. |
Querying task details |
drs:migrationJob:get |
The read permission for the corresponding instance is required. For example, if the RDS database is used, you need to configure the RDS ReadOnlyAccess permission for the project. |
Querying task statuses |
drs:migrationJob:get |
None |
Querying resource tags |
drs:tag:get |
None |
Deleting resource tags |
drs:tags:delete |
None |
Adding a resource tag |
drs:tag:add |
None |
Modifying resource tags |
drs:tag:modify |
None |
Obtaining migration logs |
drs:migrationJob:getLog |
None |
Querying the involved Kafka topic information |
drs:kafkaJob:get |
None |
Obtaining the supported feature list |
drs:supportFeature:get |
None |
Querying the feature whitelist |
drs:featureWhiteJob:list |
None |
Querying the quotas that need adjustment |
drs:quota:adjust |
None |
Updating the quotas |
drs:quota:update |
None |
Querying resource quotas |
drs:quota:get |
None |
Updating the user guide |
drs:userGuide:update |
None |
Obtaining user guide details |
drs:userGuide:list |
None |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.