MSE Nacos註冊中心能夠按照執行個體、命名空間、Group、ServiceName設定存取權限,降低某個執行個體被惡意使用者非法擷取、修改的風險。本文介紹如何在MSE上為Nacos註冊中心配置細粒度鑒權。
前提條件
使用說明
本文檔內容涉及圖中引擎直連鏈路的存取權限的開啟和配置,授權成功後,Nacos Client可以通過RAM使用者訪問MSE的Nacos。
關於引擎管控鏈路的訪問鑒權配置和使用,即為RAM使用者授予使用MSE控制台許可權的具體操作,請參見註冊配置中心授權。
步驟一:建立細粒度權限原則
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇 。
在權限原則頁面,單擊建立權限原則。
在建立權限原則頁面,單擊指令碼編輯頁簽。
輸入權限原則內容,然後單擊繼續編輯基本資料。
註冊中心細粒度鑒權所涉及的許可權操作(Action)如下表:
許可權操作名稱(Action)
說明
mse:QueryNacosNaming
微服務引擎MSE Nacos的讀取服務許可權,表示可以通過SDK擷取和監聽服務。
mse:UpdateNacosNaming
微服務引擎MSE Nacos的更新服務許可權,表示可以通過SDK發布和修改服務。
註冊中心細粒度鑒權所涉及的操作對象(Resource)需滿足以下規則:
acs:mse:*:*:instance/{instance_id}/{namespaceId}/{group}/naming/{serviceName}
您也可以參考下文的常用樣本,修改策略內容。
關於權限原則文法結構的詳情,請參見權限原則文法和結構。
輸入權限原則名稱和備忘。
檢查並最佳化權限原則內容。
基礎權限原則最佳化
系統會對您添加的權限原則語句自動進行基礎最佳化。基礎權限原則最佳化會完成以下任務:
刪除不必要的條件。
刪除不必要的數組。
可選:進階權限原則最佳化
您可以將滑鼠懸浮在可選:進階策略最佳化上,單擊執行,對權限原則內容進行進階最佳化。進階權限原則最佳化功能會完成以下任務:
拆分不相容操作的資源或條件。
收縮資源到更小範圍。
去重或合并語句。
單擊確定。
步驟二:授予RAM使用者或RAM角色許可權
授予RAM使用者權限
授予RAM角色許可權
常用樣本
授予使用者某些執行個體的唯讀服務的許可權。
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosNaming" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }
授予使用者某些執行個體讀取和修改服務的許可權。
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }
說明${instanceId1}和${instanceId2}代表的是註冊中心執行個體ID。
授予使用者只能讀取某個執行個體中的某個命名空間服務的許可權。
{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosNaming", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}" } ], "Version": "1" }
授予使用者能讀取和修改某個執行個體中某個命名空間下的${group}服務的許可權。
{ "Statement": [ { "Effect": "Allow", "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}" } ], "Version": "1" }
授予使用者只能讀取某個${group}下的${serviceName}服務的許可權。
{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosNaming", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" } ], "Version": "1" }
授予使用者讀取和修改某個${group}下的${serviceName}服務的許可權。
{ "Statement": [ { "Effect": "Allow", "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" } ], "Version": "1" }
相關文檔
如果您需要瞭解註冊中心的執行個體層級鑒權,可參見Nacos Client訪問鑒權。