MSE Nacos注冊中心能夠按照實例、命名空間、Group、ServiceName設置訪問權限,降低某個實例被惡意用戶非法獲取、修改的風險。本文介紹如何在MSE上為Nacos注冊中心配置細粒度鑒權。
前提條件
使用說明
本文檔內容涉及圖中引擎直連鏈路的訪問權限的開啟和配置,授權成功后,Nacos Client可以通過RAM用戶訪問MSE的Nacos。
關于引擎管控鏈路的訪問鑒權配置和使用,即為RAM用戶授予使用MSE控制臺權限的具體操作,請參見注冊配置中心授權。
步驟一:創建細粒度權限策略
使用RAM管理員登錄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訪問鑒權。