botocore.exceptions.ClientError:InvalidClientTokenId

时间:2017-07-28 16:35:03

标签: amazon-web-services boto amazon-sqs boto3

我浏览了位于此处的快速入门:https://boto3.readthedocs.io/en/latest/guide/quickstart.html

我安装了AWS CLI并使用我的有效密钥对其进行了配置。我已经检查了〜/ .aws / credentials和〜/ .aws / config

此时我应该可以在命令提示符下使用python bin/process_sqs_messages.py运行我的py脚本。脚本如下所示:

__author__ = 'chris'
import boto3

sqs = boto3.client('sqs')

# List SQS queues
response = sqs.list_queues()

print(response['QueueUrls'])

我收到以下错误:

botocore.exceptions.ClientError: An error occurred (InvalidClientTokenId) 
when calling the ListQueues operation: No account found for the given parameters

完整堆栈跟踪:

Traceback (most recent call last):
File "bin/process_sqs_messages.py", line 12, in <module>
response = client.list_queues()
File "/Users/xxxx/.environments/xxxx_env/lib/python3.6/site-packages/botocore/client.py", line 310, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Users/xxxxx/.environments/xxxxx_env/lib/python3.6/site-packages/botocore/client.py", line 599, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidClientTokenId) when calling the ListQueues operation: No account found for the given parameters

我的猜测是我错过了会话​​令牌,但我不确定,如果我在哪里/如何获得会话令牌?样本根本没有提到它。

2 个答案:

答案 0 :(得分:1)

我刚刚创建了一个新用户并且神奇地再次工作了。必须让我的凭据在某个地方失效,但该用户仍然存在且该用户的凭据在awscli内部匹配。

答案 1 :(得分:0)

就我而言,我创建了新用户/密钥,但没有用。另外,我仔细检查了以下内容。

  • 我的 AWS 密钥是正确的。
  • 政策/许可是正确的。
  • 机器时间也正确。

是我的旧终端导致了问题(我几乎好几个星期都没有关闭它)所以关闭它后,我重新启动它并且它运行得非常好。