AWS无法验证Amazon EC2中提供的访问凭证

时间:2018-08-08 10:28:55

标签: amazon-web-services amazon-s3 amazon-ec2 credentials

我一直试图通过访问rest API [1]来监视实例。对于特定的访问密钥和秘密密钥,我在AWS S3示例上尝试了相同的凭证,它成功执行,但是对于Amazon EC2,我收到以下错误:

<?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>627188e0-e134-435e-aece-7056a8360a46</RequestID></Response> 

AmazonS3和AMzonEC2的SIgnature生成是否不同?我正在使用[2]来生成签名,据我了解,亚马逊s3和亚马逊ec2的签名生成没有重大变化。

这可能是什么原因?我们必须为AmazonEC2设置任何特定权限吗?

[1] https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_MonitorInstances.html

[2] https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html

1 个答案:

答案 0 :(得分:0)

我不知道这是否对您的特定问题有所帮助...通过邮递员调用EC2 API时,我遇到了相同的错误消息,这就是我最终撰写本文的方式。要解决此问题,我只需在URL中添加区域名称,然后将Version添加到参数中,如下所示:

https://ec2.eu-west-1.amazonaws.com/?Action=RunInstances&ImageId=ami-0aaada7cbb0d829fc&MinCount=1&MaxCount=1&InstanceType=t2.micro&Version=2016-11-15

如果使用Postman,请记住通过“ AWS签名”类型下的“授权”标签设置对API的身份验证。对URL进行两次更改后,我对EC2 API的REST调用开始成功。