子账号权限控制

最近更新时间:2024-04-03 11:23:41

我的收藏

操作场景

本文主要介绍如何授予子账号产品/设备级访问控制权限。
产品级访问控制权限可以让子账号对自己创建的产品,或主账号为其创建的产品,拥有访问控制能力。
设备级访问控制权限,子账号只拥有主账号为其创建的设备的访问控制能力。

按策略语法创建方式授权

创建策略

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}"
]
}
}
}
至此,您可以通过 物联网通信控制台 获取产品的基本信息。

按标签方式授权

创建设备标签

1. 进入物联网通信控制台,单击目标产品名称进入产品信息界面。若未添加产品与设备,需先进行添加操作,操作步骤详情请参见 设备接入准备



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. 操作完成之后,被授权的子用户即可在控制台对相应的设备资源进行管理操作。

而未被授予的设备资源将无法查看。