我可以连接到AWS区域,但无权获得现货价格

时间:2016-09-15 18:43:02

标签: python amazon-web-services amazon-ec2 boto unauthorized

我正在尝试获取AWS现货价格历史记录,并且我从本教程获得了帮助:https://medium.com/cloud-uprising/the-data-science-of-aws-spot-pricing-8bed655caed2#.nk3k2m1z0

当我找回连接对象时,我能够连接到给定的区域。

但是当我到达以下行时出现错误:

prices = ec2.get_spot_price_history(start_time=start, end_time=end, instance_type=instance)

这是我得到的错误:

will process from 2016-05-26T00:00:00 to 2016-05-26T11:59:59
EC2Connection:ec2.us-east-1.amazonaws.com
Traceback (most recent call last):
  File "test.py", line 30, in <module>
    prices = conn.get_spot_price_history(start_time=start, end_time=end, instance_type=instance_types[0])
  File "/usr/lib/python2.7/dist-packages/boto/ec2/connection.py", line 1420, in get_spot_price_history
    [('item', SpotPriceHistory)], verb='POST')
  File "/usr/lib/python2.7/dist-packages/boto/connection.py", line 1186, in get_list
    raise self.ResponseError(response.status, response.reason, body)
boto.exception.EC2ResponseError: EC2ResponseError: 401 Unauthorized
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>AuthFailure</Code><Message>AWS was not able to validate the provided access credentials</Message></Error></Errors><RequestID>70a8b7bd-28e2-4526-83df-d0cb86e1f491</RequestID></Response>

任何人都可以告诉我,我怎么可能连接但未获得授权?

2 个答案:

答案 0 :(得分:0)

我弄明白了这个问题。事实证明我的电脑时间慢了7分钟。我在某处读到除了你的凭证之外的AWS也会占用你的CPU时间。

基本上我手动改变了时间,现在它起作用了:)

答案 1 :(得分:-1)

您正在使用的AWS凭据无权执行ec2:DescribeSpotPriceHistory命令。

要解决此问题:

  1. 转到IAM管理控制台
  2. 查找您在连接期间使用的IAM用户或角色
  3. 允许自己执行ec2:DescribeSpotPriceHistory
  4. 不要给自己管理员访问权限。做得对,只是给自己正确的权限。