帮你快速理解、总结文档立即下载

CAM权限管理

最近更新时间:2026-09-11 16:05:32
我的收藏
本文将介绍如何使用腾讯云访问管理 CAM(Cloud Access Management)管理物联网开发平台的访问权限,包括系统策略、自定义策略以及基于设备标签的权限控制。

功能介绍

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

注意:
物联网开发平台在 CAM 中的服务简称为 iotexplorer。当前产品整体支持资源级授权和按标签授权,但具体 Action 的授权粒度仍可能是操作级或资源级,配置权限时需要以对应接口的 CAM 定义为准。

权限方案选择

根据需要控制的权限范围,可以选择以下方式:
权限需求
推荐方案
主要控制维度
管理全部 IoT Explorer 资源。
QcloudIotExplorerFullAccess
全部管理权限。
只查看平台资源。
QcloudIotExplorerReadOnlyAccess
全部只读权限。
只允许部分操作。
自定义策略。
Action
限定指定项目、产品或设备。
自定义策略。
Resource,仅适用于支持资源级授权的 Action。
禁止删除等敏感操作。
自定义策略。
Effect = deny
根据设备标签限制访问范围。
自定义策略 + 标签条件。
Condition
其中,系统策略和自定义策略是两类主要授权方式;标签权限本质上是在自定义策略中通过 Condition 增加资源标签条件,并不是独立于 CAM 策略之外的另一套权限体系。

权限控制模型

CAM 策略主要通过 ActionResourceEffect 和可选的 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
allowdeny
Condition
可选,用于增加标签等限制条件。
现有 如何给子账号配置 CAM 权限 支持通过策略生成器选择 iotexplorer 服务、指定 API,并选择全部资源或特定资源,也支持直接使用策略语法创建自定义策略。

按操作限制权限

如果只需要开放部分能力,可以只授权业务需要的 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 接口列表中对应的授权粒度和资源六段式配置。
产品级权限的策略生成和关联方式可参见 如何给子账号配置 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 对其进行资源隔离。