Help Center/ MapReduce Service/ Service Overview/ Permissions Management
Updated on 2024-04-11 GMT+08:00

Permissions Management

If you need to assign different permissions to employees in your enterprise to access your MRS resources on Huawei Cloud, IAM is a good choice for fine-grained permissions management. IAM provides identity authentication, permissions management, and access control, helping you secure access to your Huawei Cloud resources.

With IAM, you can create IAM users under your Huawei Cloud account, and assign permissions to these users to control their access to specific resources. For example, some software developers in your enterprise need to use MRS resources but must not delete MRS clusters or perform any high-risk operations. To achieve this goal, you can create IAM users for the software developers and grant them only the permissions required for using MRS cluster resources.

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

IAM is free of charge. You pay only for the resources you use. For more information about IAM, see IAM Service Overview.

MRS Permission Description

By default, new IAM users do not have any permissions. To assign permissions to a user, add the user to one or more groups and assign permissions policies or roles to these groups. The user then inherits permissions from the groups it is a member of and can perform specified operations on cloud services based on the permissions.

MRS is a project-level service deployed and accessed in specific physical regions. To assign permissions to a user group, specify Scope as Region-specific projects and select projects in the corresponding region 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 MRS, the users need to switch to a region where they have been authorized to use the MRS service.

You can grant 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 MRS users only the permissions for performing specified operations on MRS clusters, such as creating a cluster and querying a cluster list rather than deleting a cluster. Most policies define permissions based on APIs. For the API actions supported by MRS, see Permissions Policies and Supported Actions.
Table 1 lists all the default system policies supported by MRS.
Table 1 MRS system policies

Policy

Description

Type

MRS FullAccess

Administrator permissions for MRS. Users granted these permissions can operate and use all MRS resources.

Fine-grained policy

MRS CommonOperations

Common user permissions for MRS. Users granted these permissions can use MRS but cannot add or delete resources.

Fine-grained policy

MRS ReadOnlyAccess

Read-only permission for MRS. Users granted these permissions can only view MRS resources.

Fine-grained policy

MRS Administrator

Permissions:

  • All operations on MRS
  • Users with permissions of this policy must also be granted permissions of the Tenant Guest and Server Administrator policies.

RBAC policy

Table 2 lists the common operations supported by each system-defined policy or role of MRS. Select the policies or roles as required.

Table 2 Common operations supported by each system-defined policy

Operation

MRS FullAccess

MRS CommonOperations

MRS ReadOnlyAccess

MRS Administrator

Creating a cluster

x

x

Resizing a cluster

x

x

Upgrading node specifications

x

x

Deleting a cluster

x

x

Querying cluster details

Querying a cluster list

Configuring an auto scaling rule

x

x

Querying a host list

Querying operation logs

Creating and executing a job

x

Stopping a job

x

Deleting a single job

x

Deleting jobs in batches

x

Querying job details

Querying a job list

Creating a folder

x

Deleting a file

x

Querying a file list

Operating cluster tags in batches

x

Creating a single cluster tag

x

Deleting a single cluster tag

x

Querying a resource list by tag

Querying cluster tags

Accessing Manager

x

Querying a patch list

Installing a patch

x

Uninstalling a patch

x

Authorizing O&M channels

x

Sharing O&M channel logs

x

Querying an alarm list

Subscribing to alarm notification

x

Submitting an SQL statement

x

Querying SQL results

x

Canceling an SQL execution task

x

MRS FullAccess Policy

{
    "Version": "1.1",
    "Statement": [
        {
            "Action": [
                "mrs:*:*",
                "ecs:*:*",
                "bms:*:*",
                "evs:*:*",
                "vpc:*:*",
                "kms:*:*",
                "rds:*:*",
                "bss:*:*"
            ],
            "Effect": "Allow"
        }
    ]
}

MRS CommonOperations Policy

{
    "Version": "1.1",
    "Statement": [
        {
            "Action": [
                "mrs:*:get*",
                "mrs:*:list*",
                "ecs:*:get*",
                "ecs:*:list*",
                "bms:*:get*",
                "bms:*:list*",
                "evs:*:get*",
                "evs:*:list*",
                "vpc:*:get*",
                "vpc:*:list*",
                "mrs:job:submit",
                "mrs:job:stop",
                "mrs:job:delete",
                "mrs:job:checkSql",
                "mrs:job:batchDelete",
                "mrs:file:create",
                "mrs:file:delete",
                "mrs:tag:batchOperate",
                "mrs:tag:create",
                "mrs:tag:delete",
                "mrs:manager:access",
                "mrs:patch:install",
                "mrs:patch:uninstall",
                "mrs:ops:grant",
                "mrs:ops:shareLog",
                "mrs:alarm:subscribe",
                "mrs:alarm:delete",
                "kms:*:get*",
                "kms:*:list*",
                "rds:*:get*",
                "rds:*:list*",
                "mrs:bootstrap:*",
                "bss:*:view*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "mrs:cluster:create",
                "mrs:cluster:resize",
                "mrs:cluster:scaleUp",
                "mrs:cluster:delete",
                "mrs:cluster:policy"
            ],
            "Effect": "Deny"
        }
    ]
}

MRS ReadOnlyAccess Policy

{
    "Version": "1.1",
    "Statement": [
        {
            "Action": [
                "mrs:*:get*",
                "mrs:*:list*",
                "mrs:tag:count",
                "ecs:*:get*",
                "ecs:*:list*",
                "bms:*:get*",
                "bms:*:list*",
                "evs:*:get*",
                "evs:*:list*",
                "vpc:*:get*",
                "vpc:*:list*",
                "kms:*:get*",
                "kms:*:list*",
                "rds:*:get*",
                "rds:*:list*",
                "bss:*:view*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "mrs:cluster:create",
                "mrs:cluster:resize",
                "mrs:cluster:scaleUp",
                "mrs:cluster:delete",
                "mrs:cluster:policy",
                "mrs:job:submit",
                "mrs:job:stop",
                "mrs:job:delete",
                "mrs:job:batchDelete",
                "mrs:file:create",
                "mrs:file:delete",
                "mrs:tag:batchOperate",
                "mrs:tag:create",
                "mrs:tag:delete",
                "mrs:manager:access",
                "mrs:patch:install",
                "mrs:patch:uninstall",
                "mrs:ops:grant",
                "mrs:ops:shareLog",
                "mrs:alarm:subscribe"
            ],
            "Effect": "Deny"
        }
    ]
}

MRS Administrator Policy

{
    "Depends": [
        {
            "catalog": "BASE",
            "display_name": "Server Administrator"
        },
        {
            "catalog": "BASE",
            "display_name": "Tenant Guest"
        }
    ],
    "Version": "1.0",
    "Statement": [
        {
            "Action": [
                "MRS:MRS:*"
            ],
            "Effect": "Allow"
        }
    ]
}