通过自定义策略授权RAM用户管理PolarDB

如果RAM提供的系统策略无法满足您的业务需求,您可以通过创建自定义策略对PolarDB进行精细化权限管理(例如资源或操作级别的授权)。

前提条件

使用RAM进行权限管理前,请确保您已完成账号注册

背景信息

  • 权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的资源集、操作集以及授权条件,详细的语言规范请参见权限策略语法和结构

  • 使用自定义策略对PolarDB进行精细化权限管理前,请先了解PolarDB的权限定义,详情请参见RAM资源授权

说明

如果需要自定义各种权限类型组合或授予某些表级别权限等场景,您可以通过数据管理DMS推出的数据库账号权限管理功能进行灵活管控,详情请参见MySQL数据库账号权限管理

操作步骤

  1. 创建自定义权限策略。具体操作请参见创建自定义权限策略

    常见的自定义权限策略:

    • 示例1:授权目标RAM用户管理2个指定的PolarDB集群。

      假设您的账号下拥有多个PolarDB集群,但作为RAM管理员,您希望仅授权其中的2个集群(集群ID分别为i-001和i-002)给目标RAM用户,那么您可以创建如下权限策略:

      {
        "Statement": [
          {
            "Action": "polardb:*",
            "Effect": "Allow",
            "Resource": [
                        "acs:polardb:*:*:*/i-001",
                        "acs:polardb:*:*:*/i-002"
                        ]
          },
          {
            "Action": "polardb:Describe*",
            "Effect": "Allow",
            "Resource": "*"
          }
        ],
        "Version": "1"
      }
      说明
      • 被授予该权限策略的RAM用户号可以查看所有的集群及资源,但只能管理已被授权的2个集群(即集群i-001和集群i-002)。同时作为RAM管理员,您仍然可以使用API、CLI或SDK直接管理上述两个集群。

      • Describe*在权限策略中是必须的,否则被授权的RAM用户无法在控制台看到任何集群。

    • 示例2:仅授权PolarDB的部分功能给目标RAM用户。

      假设您希望仅授权PolarDB的部分功能给目标RAM用户,则可以创建如下权限策略:

      {
          "Statement": [
              {
                  "Action": [
                    "polardb:Describe*",
                    "polardb:CreateBackup",
                    "polardb:DeleteBackup",
                    "polardb:ModifyDBClusterAccessWhitelist"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ],
          "Version": "1"
      }
      说明
      • 被授予该权限策略的目标RAM用户仅可以对账号下所有的PolarDB集群进行集群信息查询、备份查询、创建备份、删除备份、修改白名单操作,但不允许进行其他任何操作。

      • PolarDB支持通过RAM进行API级别的访问控制,您可以通过相关API对PolarDB进行细粒度的权限访问控制,详情请参见支持RAM的云服务API概览

    • 示例3:限制目标RAM用户的IP访问。

      假设您希望限制目标RAM用户的IP访问,则可以创建如下权限策略:

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "*",
                  "Effect": "Allow",
                  "Resource": "*",
                  "Condition": {
                      "IpAddress": {
                          "acs:SourceIp": [
                              "xxx.xxx.x.x"
                          ]
                      }
                  }
              }
          ]
      }
      说明
      • 被授予该权限策略的目标RAM用户仅可以从已被授权的IP地址对账号下所有PolarDB集群进行管理操作。

      • 请将acs:SourceIp中的IP地址值修改为您实际环境的真实IP地址。

  2. 为RAM用户授权自定义策略。具体操作请参见为RAM用户授权