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

时间:2016-03-08 10:28:52

标签: amazon-ec2 ubuntu-14.04 ansible boto ansible-playbook

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

  

检索ec2广告资源的身份验证错误。 AWS_ACCESS_KEY_ID和   找到AWS_SECRET_ACCESS_KEY环境变量但可能不正确

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

谢谢, 艾菲

2 个答案:

答案 0 :(得分:12)

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

  

时间戳要求
  必须使用有效的时间戳(使用HTTP Date标头或x-amz-date替代)   经过身份验证的请此外,还包括客户端时间戳   经过验证的请求必须在亚马逊的15分钟内   收到请求时的S3系统时间。

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

config.skin = 'skin-name'; 

为了更新我的日期时间,它修复了:)

答案 1 :(得分:-1)

我会假设它之前正在运行,现在它无法运行。确保你的aws cli参数都已设置好并且aws用户有权运行ansible脚本。只需在您的机器上运行日期命令,看看您是否有正确的时间。如果没有,请使用时间服务器更新您的机器时间,它应该可以解决您的问题。