如果RAM提供的系统策略无法满足您的业务需求,您可以通过创建自定义策略对PolarDB进行精细化权限管理(例如资源或操作级别的授权)。
前提条件
使用RAM进行权限管理前,请确保您已完成账号注册。
背景信息
权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的资源集、操作集以及授权条件,详细的语言规范请参见权限策略语法和结构。
使用自定义策略对PolarDB进行精细化权限管理前,请先了解PolarDB的权限定义,详情请参见RAM资源授权。
如果需要自定义各种权限类型组合或授予某些表级别权限等场景,您可以通过数据管理DMS推出的数据库账号权限管理功能进行灵活管控,详情请参见MySQL数据库账号权限管理。
操作步骤
创建自定义权限策略。具体操作请参见创建自定义权限策略。
常见的自定义权限策略:
示例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" }
示例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地址。
为RAM用户授权自定义策略。具体操作请参见为RAM用户授权。