AWS IoT调用get-registration-code时触发AccessDeniedException权限问题
解决AWS IoT
GetRegistrationCode权限不足的问题 看起来你碰到了IAM权限的经典问题——AWS默认会拒绝所有未显式允许的操作,这里就是你的dalton用户缺少iot:GetRegistrationCode的权限。别担心,按下面的步骤就能快速解决:
步骤1:创建专属的IAM权限策略
- 登录AWS管理控制台,找到并进入IAM服务。
- 在左侧导航栏点击「策略」,然后点击页面右上角的「创建策略」。
- 切换到「JSON」选项卡,替换默认内容为以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:GetRegistrationCode", "Resource": "*" } ] } - 给这个策略起个清晰的名字,比如
IoTRegistrationCodeAccess,添加描述(可选)后,点击「创建策略」完成。
步骤2:将策略附加到你的IAM用户
- 在IAM控制台左侧导航栏点击「用户」,找到你的
dalton用户并进入详情页。 - 切换到「权限」选项卡,点击「添加权限」→「附加现有策略直接」。
- 在搜索框输入刚才创建的策略名称
IoTRegistrationCodeAccess,选中它后点击「下一步」,最后点击「添加权限」。
步骤3:验证权限是否生效
等待1-2分钟(IAM权限有时会有短暂的同步延迟),然后重新执行命令:
aws iot get-registration-code
如果还是报错,检查一下是否有其他限制(比如IAM用户边界、组织SCP策略)可能覆盖了这个允许权限,或者确认你使用的AWS CLI配置确实是dalton用户的凭证。
额外提示
如果后续你还需要执行其他AWS IoT操作,建议遵循最小权限原则,逐步扩展这个策略的Action列表,而不是直接使用AWSIoTFullAccess这类全权限托管策略(生产环境尤其要注意)。
内容的提问来源于stack exchange,提问作者Dalton Cézane
相关产品推荐
相关产品推荐

