操作场景
本文主要介绍如何授予子账号产品/设备级访问控制权限。
产品级访问控制权限可以让子账号对自己创建的产品,或主账号为其创建的产品,拥有访问控制能力。
设备级访问控制权限,子账号只拥有主账号为其创建的设备的访问控制能力。
按策略语法创建方式授权
创建策略
1. 登录腾讯云 访问管理控制台,单击左侧菜单栏策略。
2. 进入策略管理页面,单击新建自定义策略。
3. 在弹出选择创建策略方式页面,选择按策略语法创建。
4. 选择“空白模板”,单击下一步。
5. 填写自定义策略名称,并按照策略模板编辑策略内容。示例代码如下:
{"version": "2.0","statement": [{"action": ["iotcloud:CreateProduct"],"resource": "*","effect": "deny"},{"action": ["iotcloud:*"],"resource": "*","effect": "allow","condition": {"string_equal_if_exist": {"product": ["${productID1}","${productID2}","${productID3}"]}}}]}
关联策略
1. 自定义策略创建完毕后,进入 用户列表 页面。
2. 选择想要赋予权限的子账号,在“权限”那栏,单击关联策略。
3. 搜索刚才创建的策略名称,选择后单击确定,完成授予策略中定义的权限。
策略说明
下面的策略模板表示禁止子账号创建产品权限。若要禁止子账号其它权限,可以将权限 API 名称写在 action 中,如 "iotcloud::DeleteDevice" 禁止删除设备权限。
{"action": ["iotcloud:CreateProduct"],"resource": "*","effect": "deny"}
下面的策略模板表示其它权限(创建设备、删除设备等)均被允许。但只能在规定的产品下进行操作,对哪个产品开放此类权限取决于 product 列表中填入的 PID,用户将其中的 ${productID*} 替换成需要授权的物联网产品 productID 即可。
{"action": ["iotcloud:*"],"resource": "*","effect": "allow","condition": {"string_equal_if_exist": {"product": ["${productID1}","${productID2}","${productID3}"]}}}
按标签方式授权
创建设备标签
2. 单击“标签信息”后的点击添加,填写 key 和 value 等信息进行设备标签添加。
标签 key:支持英文、数字、下划线的组合,最多不超过16个字符。
标签 value:支持英文、数字、下划线的组合,最多不超过16个字符。
3. 编辑完成后单击确认,即完成对“标签信息”的添加,设备信息中将会展示相应的标签内容。
创建策略与关联策略
1. 登录腾讯云 访问管理控制台,单击左侧菜单栏策略。
2. 选择导航栏的策略,单击新建自定义策略。
3. 在弹出选择创建策略方式页面,选择按标签授权。
4. 编辑策略,在可视化策略生成器页中添加服务与操作、选择标签,单击 JSON 可查看策略语法内容。确认后单击下一步进行关联用户/用户组/角色。
说明:
单个设备可支持输入多个标签,且设备与设备之间标签键与标签值不唯一。选择资源时可选中多个标签键和标签值,也可选择其中一组标签键和标签值去分配资源。一组标签键与标签值可以分配一个或多个设备资源给到子用户。
5. 按实际需求选择用户或用户组或角色,单击完成即完成按标签方式授权操作。
其中策略名称与策略信息内容可更改,确认无误后,单击完成即可完成策略的创建和策略的关联。
6. 由于物联网通信控制台的限制,设备资源被分配给子用户之后,子用户需获取到产品列表和设备列表信息才可进入设备信息界面,对授权的设备资源进行查看。因此,需要对产品列表和设备列表进行授权,可按照创建策略语法方式完成产品列表和设备列表信息的授权,授权代码如下:
{"version": "2.0","statement": [{"action": ["iotcloud:DescribeProducts","iotcloud:DescribeDevices"],"resource": "qcs::iotcloud:::ProductId/*","effect": "allow"}]}
7. 操作完成之后,被授权的子用户即可在控制台对相应的设备资源进行管理操作。
而未被授予的设备资源将无法查看。