如果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用戶授權。