操作场景
本文主要介绍如何授予子账号产品级访问控制权限。产品级访问控制权限可以让子账号对自己创建的产品或主账号为其创建的产品拥有访问控制能力。主账号已创建了一个或多个产品、设备,通过两种方式将其分配给不同的合作商。如下图所示:
按策略生成器创建
创建策略
1. 使用腾讯云主账号登录 访问管理控制台,单击右上角账号并打开访问管理。
2. 单击策略 > 新建定义策略,策略方式选择“按策略生成器创建”。
3. 服务选择 iotexplorer,如果需要给子用户全部接口权限,操作选择全部操作即可。
如果需要给子用户指定接口权限,按需选择对应的 API。例如选择 API: GetCategoryPanelsByCategoryKey。
4. 资源可根据需求选择全部资源或特定资源。完成后单击下一步,进行关联策略。
关联策略
1. 单击“选择用户”,将权限授予给指定子用户。
2. 选择用户后,单击确定 > 完成即可生效。
按策略语法创建
创建策略
1. 使用腾讯云主账号登录 访问管理控制台,单击左侧菜单策略。
2. 进入策略页面,单击新建自定义策略。
3. 选择按策略语法创建。
4. 选择模板类型,勾选空白模板,单击下一步。
5. 填写自定义策略名称,并按照策略模板编辑策略内容。
示例代码如下:
分配子账号所有权限示例:
{"version": "2.0","statement": [{"action": ["*"],"resource": ["qcs::iotcloud:gz:uin/your_uid:*","qcs::iotexplorer:gz:uin/your_uid:project/your_project_id","qcs::iotexplorer:gz:uin/your_uid:project/your_project_id/","qcs::iotexplorer:gz:uin/your_uid:project/your_project_id/product/your_product_id","qcs::iotexplorer:gz:uin/your_uid:project/your_project_id/product/your_product_id/*"],"effect": "allow"}]}
策略说明如下:
Resource 对应的就是项目和产品。如果要把主账号某个项目 ID 的某个产品 ID 授权给某个子用户,则需要在 resource 部分增加下面4条,红色标注为需替换部分 :your_uid 为用户账号 ID,your_project_id 为控制台项目 ID,your_product_id 为项目内产品 ID。
Action:
*
号表示所有操作。Effect:allow 表示允许, deny 表示不允许。
项目策略语法使用说明,请参见 策略语法说明。
禁用子账号部分权限:
示例代码(此处示例禁用了子账号删除产品和设备):
{"version": "2.0","statement": [{"action": ["*"],"resource": ["qcs::iotcloud:gz:uin/your_uid:*","qcs::iotexplorer:gz:uin/your_uid:project/your-project-id","qcs::iotexplorer:gz:uin/your_uid:project/your-project-id/","qcs::iotexplorer:gz:uin/your_uid:project/your-project-id/product/your-product-id","qcs::iotexplorer:gz:uin/your_uid:project/your-project-id/product/your-product-id/*"],"effect": "allow"},{"action": ["iotexplorer:DeleteStudioProduct","iotexplorer:DeleteDevice"],"resource": ["qcs::iotcloud:gz:uin/your_uid:*","qcs::iotexplorer:gz:uin/your_uid:project/your-project-id","qcs::iotexplorer:gz:uin/your_uid:project/your-project-id/","qcs::iotexplorer:gz:uin/your_uid:project/your-project-id/product/your-product-id","qcs::iotexplorer:gz:uin/your_uid:project/your-project-id/product/your-product-id/*"],"effect": "deny"}]}
子账号登录控制台,删除项目或产品,会弹出窗口提示无权限:
Action:输入相关的接口名称,例如:DeleteStudioProduct(删除产品),DeleteDevice(删除设备)等。具体其他接口名称请查阅 API 概览 相关接口。
Effect:allow 表示允许, deny 表示不允许。
关联策略
1. 自定义策略创建完毕后,进入用户 > 用户列表页面,选择想要赋予权限的子账号。
2. 单击用户名称,进入用户详情页,在“权限”栏中,单击关联策略。
3. 搜索刚才创建的策略名称,选择后单击确定,完成授予策略中定义的权限。