MSE Nacos配置中心能够按照实例、命名空间、Group、DataId设置访问权限,降低某个实例被恶意用户非法获取、修改的风险。本文介绍如何在MSE上为Nacos配置中心配置细粒度鉴权。
前提条件
使用说明
本文档内容涉及图中引擎直连链路的访问权限的开启和配置,授权成功后,Nacos Client可以通过RAM用户访问MSE的Nacos。
关于引擎管控链路的访问鉴权配置和使用,即为RAM用户授予使用MSE控制台权限的具体操作,请参见注册配置中心授权。
步骤一:创建细粒度权限策略
使用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角色权限
常用示例
授予用户某些实例的只读配置权限。
{ "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" } ] }
授予用户只能读取某个实例中某个命名空间配置的权限。
{ "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" }