验证错误检索ec2库存.发现AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境变量,但可能不正确

Eff*_*'an 3 amazon-ec2 boto ansible ansible-playbook ubuntu-14.04

我们使用Ansible和aws-cli进行应用程序的部署,配置管理和编排.这是自动执行这些过程的好方法.
不幸的是,我不时(我不能确切地指出何时,但它发生在与ansible合作几天后)我收到以下消息:

验证错误检索ec2库存.发现AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境变量,但可能不正确

我正在使用Ubuntu 14.04来运行ansible,我没有改变与aws access-key或secret-key相关的任何内容.我也尝试过使用boto但行为相同.唯一有用的是重新启动我的机器.
任何想法,是什么导致这个问题?

谢谢,艾菲

Eff*_*'an 12

似乎亚马逊认证机制使用客户端时间戳,请参阅:http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#RESTAuthenticationTimeStamp

时间戳要求
对于经过身份验证的请求,必须使用有效的时间戳(使用HTTP日期标头或x-amz-date备用).此外,经过身份验证的请求中包含的客户端时间戳必须在收到请求后的Amazon S3系统时间的15分钟内.

所以我使用了(https://askubuntu.com/questions/81293/what-is-the-command-to-update-time-and-date-from-internet):

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
Run Code Online (Sandbox Code Playgroud)

为了更新我的约会时间,它修复了:)