使用邮递员发送AWS EC2 RestAPI返回错误

使用邮递员发送AWS EC2 RestAPI返回错误,rest,amazon-web-services,amazon-ec2,postman,Rest,Amazon Web Services,Amazon Ec2,Postman,我正在尝试使用Postman应用程序发送EC2 RestAPI(DescribeInstances)。我在AWS的IAM中创建了一个用户。我为该特定用户生成了AccessKeyId和SecretKey,并为用户提供了“AmazonEC2FullAccess”策略(所有EC2访问)。 我在Postman中使用了以下步骤来发送ResAPI: “获取”操作,将端点设置为 在“授权”选项卡中,选择“AWS签名”并设置以下字段: AccessKey=ACCESSKEYEXAMPLE SecretKey

我正在尝试使用Postman应用程序发送EC2 RestAPI(DescribeInstances)。我在AWS的IAM中创建了一个用户。我为该特定用户生成了AccessKeyId和SecretKey,并为用户提供了“AmazonEC2FullAccess”策略(所有EC2访问)。 我在Postman中使用了以下步骤来发送ResAPI:

  • “获取”操作,将端点设置为
  • 在“授权”选项卡中,选择“AWS签名”并设置以下字段:

    • AccessKey=ACCESSKEYEXAMPLE
    • SecretKey=SecretKey示例
    • AWS地区=美国西部-1
    • 服务名称=ec2
  • 单击“更新请求”,最终生成3个标题。我使用生成的标题中的信息修改端点,如下所示:

  • “内容类型”标题设置为“application/x-www-form-urlencoded”,并删除了x-Amz-Date和Authorization标题
当我通过单击“发送”发送RestAPI时,我得到以下错误响应: 状态:“401未经授权” AuthFailureAWS无法验证提供的访问凭证4BC49D04-2115-4b95-8af5-5ac879ac5df3

该错误似乎表明RestAPI格式错误,而不是未经授权的访问。尝试了不同的变化,非常困惑。任何帮助都将不胜感激

谢谢,,
艾哈迈德。

我刚刚找到了解决同一问题的办法。您的URL应该是:

直到我添加了
&Version=2016-11-15
和地区,它才起作用


说明
版本
是强制性的

只是为了补充@chriscatfr答案,下面是如何设置邮递员参数以查询
us-east-1
地区的实例的屏幕截图:


ec2.amazonaws.com
不是us-west-1的端点。正确的主机名是
ec2.us-west-1.amazonaws.com
。仅更改端点没有帮助,出现相同的错误消息。但是,按照您的建议更改端点并将身份验证凭据作为头参数,使API能够工作()。知道为什么将身份验证凭据作为查询失败吗?再次感谢您。这很难确定,但您的描述听起来像是您在生成URL后修改了请求。对于
GET
请求,浏览器通常不会像在
POST
中那样设置
内容类型
标题。是的,这在2020年对我有效。版本必须准确,而不仅仅是任何旧的日期。。为了我。。