首页 文章

是否可以通过Cloudfront对API网关进行IAM身份验证?

提问于
浏览
1

是否可以通过Cloudfront将IAM角色身份验证用于API网关 endpoints ?

这是一个基本用例:

  • / api - > API网关

  • / * - > S3 HTML / Javascript

我已经能够使这个工作 without 认证类似于以下设置:https://www.codeengine.com/articles/process-form-aws-api-gateway-lambda/

How do you add CloudFront in front of API Gateway

特别要注意的是不要从Cloudfront转发HOST头...

当我在API中启用IAM身份验证时,收到以下响应:

选项:200

POST:403

{“message”:“我们计算的请求签名与您提供的签名不匹配 . 请检查您的AWS秘密访问密钥和签名方法 . 有关详细信息,请参阅服务文档 . \ n \ n此请求的规范字符串应该是\ n'POST \ N /测试/创建\ n \ naccept:应用/ JSON \ ncontent-类型:application / JSON \ n主机:*****执行-api.ap - **** - 2.amazonaws.com \ n nx-amz-date:20170328T044253Z \ n \ naccept; content-type; host; x-amz-date \ na57656a9def890d9de2b637789f7e5917f4b2823765ae0122087d08f89a97380'\ n \ n字符串到标志应该是\ n'AWS4-HMAC-SHA256 \ n20170328T044253Z \ n20170328 / AP-东南-2 /执行的API / aws4_request \ ncae7fd6b4cabd593ad2ec6ce7091c94dc8cba306e81da95d567873eea8f981a5' \ n“个}

Canonical String中的主机是API网关的主机...

1 回答

  • 2

    如评论中所述,由于更改了HOST标头,您将遇到困难 . 理论上,理论上将API Gateway exceute-api 域的请求作为 HOST 的值进行签名应该有效,假设CloudFront没有以任何其他方式更改有效负载 .

相关问题