如何通过HTTP代理将AWS_IAM凭证映射到AWS API网关中的实际HTTP端点?

时间:2016-06-28 09:35:44

标签: amazon-web-services amazon-iam aws-api-gateway

我有一个http端点 - A.

我们可以通过另一个http-endpoint-B调用此端点。

所以B - > A

我们正在使用AWS API Gateway执行上述操作。现在 - A是AWS_IAM保护,B没有保护。所以A需要x-amz-security-token,AccessKey,SecretKey,X-Amz-Date,Authorization。我使用API​​ Gateway的API资源功能 - 方法请求和集成请求来执行适当的映射。

enter image description here

完成其他各种方式,但最后我收到以下错误:

{ " message":"我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法......" }

我可以知道我在这里缺少什么吗?,我已经查看过文档和其他一些参考文献,但没有找到合适的内容。

1 个答案:

答案 0 :(得分:0)

您获得的错误表明端点A期望使用sigV4签署请求。目前,API Gateway仅在使用“AWS Service Proxy”集成类型时才会向后端集成端点签署请求。这是默认隐藏的。设置方法时,在“集成类型”下单击“显示高级”。这使“AWS服务代理”可见。选择它时,集成字段将更改为与调用AWS服务相关的新集。一个example of using the AWS Service Proxy can be found here

请注意,API Gateway目前不支持调用所有AWS服务。更具体地说,它不支持将其他API网关API称为集成端点。因此,如果端点A是另一个API网关API,那么这将不起作用。如果您需要调用API网关当前不支持的AWS服务,则可以通过创建Lambda函数来调用端点并从API网关调用Lambda函数来解决此问题。