通过HTTP REST获取AWS IoT设备影子返回403错误求助
AWS IoT设备影子接口403错误排查思路
- 优先修正签名逻辑的核心错误:你使用的示例代码原本适配EC2接口,代码中
canonical_uri被硬编码为'/',但你实际请求的路径是/things/BibaIot1/shadow,必须把canonical_uri的值改为实际请求的路径,否则SigV4签名校验会直接失败返回403。 - 检查IAM身份权限:确认你使用的IAM用户/ Lambda执行角色已附加包含
iot:GetThingShadow操作的权限策略,资源字段需要匹配目标设备的ARN,格式为arn:aws:iot:us-east-2:你的AWS账号ID:thing/BibaIot1。 - 确认设备存在:登录AWS IoT Core控制台,核实对应区域下确实存在名称为
BibaIot1的设备,设备名称大小写、特殊字符需完全匹配。 - 校验区域一致性:确认你的IoT设备、IAM身份、请求代码中填写的
region参数均为us-east-2,区域不匹配会导致签名校验失败。 - 检查时间同步:SigV4签名要求请求时间与AWS服务器时间差不超过15分钟,Lambda运行环境时间默认同步,若使用Postman测试需确保本地系统时间准确。
- 核实IoT策略配置:若你的AWS账号开启了IoT Core的细粒度权限控制,需额外配置IoT策略允许对应IAM身份调用设备影子接口。
内容的提问来源于stack exchange,提问作者Gabriele Giannelli
相关产品推荐
相关产品推荐

