AWS WAF 对 cloudfront 后面的 apigateway 没有影响
Posted
技术标签:
【中文标题】AWS WAF 对 cloudfront 后面的 apigateway 没有影响【英文标题】:AWS WAF has no effect on apigateway behind cloudfront 【发布时间】:2021-03-21 22:54:49 【问题描述】:我有一个指向 API 网关端点的 CloudFront 分配。我在该发行版上插入了 WAF ACL,它似乎可以工作。当我使用 CloudFront 访问 API 网关端点时,我被阻止(这是我在 ACL 上配置的所需行为)
https://<my-cloudfront-domain-name>/<my>/<api>/<endpoint> -> deny and I get a 403/blocked -> OK!
如果我“单独”到达我的端点(不在 cf 分发之后),我可以正常到达端点。即使我以孤立的方式访问 API,我也希望被阻止
https://<api-id>.execute-api.us-east-1.amazonaws.com/<my>/<api>/<endpoint> -> passed and I get a 200 -> NOT OK...
我的堆栈是使用 serverless framework
构建的,我的 API 网关来自 edge
类型
【问题讨论】:
【参考方案1】:API Gateway 可以通过 API 密钥限制访问。 CloudFront 可以在访问源时发送自定义的秘密 x-api-key 标头。对 API 网关的其他请求中缺少该标头将导致 API 请求被 403 Forbidden 拒绝。
请参阅使用 Amazon API Gateway 和 AWS WAF 保护您的 API,one 和 two 部分。
【讨论】:
我的问题是我遵循第一部分,但我仍然可以访问 api。如果您验证第一部分,请在受 cf 保护的 apigateway 和 cdn 上插入一个 waf。在我的情况下它失败了。第二部分需要一个 auth api - 如果可以的话,我希望避免它。以上是关于AWS WAF 对 cloudfront 后面的 apigateway 没有影响的主要内容,如果未能解决你的问题,请参考以下文章
CloudFront 后面的 API Gateway 不支持 AWS_IAM 身份验证吗?