首页 文章

Amazon API Gateway IAM使用生成的JS SDK进行身份验证的示例

提问于
浏览
3

我在他们的官方文档之后在Amazon API Gateway上创建了示例GET和POST API . 我已经为这些API生成了JS SDK,我用它来从S3上托管的客户端JS文件中调用这些API . 这没有任何“授权类型”,完美无瑕 .

现在,当我将GET方法的“授权类型”设置为“IAM”时,我需要传递IAM凭据才能使其正常工作 . 尽管通过了我的AWS账户的根凭证,我在响应标头中得到了这个:

x-amzn-ErrorType:InvalidSignatureException:http://internal.amazon.com/coral/com.amazon.coral.service/

最后它返回一个 403 错误代码 .

我的问题是:有没有人成功尝试使用来自Amazon API Gateway的生成的javascript SDK和IAM身份验证?你能说出我可能出错的地方吗?

谢谢 .

1 回答

  • 3

    我能够在AWS论坛上的几个人的帮助下解决这个问题 . 似乎API Gateway GET方法需要一个空体 . 默认情况下,如果您遵循生成的JS SDK附带的README示例,则将正文中的“undefined”或“{}”传递给GET会导致不匹配的有效负载,从而导致计算出错误的签名 .

    截至目前,我只是通过硬编码 body = '' 在/lib/apiGatewayCore/sigV4Client.js中进行了一些小调整 .

    这应该是临时锻炼,因为这可能会影响您需要填充“正文”的其他API网关方法 . 就我而言,我只有GET方法 .

相关问题