我对 AWS boto3 和访问密钥的工作原理感到困惑。
我已经设置了一个具有超级用户和编程访问权限的 IAM 用户。我在 aws configure 中输入了访问密钥和访问密钥。
在我的 python 脚本中,我: 导入boto3 iot = boto3.client('iot-data');
...稍后我就有了这样的代码:
response = iot.publish(
topic='/sbs/devicedata/flow',
payload=data
)
iot.publish 导致错误:
ClientError:调用发布操作时发生错误(ForbiddenException):请求中包含的安全令牌无效。
我验证我在创建用户帐户时生成的 aws 配置文件中是否拥有访问密钥和秘密密钥。
也许我缺少访问密钥如何与 boto3 绑定关联的?我猜 boto3 从配置文件中获取关键信息。但那些不应该是有效的吗?
谢谢你。
要解决任何此类身份验证错误,您应该检查所有凭据来源。如果是 boto3,您可以在此页面上看到检查凭据的顺序。
在问题中描述的简单情况下,应检查以下位置:
关于安全令牌,重要的是要知道它现在已在会话令牌中重命名,您只能在较旧的软件或库中看到它。同样重要的是要知道安全令牌或会话令牌是临时令牌,会在一段时间后过期,更新它们可以解决您的问题。