Use resource groups for fine-grained access control

更新时间:
复制 MD 格式

You can use Resource Group to manage PolarDB resources as a collection and apply Resource Access Management (RAM) policies that authorize actions only on resources within a specific group. This lets you enforce the principle of least privilege (PoLP) in your Alibaba Cloud account.

Note

You can scope permissions to a resource group only for supported resource types and actions. For unsupported actions, any resource group scope in a policy is ignored, and permissions must be granted at the account level instead.

How it works

Resource groups organize your resources by project or environment. Once resources are grouped, you can attach a RAM policy to an identity (such as a RAM user, user group, or role) that scopes its permissions exclusively to that group. For more information, see Resource grouping and authorization.

This approach provides two key benefits:

  • Fine-grained access control: Instead of granting account-wide permissions, you can limit an identity's access to only the resources within a specific group. This helps isolate project-specific workloads and reduce the risk of unintended access.

  • Simplified management: When new resources are added to a resource group, RAM identities with permissions scoped to that group automatically gain access. You do not need to update RAM policies each time a new resource is created.

Grant resource group-level permissions to a RAM user

This section demonstrates how to grant a RAM user permission to access only the resources of PolarDB within a specific resource group.

1. Prerequisites

2. Grant permissions

You can grant resource group-level permissions from either the Resource Management console or the RAM console.

Resource Management console

  • Log on to the Resource Management console.

  • On the Resource Group page, find the target resource group and click Manage Permission in the Actions column.

  • On the Permissions tab, click Grant Permission.

  • In the Grant Permission panel, configure the principal and access policy.

  • Click Grant permissions.

For more information, see Grant permissions on resource groups to a RAM identity.

RAM console

  • Log on to the RAM console using an Alibaba Cloud account or a RAM administrator account.

  • In the navigation pane on the left, choose Identities > Users. On the Users page, find the target RAM user and click Add Permissions in the Actions column.

  • In the Grant Permission panel, add permissions for the RAM user.

    • Resource Scope: Select Resource Group.

    • Principal: Select an existing RAM user or the RAM user created in the previous step.

    • Policy: Select a System Policy or a Custom Policy. For more information, see Create a custom permission policy.

  • Click OK.

For more information, see Grant permissions to a RAM user.

Supported resources

The following resources from PolarDB support resource group-level authorization:

Alibaba Cloud service

Service code

Resource type

PolarDB

polardb

dbcluster : cluster

Note

To request support for resource types not listed here, submit feedback via Resource Management console.

image

Unsupported actions

The following actions of PolarDB do not support resource group-level authorization:

Action

Description

polardb:AddPolarFsQuota

-

polardb:AllocateMPPConnection

-

polardb:AttachApplicationPolarFS

-

polardb:CancelActiveOperationTasks

Cancels O\\\&M events at a time.

polardb:CancelPolarFsFileQuota

-

polardb:CheckServiceLinkedRole

Checks whether a service-linked role (SLR) is created.

polardb:ClonePolarFsBasicSnapshot

-

polardb:CreateAIDBCluster

-

polardb:CreateAIDBClusterTask

-

polardb:CreateActivationCode

Generates a lightweight license activation code.

polardb:CreateApplicationEndpointAddress

-

polardb:CreateAuthenticate

-

polardb:CreateDBClusterModelEnhancementKey

-

polardb:CreateDatabaseZonal

-

polardb:CreateFallBack

-

polardb:CreateGDNAddress

-

polardb:CreateGlobalDataNetwork

Creates a global data network (GDN).

polardb:CreateOrGetVirtualLicenseOrder

Creates or obtains a virtual license order.

polardb:CreatePolarFs

-

polardb:CreateProtectedDB

-

polardb:CreateServiceLinkedRole

Creates a service-linked role (SLR).

polardb:CreateStoragePlan

Purchases a storage plan.

polardb:DeleteAINodes

-

polardb:DeleteApplication

-

polardb:DeleteApplicationEndpointAddress

-

polardb:DeleteAuthenticate

-

polardb:DeleteDBClusterModelEnhancementKey

-

polardb:DeleteDBClusterProxy

-

polardb:DeleteDatabaseZonal

-

polardb:DeleteGDNAddress

-

polardb:DeleteGlobalDataNetwork

Deletes a global data network (GDN).

polardb:DeletePolarFs

-

polardb:DeletePolarFsQuota

-

polardb:DescribeAIDBClusterDatasets

-

polardb:DescribeActivationCodeDetails

Queries the details of an activation code.

polardb:DescribeActivationCodes

Queries a list of activation codes.

polardb:DescribeActiveOperationTask

-

polardb:DescribeActiveOperationTaskRegion

-

polardb:DescribeActiveOperationTaskType

-

polardb:DescribeActiveOperationTasks

Queries the O\\\&M event details of an instance.

polardb:DescribeAnswer

-

polardb:DescribeApplicationAttribute

-

polardb:DescribeApplicationAvailableVersion

-

polardb:DescribeApplicationComponentPerformance

-

polardb:DescribeApplicationParameters

-

polardb:DescribeApplicationPerformance

-

polardb:DescribeApplicationServerlessConf

-

polardb:DescribeApplications

-

polardb:DescribeAvailableCrossRegions

-

polardb:DescribeAvailableModels

-

polardb:DescribeBackupRegions

-

polardb:DescribeCrossCloudLevels

-

polardb:DescribeCrossCloudRegion

-

polardb:DescribeCrossCloudRegionMappingToAliyun

-

polardb:DescribeDBClusterAvailableResources

-

polardb:DescribeDBClusterBasicInfo

-

polardb:DescribeDBClusterExpireInfo

-

polardb:DescribeDBClusterNodeInfo

-

polardb:DescribeDBClusterUsage

-

polardb:DescribeDBDefaultValueByGcLevel

-

polardb:DescribeDBInstances

-

polardb:DescribeDBMiniEngineVersions

-

polardb:DescribeDBNodePerformanceDup

-

polardb:DescribeEdgeCloudRegion

-

polardb:DescribeEventMetaInfo

-

polardb:DescribeFileSystems

-

polardb:DescribeGlobalDataNetworkList

Queries the PolarFS global data network (GDN) details in all regions.

polardb:DescribeHistoryEventsStat

-

polardb:DescribeHotSpotQuestion

-

polardb:DescribeKVCacheInstanceAttribute

-

polardb:DescribeKVCacheInstances

-

polardb:DescribeLicenseOrderDetails

Queries the information of a license order.

polardb:DescribeLicenseOrders

Queries a list of license orders.

polardb:DescribePolarFs

-

polardb:DescribePolarFsAttribute

-

polardb:DescribePolarFsPerformance

-

polardb:DescribePolarFsQuota

-

polardb:DescribeQuestions

-

polardb:DescribeRdsVSwitchs

-

polardb:DescribeRegions

-

polardb:DescribeResourcePackages

-

polardb:DescribeSqlLogClusters

-

polardb:DescribeTaskInfo

-

polardb:DescribeUpgradeReport

-

polardb:DescribeVSwitchList

-

polardb:EnableAIDBClusterDatasetService

-

polardb:ExecuteCrossCloudOpenAPI

-

polardb:FailoverDBClusterZonal

-

polardb:GenerateUpgradeReportForSyncClone

-

polardb:LightQueryPricing

-

polardb:ListTagResourcesForRegion

-

polardb:LockDBClusterDeletion

-

polardb:ModifyAIDBClusterDataset

-

polardb:ModifyActiveOperationMaintainConf

-

polardb:ModifyActiveOperationTask

-

polardb:ModifyActiveOperationTasks

Modifies the switching time of scheduled O\\\&M events for an instance.

polardb:ModifyApplicationDescription

-

polardb:ModifyApplicationParameter

-

polardb:ModifyApplicationServerlessConf

-

polardb:ModifyApplicationWhitelist

-

polardb:ModifyDBClusterConnectionString

-

polardb:ModifyDBClusterDescriptionZonal

-

polardb:ModifyDBClusterProxyClass

-

polardb:ModifyDBDescriptionZonal

-

polardb:ModifyGDNAddress

-

polardb:ModifyPendingMaintenanceAction

Modifies the switching time of a pending event.

polardb:ModifyPolarFs

-

polardb:ModifyPolarFsInstanceDescription

-

polardb:ModifyProtectedDBPassword

-

polardb:ModifyResourcePackage

-

polardb:ModifyTaskInfo

-

polardb:MountPolarFsOnAIDBCluster

-

polardb:ReactivateDBClusterBackup

Reactivates the backup feature.

polardb:RefreshDBClusterStorageUsage

Updates the storage usage of a cluster.

polardb:ReleaseMPPConnection

-

polardb:RemoveDBColdStorageTable

-

polardb:ResetGlobalDatabaseNetwork

Rebuilds a secondary cluster in a Global Database Network (GDN).

polardb:RestartDBNodeZonal

-

polardb:SetPolarFsFileQuota

-

polardb:UnlockDBClusterDeletion

-

polardb:UnmountPolarFsOnAIDBCluster

-

polardb:UpdateAuthenticate

-

polardb:UpgradeDBClusterVersionZonal

-

For these actions, you must create a custom policy with the scope set to Account.

image.pngCustomize the following policy examples to suit your needs:

  • Allow read-only access

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "polardb:DescribeAIDBClusterDatasets",
            "polardb:DescribeActivationCodeDetails",
            "polardb:DescribeActivationCodes",
            "polardb:DescribeActiveOperationTask",
            "polardb:DescribeActiveOperationTaskRegion",
            "polardb:DescribeActiveOperationTaskType",
            "polardb:DescribeActiveOperationTasks",
            "polardb:DescribeAnswer",
            "polardb:DescribeApplicationAttribute",
            "polardb:DescribeApplicationAvailableVersion",
            "polardb:DescribeApplicationComponentPerformance",
            "polardb:DescribeApplicationParameters",
            "polardb:DescribeApplicationPerformance",
            "polardb:DescribeApplicationServerlessConf",
            "polardb:DescribeApplications",
            "polardb:DescribeAvailableCrossRegions",
            "polardb:DescribeAvailableModels",
            "polardb:DescribeBackupRegions",
            "polardb:DescribeCrossCloudLevels",
            "polardb:DescribeCrossCloudRegion",
            "polardb:DescribeCrossCloudRegionMappingToAliyun",
            "polardb:DescribeDBClusterAvailableResources",
            "polardb:DescribeDBClusterBasicInfo",
            "polardb:DescribeDBClusterExpireInfo",
            "polardb:DescribeDBClusterNodeInfo",
            "polardb:DescribeDBClusterUsage",
            "polardb:DescribeDBDefaultValueByGcLevel",
            "polardb:DescribeDBInstances",
            "polardb:DescribeDBMiniEngineVersions",
            "polardb:DescribeDBNodePerformanceDup",
            "polardb:DescribeEdgeCloudRegion",
            "polardb:DescribeEventMetaInfo",
            "polardb:DescribeFileSystems",
            "polardb:DescribeGlobalDataNetworkList",
            "polardb:DescribeHistoryEventsStat",
            "polardb:DescribeHotSpotQuestion",
            "polardb:DescribeKVCacheInstanceAttribute",
            "polardb:DescribeKVCacheInstances",
            "polardb:DescribeLicenseOrderDetails",
            "polardb:DescribeLicenseOrders",
            "polardb:DescribePolarFs",
            "polardb:DescribePolarFsAttribute",
            "polardb:DescribePolarFsPerformance",
            "polardb:DescribePolarFsQuota",
            "polardb:DescribeQuestions",
            "polardb:DescribeRdsVSwitchs",
            "polardb:DescribeRegions",
            "polardb:DescribeResourcePackages",
            "polardb:DescribeSqlLogClusters",
            "polardb:DescribeTaskInfo",
            "polardb:DescribeUpgradeReport",
            "polardb:DescribeVSwitchList"
          ],
          "Resource": "*"
        }
      ]
    }
    
  • Allow full access

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "polardb:AddPolarFsQuota",
            "polardb:AllocateMPPConnection",
            "polardb:AttachApplicationPolarFS",
            "polardb:CancelActiveOperationTasks",
            "polardb:CancelPolarFsFileQuota",
            "polardb:CheckServiceLinkedRole",
            "polardb:ClonePolarFsBasicSnapshot",
            "polardb:CreateAIDBCluster",
            "polardb:CreateAIDBClusterTask",
            "polardb:CreateActivationCode",
            "polardb:CreateApplicationEndpointAddress",
            "polardb:CreateAuthenticate",
            "polardb:CreateDBClusterModelEnhancementKey",
            "polardb:CreateDatabaseZonal",
            "polardb:CreateFallBack",
            "polardb:CreateGDNAddress",
            "polardb:CreateGlobalDataNetwork",
            "polardb:CreateOrGetVirtualLicenseOrder",
            "polardb:CreatePolarFs",
            "polardb:CreateProtectedDB",
            "polardb:CreateServiceLinkedRole",
            "polardb:CreateStoragePlan",
            "polardb:DeleteAINodes",
            "polardb:DeleteApplication",
            "polardb:DeleteApplicationEndpointAddress",
            "polardb:DeleteAuthenticate",
            "polardb:DeleteDBClusterModelEnhancementKey",
            "polardb:DeleteDBClusterProxy",
            "polardb:DeleteDatabaseZonal",
            "polardb:DeleteGDNAddress",
            "polardb:DeleteGlobalDataNetwork",
            "polardb:DeletePolarFs",
            "polardb:DeletePolarFsQuota",
            "polardb:DescribeAIDBClusterDatasets",
            "polardb:DescribeActivationCodeDetails",
            "polardb:DescribeActivationCodes",
            "polardb:DescribeActiveOperationTask",
            "polardb:DescribeActiveOperationTaskRegion",
            "polardb:DescribeActiveOperationTaskType",
            "polardb:DescribeActiveOperationTasks",
            "polardb:DescribeAnswer",
            "polardb:DescribeApplicationAttribute",
            "polardb:DescribeApplicationAvailableVersion",
            "polardb:DescribeApplicationComponentPerformance",
            "polardb:DescribeApplicationParameters",
            "polardb:DescribeApplicationPerformance",
            "polardb:DescribeApplicationServerlessConf",
            "polardb:DescribeApplications",
            "polardb:DescribeAvailableCrossRegions",
            "polardb:DescribeAvailableModels",
            "polardb:DescribeBackupRegions",
            "polardb:DescribeCrossCloudLevels",
            "polardb:DescribeCrossCloudRegion",
            "polardb:DescribeCrossCloudRegionMappingToAliyun",
            "polardb:DescribeDBClusterAvailableResources",
            "polardb:DescribeDBClusterBasicInfo",
            "polardb:DescribeDBClusterExpireInfo",
            "polardb:DescribeDBClusterNodeInfo",
            "polardb:DescribeDBClusterUsage",
            "polardb:DescribeDBDefaultValueByGcLevel",
            "polardb:DescribeDBInstances",
            "polardb:DescribeDBMiniEngineVersions",
            "polardb:DescribeDBNodePerformanceDup",
            "polardb:DescribeEdgeCloudRegion",
            "polardb:DescribeEventMetaInfo",
            "polardb:DescribeFileSystems",
            "polardb:DescribeGlobalDataNetworkList",
            "polardb:DescribeHistoryEventsStat",
            "polardb:DescribeHotSpotQuestion",
            "polardb:DescribeKVCacheInstanceAttribute",
            "polardb:DescribeKVCacheInstances",
            "polardb:DescribeLicenseOrderDetails",
            "polardb:DescribeLicenseOrders",
            "polardb:DescribePolarFs",
            "polardb:DescribePolarFsAttribute",
            "polardb:DescribePolarFsPerformance",
            "polardb:DescribePolarFsQuota",
            "polardb:DescribeQuestions",
            "polardb:DescribeRdsVSwitchs",
            "polardb:DescribeRegions",
            "polardb:DescribeResourcePackages",
            "polardb:DescribeSqlLogClusters",
            "polardb:DescribeTaskInfo",
            "polardb:DescribeUpgradeReport",
            "polardb:DescribeVSwitchList",
            "polardb:EnableAIDBClusterDatasetService",
            "polardb:ExecuteCrossCloudOpenAPI",
            "polardb:FailoverDBClusterZonal",
            "polardb:GenerateUpgradeReportForSyncClone",
            "polardb:LightQueryPricing",
            "polardb:ListTagResourcesForRegion",
            "polardb:LockDBClusterDeletion",
            "polardb:ModifyAIDBClusterDataset",
            "polardb:ModifyActiveOperationMaintainConf",
            "polardb:ModifyActiveOperationTask",
            "polardb:ModifyActiveOperationTasks",
            "polardb:ModifyApplicationDescription",
            "polardb:ModifyApplicationParameter",
            "polardb:ModifyApplicationServerlessConf",
            "polardb:ModifyApplicationWhitelist",
            "polardb:ModifyDBClusterConnectionString",
            "polardb:ModifyDBClusterDescriptionZonal",
            "polardb:ModifyDBClusterProxyClass",
            "polardb:ModifyDBDescriptionZonal",
            "polardb:ModifyGDNAddress",
            "polardb:ModifyPendingMaintenanceAction",
            "polardb:ModifyPolarFs",
            "polardb:ModifyPolarFsInstanceDescription",
            "polardb:ModifyProtectedDBPassword",
            "polardb:ModifyResourcePackage",
            "polardb:ModifyTaskInfo",
            "polardb:MountPolarFsOnAIDBCluster",
            "polardb:ReactivateDBClusterBackup",
            "polardb:RefreshDBClusterStorageUsage",
            "polardb:ReleaseMPPConnection",
            "polardb:RemoveDBColdStorageTable",
            "polardb:ResetGlobalDatabaseNetwork",
            "polardb:RestartDBNodeZonal",
            "polardb:SetPolarFsFileQuota",
            "polardb:UnlockDBClusterDeletion",
            "polardb:UnmountPolarFsOnAIDBCluster",
            "polardb:UpdateAuthenticate",
            "polardb:UpgradeDBClusterVersionZonal"
          ],
          "Resource": "*"
        }
      ]
    }
    
Important

Granting account-level permissions allows access to all relevant resources in the account. Always follow PoLP.

FAQ

How do I find which resource group a resource belongs to?

  • Method 1: From the service console

    • Navigate to the service console where the resource was created. On the resource's details page, you can typically find the resource group listed in the basic information section.

  • Method 2: From the Resource Management console

    • Log on to the Resource Management console.

    • Choose Resource Center > Resource Search.

    • In the left pane, select the account that owns the target resource (the default is Current Account).

    • Use filter conditions to find your resource.

    • The Resource Group column shows which group the resource belongs to.

How do I view all resources in a specific resource group?

  • Method 1:

    • Log on to the Resource Management console.

    • Choose Resource Center > Resource Search.

    • In the left pane, under the account that owns the resources (the default is Current Account), click the name of the desired resource group.

    • In the right pane, select the cloud service from the Select resource types drop-down list.

    • All resources in that group will be displayed.

  • Method 2:

    • Log on to the Resource Management console.

    • Choose Resource Group > Resource Group.

    • Find the desired resource group and click Manage Resource in the Actions column.

    • On the resource management page, select the cloud service from the Service drop-down list.

    • All resources in that group will be displayed.

How do I move multiple resources to a different resource group in batch?

  1. Log on to the Resource Management console.

  2. Choose Resource Group > Resource Group.

  3. Find the desired resource group and click Manage Resource in the Actions column.

  4. On the resource management page, use filter conditions to find the resources you want to move.

  5. Select the checkbox for each resource.

  6. At the bottom of the page, click Transfer.

  7. In the dialog box, select the destination resource group and click Confirm.