Updated on 2024-04-07 GMT+08:00

Permissions Management

You can use Identity and Access Management (IAM) to manage DMS for Kafka permissions and control access to your resources. IAM provides identity authentication, permissions management, and access control.

You can create IAM users for your employees, and assign permissions to these users on a principle of least privilege (PoLP) basis to control their access to specific resource types. For example, you can create IAM users for software developers and assign specific permissions to allow them to use Kafka instance resources but prevent them from being able to delete resources or perform any high-risk operations.

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

IAM is a free service. You only pay for the resources in your account.

For more information, see IAM Service Overview.

Permissions policies of DMS for Kafka are based on DMS. Therefore, when assigning permissions, select DMS permissions policies.

DMS for Kafka Permissions

By default, new IAM users do not have any permissions assigned. To assign permissions to these new users, add them to one or more groups, and attach permissions policies or roles to these groups.

DMS for Kafka is a project-level service deployed and accessed in specific physical regions. When assigning DMS for Kafka permissions to a user group, specify region-specific projects where the permissions will take effect. If you select All projects, the permissions will be granted for all region-specific projects. When accessing DMS for Kafka, the users need to switch to a region where they have been authorized to use this service.

You can grant permissions by using roles and policies.
  • Roles: A type of coarse-grained authorization mechanism that provides only a limited number of service-level roles. When using roles to grant permissions, you also need to assign dependency roles. However, roles are not an ideal choice for fine-grained authorization and secure access control.
  • Policies: A fine-grained authorization strategy that defines permissions required to perform operations on specific cloud resources under certain conditions. This mechanism allows for more flexible policy-based authorization for more secure access control. For example, you can grant DMS for Kafka users only the permissions for managing instances. Most policies define permissions based on APIs. For the API actions supported by DMS for Kafka, see Permissions Policies and Supported Actions.

Table 1 lists all the system-defined roles and policies supported by DMS for Kafka.

Table 1 System-defined roles and policies supported by DMS for Kafka

Role/Policy Name

Description

Type

Dependency

DMS FullAccess

Administrator permissions for DMS. Users granted these permissions can perform all operations on DMS.

System-defined policy

None

DMS UserAccess

Common user permissions for DMS, excluding permissions for creating, modifying, deleting, and scaling up instances.

System-defined policy

None

DMS ReadOnlyAccess

Read-only permissions for DMS. Users granted these permissions can only view DMS data.

System-defined policy

None

DMS VPCAccess

VPC operation permissions to assign to DMS agencies.

System-defined policy

None

DMS KMSAccess

KMS operation permissions to assign to DMS agencies.

System-defined policy

None

DMS Administrator

Administrator permissions for DMS.

System-defined role

This role depends on the Tenant Guest and VPC Administrator roles.

System-defined policies contain OBS actions. Due to data caching, the policies take effect five minutes after they are attached to a user, user group, or enterprise project.

Table 2 lists the common operations supported by each DMS for Kafka system policy. Select the policies as required.

Table 2 Common operations supported by each system-defined policy of DMS for Kafka

Operation

DMS FullAccess

DMS UserAccess

DMS ReadOnlyAccess

DMS VPCAccess

DMS KMSAccess

Creating instances

×

×

×

×

Modifying instances

×

×

×

×

Deleting instances

×

×

×

×

Modifying instance specifications

×

×

×

×

Restarting instances

×

×

×

Querying instance information

×

×

Fine-grained Authorization

To use a custom fine-grained policy, log in to the IAM console as an administrator and select the desired fine-grained permissions for DMS. Table 3 describes fine-grained permission dependencies of DMS for Kafka.

Table 3 Fine-grained permission dependencies of DMS for Kafka

Permission

Description

Dependency

dms:instance:get

Viewing instance details

None

dms:instance:getConnectorSinkTask

Viewing dumping task details

None

dms:instance:getBackgroundTask

Viewing background task details

None

dms:instance:modifyAuthInfo

Changing an instance password

None

dms:instance:resetAuthInfo

Resetting an instance password

None

dms:instance:scale

Scaling up an instance

  • vpc:vpcs:get
  • vpc:ports:create
  • vpc:securityGroups:get
  • vpc:ports:get
  • vpc:subnets:get
  • vpc:vpcs:list
  • vpc:publicIps:get
  • vpc:publicIps:list
  • vpc:ports:update
  • vpc:publicIps:update

dms:instance:connector

Enabling dumping

  • vpc:vpcs:get
  • vpc:ports:create
  • vpc:securityGroups:get
  • vpc:ports:get
  • vpc:subnets:get
  • vpc:vpcs:list
  • vpc:publicIps:get
  • vpc:publicIps:list
  • vpc:ports:update
  • vpc:publicIps:update

dms:instance:deleteConnectorSinkTask

Deleting a dumping task

None

dms:instance:modify

Modifying an instance

  • vpc:vpcs:get
  • vpc:ports:create
  • vpc:securityGroups:get
  • vpc:ports:get
  • vpc:subnets:get
  • vpc:vpcs:list
  • vpc:publicIps:get
  • vpc:publicIps:list
  • vpc:ports:update
  • vpc:publicIps:update

dms:instance:deleteBackgroundTask

Deleting a background task

None

dms:instance:modifyStatus

Restarting an instance

None

dms:instance:createConnectorSinkTask

Creating a dumping task

None

dms:instance:delete

Deleting an instance

None

dms:instance:create

Creating an instance

  • vpc:vpcs:get
  • vpc:ports:create
  • vpc:securityGroups:get
  • vpc:ports:get
  • vpc:subnets:get
  • vpc:vpcs:list
  • vpc:publicIps:get
  • vpc:publicIps:list
  • vpc:ports:update
  • vpc:publicIps:update

dms:instance:listConnectorSinkTask

Viewing the dumping task list

None

dms:instance:list

Viewing the instance list

None