MSE Nacos配置中心能够按照实例、命名空间、Group、DataId设置访问权限,降低某个实例被恶意用户非法获取、修改的风险。本文介绍如何在MSE上为Nacos配置中心配置细粒度鉴权。
前提条件
使用说明
本文档内容涉及图中引擎直连链路的访问权限的开启和配置,授权成功后,Nacos Client可以通过RAM用户访问MSE的Nacos。

关于引擎管控链路的访问鉴权配置和使用,即为RAM用户授予使用MSE控制台权限的具体操作,请参见注册配置中心授权。
步骤一:创建细粒度权限策略
使用阿里云账号(主账号)或拥有RAM管理员权限(
AliyunRAMFullAccess)的RAM用户登录RAM控制台。-
在左侧导航栏,选择。
-
在权限策略页面,单击创建权限策略。

-
在创建权限策略页面,单击脚本编辑页签。

输入权限策略内容。
配置中心细粒度鉴权所涉及的权限操作(Action)如下表:
权限操作名称(Action)
说明
mse:QueryNacosConfig
微服务引擎MSE Nacos的读取配置权限,表示可以通过SDK获取和监听配置。
mse:UpdateNacosConfig
微服务引擎MSE Nacos的更新配置权限,表示可以通过SDK发布和修改配置。
配置中心细粒度鉴权所涉及的操作对象(Resource)需满足以下规则:
acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/config/${dataId}您也可以参考下文的常用示例,修改策略内容。
关于权限策略语法结构的详情,请参见权限策略语法和结构。
-
单击页面上方的优化策略,然后单击执行,对权限策略内容进行高级优化。
高级权限策略优化功能会完成以下任务:
-
拆分不兼容操作的资源或条件。
-
收缩资源到更小范围。
-
去重或合并语句。
-
-
在创建权限策略页面,单击确定。
-
在创建权限策略对话框,输入策略名称和备注,然后单击确定。
步骤二:授予RAM用户或RAM角色权限
授予RAM用户权限
在左侧导航栏,选择。
在用户页面,单击目标RAM用户操作列的添加权限。
您也可以选中多个RAM用户,单击用户列表下方的添加权限,为RAM用户批量授权。
在新增授权面板的权限策略处,单击所有策略类型的下拉框,在下拉框中选择自定义策略。在文本框中输入步骤一已创建的权限策略名称,单击搜索到的权限策略名称,然后单击确认新增授权。
在新增授权面板,确认授权成功后,单击关闭。
授予RAM角色权限
在新增授权面板的权限策略处,单击所有策略类型的下拉框,在下拉框中选择自定义策略。在文本框中输入步骤一已创建的权限策略名称,单击搜索到的权限策略名称,然后单击确认新增授权。
在新增授权面板,确认授权成功后,单击关闭。
常用示例
授予用户某些实例的只读配置权限。
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosConfig" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }授予用户某些实例读取和修改配置的权限。
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosConfig", "mse:UpdateNacosConfig" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }说明${instanceId1}和${instanceId2}代表的是配置中心实例ID。
授予用户只能读取某个实例中某个命名空间配置的权限。
{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosConfig", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}" } ], "Version": "1" }授予用户能读取和修改某个实例中某个命名空间下的${group}配置的权限。
{ "Statement": [ { "Effect": "Allow", "Action": [ "mse:QueryNacosConfig", "mse:UpdateNacosConfig" ], "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}" } ], "Version": "1" }授予用户只能读取某个${group}下的${dataId}配置的权限。
{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosConfig", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/config/${dataId}" } ], "Version": "1" }授予用户能读取和修改某个${group}下的${serviceName}配置的权限。
{ "Statement": [ { "Effect": "Allow", "Action": [ "mse:QueryNacosConfig", "mse:UpdateNacosConfig" ], "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/config/${dataId}" } ], "Version": "1" }
相关文档
如果您需要了解配置中心的实例级别鉴权,可参见Nacos Client访问鉴权。