Updated on 2023-07-03 GMT+08:00

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.

You can grant users permissions by using roles and policies.
  • 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.

Table 1 System-defined roles and 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.

  • Tenant Guest: A project-level role, which must be assigned in the same project.
  • Server Administrator: A project-level role, which must be assigned in the same project.
  • RDS Administrator: A project-level role, which must be assigned in the same project.

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.

Table 2 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.

Table 3 Common operations and supported actions

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