如果RAM提供的系統策略無法滿足您的業務需求,您可以通過建立自訂策略對PolarDB進行精微調權限管理(例如資源或操作層級的授權)。
前提條件
使用RAM進行許可權管理前,請確保您已完成帳號註冊。
背景資訊
權限原則是用文法結構描述的一組許可權的集合,可以精確地描述被授權的資源集、操作集以及授權條件,詳細的語言規範請參見權限原則文法和結構。
使用自訂策略對PolarDB進行精微調權限管理前,請先瞭解PolarDB的許可權定義,詳情請參見RAM資源授權。
如果需要自訂各種權限類別型組合或授予某些表層級許可權等情境,您可以通過Data Management推出的資料庫帳號許可權管理功能進行靈活管控,詳情請參見管理資料庫帳號及帳號許可權。
操作步驟
建立自訂權限原則。具體操作請參見建立自訂權限原則。
常見的自訂權限原則:
訪問叢集限制
假設您的帳號下擁有多個PolarDB叢集,但作為Resource Access Management員,您希望僅授權其中的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)。同時作為Resource Access Management員,您仍然可以使用API、CLI或SDK直接管理上述兩個叢集。
Describe*在權限原則中是必須的,否則被授權的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概覽。
訪問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地址。
TDE加密狀態限制
假設您希望限制目標RAM使用者在建立叢集時的加密狀態,則可以建立如下權限原則:
{ "Version": "1", "Statement": [ { "Effect": "Deny", "Action": "polardb:*", "Resource": "*", "Condition": { "Bool": { "polardb:EncryptionRequired": [ "false" ] } } } ] }為RAM使用者授權自訂策略。具體操作請參見為RAM使用者授權。