本文将介绍如何使用腾讯云访问管理 CAM(Cloud Access Management)管理物联网开发平台的访问权限,包括系统策略、自定义策略以及基于设备标签的权限控制。
功能介绍
物联网开发平台接入腾讯云访问管理 CAM,可以通过权限策略控制子用户、用户组或角色能够执行哪些操作,以及可以访问哪些 IoT Explorer 资源。
例如,可以为运维人员授予全部只读权限,为开发人员限制部分管理操作,或将支持资源级授权的操作限定在指定产品、设备范围内。对于需要按照地域、团队、客户等维度划分设备的场景,还可以在自定义策略中增加标签条件。

注意:
物联网开发平台在 CAM 中的服务简称为
iotexplorer。当前产品整体支持资源级授权和按标签授权,但具体 Action 的授权粒度仍可能是操作级或资源级,配置权限时需要以对应接口的 CAM 定义为准。权限方案选择
根据需要控制的权限范围,可以选择以下方式:
权限需求 | 推荐方案 | 主要控制维度 |
管理全部 IoT Explorer 资源。 | QcloudIotExplorerFullAccess | 全部管理权限。 |
只查看平台资源。 | QcloudIotExplorerReadOnlyAccess | 全部只读权限。 |
只允许部分操作。 | 自定义策略。 | Action |
限定指定项目、产品或设备。 | 自定义策略。 | Resource,仅适用于支持资源级授权的 Action。 |
禁止删除等敏感操作。 | 自定义策略。 | Effect = deny |
根据设备标签限制访问范围。 | 自定义策略 + 标签条件。 | Condition |
其中,系统策略和自定义策略是两类主要授权方式;标签权限本质上是在自定义策略中通过
Condition 增加资源标签条件,并不是独立于 CAM 策略之外的另一套权限体系。权限控制模型
CAM 策略主要通过
Action、Resource、Effect 和可选的 Condition 描述权限,可以理解为:允许或拒绝某个身份,在指定条件下,对哪些资源执行哪些操作。策略元素 | 说明 |
Action | 允许或拒绝执行的操作,例如查询设备、删除设备等。 |
Resource | Action 可以作用的资源范围。 |
Effect | allow 表示允许,deny 表示拒绝。 |
Condition | 可选,用于增加标签等附加授权条件。 |
策略创建完成后,需要关联至对应的子用户、用户组或角色才能生效。现有标签授权文档支持将策略关联至用户、用户组或角色。
操作级与资源级授权
物联网开发平台虽然整体属于资源级授权产品,但并不表示每个 Action 都可以限定到具体产品或设备。当前 CAM 将接口划分为:
授权粒度 | 说明 |
操作级 | 只能控制是否允许调用该 Action,不支持进一步限定具体资源。 |
资源级 | 可以通过 Resource 将权限限定到接口支持的具体资源。 |
例如,当前 CAM 接口清单中:
Action | 授权粒度 | Resource |
DeleteDevice | 操作级 | * |
DescribeDevice | 操作级 | * |
DescribeDevices | 资源级 | 支持设备资源六段式。 |
对于操作级接口,如果策略将 Action 限定到具体 ProductID、DeviceName 等资源,CAM 会判断该接口不在授权范围,最终表现为无权限,而不是仅对指定资源授权失败。具体 Action 的授权粒度及资源六段式可能随接口调整,应以最新的物联网开发平台支持 CAM 的业务接口为准。
前提条件
配置权限前,请确认:
已创建需要授权的子用户、用户组或角色。
已明确对应账号实际需要执行的 IoT Explorer 操作。
如需限制项目、产品或设备范围,已获取对应的 ProjectID、ProductID、DeviceName 等资源标识。
如需按标签控制设备范围,已为相关设备配置对应标签。
使用注意事项
遵循最小权限原则,优先授予账号完成实际工作所需的权限,避免普通账号长期持有 FullAccess。
IoT Explorer 整体支持资源级授权,不代表所有 Action 都支持限制到具体产品或设备。
不同 Action 的 Resource 六段式可能不同,应以最新 CAM 接口清单为准。
CAM 一般遵循显式 Deny 优先于 Allow,但查询资源列表等场景可能存在特殊鉴权行为。
使用标签权限时,应关注未打标签资源的实际可见范围,严格隔离场景需要单独验证。
编程访问使用的 SecretId、SecretKey 等凭证应妥善保管,不应写入公开代码仓库或客户端程序。
使用系统策略
当账号需要访问全部 IoT Explorer 资源时,可以直接使用平台提供的系统策略。
系统策略 | 权限范围 | 适用场景 |
QcloudIotExplorerFullAccess | IoT Explorer 全部管理权限。 | 平台管理员等需要完整管理能力的账号。 |
QcloudIotExplorerReadOnlyAccess | IoT Explorer 全部只读权限。 | 运维查看、监控、审计等场景。 |
QcloudIotExplorerReadOnlyAccess 可用于查看主账号下的 IoT Explorer 资源,但不能执行修改操作;授予 QcloudIotExplorerFullAccess 后,子账号可以查看、修改和删除主账号可访问的产品、设备等数据,因此应谨慎授予。如果系统策略权限范围过大,或无法满足指定操作、指定资源的授权需求,应使用自定义策略。
使用自定义策略
自定义策略适用于需要进一步控制操作范围或资源范围的场景。创建策略时,服务选择
iotexplorer,再根据实际需求配置 Action、Resource、Effect 和可选 Condition。配置项 | 说明 |
服务 | iotexplorer |
Action | 需要允许或拒绝的 IoT Explorer 操作。 |
Resource | Action 作用的资源范围。 |
Effect | allow 或 deny。 |
Condition | 可选,用于增加标签等限制条件。 |
按操作限制权限
如果只需要开放部分能力,可以只授权业务需要的 Action;如果账号已经拥有较大范围的 Allow 权限,但需要禁止删除等敏感操作,可以增加 Deny 策略。
例如:
{"version": "2.0","statement": [{"effect": "deny","action": ["iotexplorer:DeleteStudioProduct","iotexplorer:DeleteDevice"],"resource": "*"}]}
CAM 一般遵循显式 Deny 优先于 Allow 的策略评估逻辑:若请求匹配 Deny,则拒绝访问;未匹配 Deny 且匹配 Allow 时才允许访问。
需要注意,部分查询资源列表等场景存在 Deny 不按通常逻辑生效的特殊情况,因此不建议仅依靠 Deny 实现资源可见性隔离。
按资源限制权限
对于支持资源级授权的 Action,可以进一步通过
Resource 限定具体项目、产品或设备。资源层级 | 常用资源标识 |
项目 | ProjectID |
产品 | ProductID |
设备 | DeviceName |
物联网开发平台不同 Action 对应的资源六段式可能不同。例如部分资源包含 Region、UIN、ProjectID、ProductID 和 DeviceName,而部分接口只支持到产品或项目层级。
因此,不建议统一套用固定的 Resource 模板,应根据目标 Action 在 CAM 接口列表中对应的授权粒度和资源六段式配置。
按设备标签限制访问范围
如果需要按照地域、团队、客户等维度进一步划分设备范围,可以为设备配置标签,并在自定义策略中通过
Condition 设置资源标签条件。例如,设备标签为:
配置项 | 示例 |
标签键 | location |
标签值 | shenzhen |
Condition Key | qcs:resource_tag |
条件值 | location&shenzhen |
现有 IoT Explorer 标签权限示例使用:
{"version": "2.0","statement": [{"effect": "allow","action": ["iotexplorer:GetDeviceList","tag:DescribeResourceTags"],"resource": "*","condition": {"for_any_value:string_equal": {"qcs:resource_tag": ["location&shenzhen"]}}}]}
其中标签条件采用
标签键&标签值 的格式,例如 location&shenzhen。注意:
当前 通过标签设置用户权限 的官方示例中,配置
location=shenzhen 后,子用户可以看到匹配该标签的设备,同时也可以看到未设置标签的设备。因此,标签条件不能直接等同于严格的客户、租户或生产环境隔离。对于严格隔离场景,应统一规划标签并实际验证目标 Action 和无标签资源的访问结果。另外,业务含义相近的接口可能对应不同 Action,不同 Action 的授权粒度也可能不同。配置标签或资源策略时,应以实际功能触发的 Action 及 CAM 当前接口定义为准,不建议根据接口名称自行替换。
验证与排查
权限配置完成后,建议使用对应子账号实际验证资源可见范围和操作权限。
现象 | 优先排查 |
子账号看不到产品或设备。 | 查询相关 Action 是否已授权,策略是否已正确关联。 |
接口返回 UnauthorizedOperation。 | Action、授权粒度、Resource、Condition 是否正确。 |
已限定某个产品,但部分功能仍提示无权限。 | 对应 Action 是否只支持操作级授权。 |
已配置 Allow 但仍被拒绝。 | 是否存在匹配的 Deny 或其他权限策略。 |
标签设备不可见。 | 标签 Condition、标签相关权限和实际 Action。 |
未设置标签的设备仍可见。 | 当前标签授权示例本身存在该行为,应重新评估隔离策略。 |
排查时应优先确认实际调用的 Action,再检查该 Action 的授权粒度和资源格式。
对于操作级接口,不应尝试通过具体产品或设备 Resource 对其进行资源隔离。