问题标签 [amazon-waf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2622 浏览

amazon-cloudformation - SAM API 网关与 Cloudformation WAFRegional

为了保护我们的 API,我正在尝试使用 RateBasedRule 部署 WAFRegional。API 网关位于 SAM 模板中,其中我还有一个嵌套堆栈,用于保存 WAFRegional 配置的子模板。下面提供了 WAFRegional 配置的子模板。在 ExecuteChangeSet 阶段发生的情况如下:

  1. CamerasIpSet 已创建

  2. CamerasRateRule 已创建

  3. WAFCamerasWebACL CREATE_FAILED:引用的项目不存在。(服务:AWSWAFRegional;状态代码:400;错误代码:WAFNonexistentItemException

我在大约 2 个月前发现了以下帖子,其中有人在使用无服务器时遇到了同样的问题:https ://forum.serverless.com/t/dependon-api-gateway-deployment/7792

我在这里错过了什么?

0 投票
0 回答
119 浏览

php - 我们如何使用 WAF 块从图像位置压缩图像并将文件移动到 php 中的 Amazon s3

我有一个在线图像位置 (URL),我必须将其上传到 Amazon S3。如果我上传只有 1-2 MB 大小的图像,WAF 不会阻止图像,但对于大于 5-6 MB 的大尺寸图像,亚马逊 WAF 会阻止图像并将其提供给403 forbidden error上传者,如果我上传通过任何带有分块的上传器插件获取相同的图像,然后 WAF 不会给出错误,那么我如何将文件从在线图像位置移动到 Amazon S3。

我已经尝试使用下面的代码来保存文件,但是大图像需要花费太多时间才能将文件保存在我的服务器上。

0 投票
1 回答
401 浏览

amazon-web-services - 将 AWS S3 网站中的日志流记录到 Cloudfront 到 WAF 安全自动化模板

我已经建立了一个带有 Cloudfront 发行版的 S3 静态网站。在 S3 网站存储桶中,我添加了一个日志文件夹并启用了带有 logs/ 前缀的日志记录。在 Cloudfront 发行版中,我打开了日志记录并将其映射到存储桶和 logs/ 前缀。

要添加 WAF,我按照下面的指南启动 cloudformation 堆栈。到目前为止一切顺利......直到我达到日志记录参数。我真的不清楚是否需要为我的网站设置一个名为“AWSLogs”的新存储桶或将其映射到存储桶下的日志/文件夹?我是否需要更改任何以前的日志设置?

链接到 AWS 安全自动化指南: https ://docs.aws.amazon.com/solutions/latest/aws-waf-security-automations/deployment.html#step1

从上面的链接:+应用程序访问日志存储桶名称+如果您为激活扫描仪和探测器保护参数选择是,请输入您要在其中存储 CloudFront 分配或应用程序负载均衡器的访问日志的 Amazon S3 存储桶的名称。要禁用此保护,请忽略此参数。

如果您为此参数使用现有的 S3 存储桶,则它必须位于您部署 AWS CloudFormation 模板的同一 AWS 区域中。您不能将同一个 S3 存储桶用于同一个 AWS 区域中的多个部署。

Note 为您的 Amazon CloudFront Web 分配或 Application Load Balancer 启用 Web 访问日志记录,以将日志文件发送到此 Amazon S3 存储桶并记住将日志保存在名为 AWSLogs 的文件夹中(日志前缀 AWSLogs/)

然后在第 5 步(见链接),它概述了 Cloudfront 分发日志设置,这似乎与我已经设置的内容相匹配。

0 投票
1 回答
328 浏览

amazon-web-services - 如何在 API Gateway 上以更长的间隔添加基于 ip 的速率限制?

我有一个我想限制访问的 API 网关端点。对于匿名用户,我想设置每日和每月限制(基于 IP 地址)。

AWS WAF 具有设置速率限制的能力,但它们的间隔是固定的 5 分钟,在这种情况下没有用处。

API Gateway 能够添加符合我需要的长期速率配额的使用计划,但不幸的是,它们似乎基于 API 密钥,我看不到通过 IP 实现的方法。

有没有办法使用 AWS 服务完成我想要做的事情?是否可以使用使用计划并为每个想要访问 api 的用户自动生成一个 api 密钥?还是有其他解决方案?

0 投票
2 回答
448 浏览

amazon-web-services - WAF 标准规则:我们真的必须手动配置所有内容吗?

我正在尝试使用我的 Api 网关配置 WAF,我很惊讶 AWS 没有提供规则模板(例如 owasp 前 10 名)。

例如,对于 SQL 注入,每个人都使用相同的规则,我错了吗?

您知道无需手动配置即可导入主要安全规则的方法吗?

0 投票
1 回答
302 浏览

amazon-web-services - 创建地理匹配 AWS WAF 条件/规则并使用 CloudFormation 将其连接到现有 CloudFront 分配

简而言之,我试图完成的是以下内容:

  • 我想创建一个 WAF 条件/规则组合来阻止不在国家白名单中的流量。
  • 我想使用 CloudFormation,以便可以对其进行版本控制并轻松部署到不同的环境。
  • 我想将它与现有的 CloudFront 分配相关联(这是环境之间的不同之处)。理想情况下,无需重建 CloudFront 分配。

这似乎很简单,可以在 Web 控制台中设置,但 CloudFormation API 似乎更受限制?

我能够获得“WAFRegional” GeoMatchSetRule并且WebACL部署良好。然后,当尝试将其与现有的 CloudFront 分配相关联时,似乎我想要使用的不是“WAFRegional”类型,而只是“WAF”类型。但是没有GeoMatchSet“WAF”的API?

运行上面的代码给了我错误An error occurred (ValidationError) when calling the CreateChangeSet operation: Template format error: Unresolved resource dependencies [arn:aws:cloudfront::999999999999:distribution/AAAAAAAAAAAA] in the Resources block of the template

最后,是否可以使用带有 、 和现有 CloudFront 分配的 CloudFormation 来构建GeoMatchSetByteMatchSet

0 投票
1 回答
1229 浏览

amazon-web-services - 为基于速率的规则创建 CfnWebACL 失败(AWS CDK WAF 区域)

我正在尝试使用 AWS CDK(@aws-cdk/aws-wafregionalv1.4.0)设置基于速率的规则。

这是我非常简单的 JavaScript 设置:

创建规则是没有问题的。但是在 Web ACL 上创建堆栈失败。错误信息是:

我在这里缺少什么,为什么无法创建 CfnWebACL 对象?

作为参考,完整的输出:

0 投票
0 回答
106 浏览

amazon-web-services - AWS WAF 上的 GEO 块,但有时缺少 Country 标头

我们正在使用从 S3 到 Athena 的 AWS WAF 日志来促进自定义查询。

我应用的规则之一是国家一级的地理封锁,因为它是本地服务。今天早上,我们收到了一些来自我们国家/地区的用户被屏蔽的报告。深入研究 waf 日志,我们发现发生这种情况时,国家/地区标题只是一个破折号。

知道这是如何发生的或如何解决这个问题吗?我们在日志中看到了其中的不少。

国家失踪

0 投票
1 回答
537 浏览

amazon-web-services - API 中不可见的自定义 Origin 标头

我有一个应用程序,其中客户端托管在具有 CloudFront 分配的 S3 上。API 位于带有 WAF 的 API 网关后面,客户端向 API 发出 http 请求以获取和发布数据。

我想限制对 API 的访问,使其只能从客户端获得,并且当有人尝试直接访问 API 时它应该返回错误。

诀窍是 API 向第三方公开,因此我不能使用 API Gateway 授权方,因为它们必须具有直接访问权限。

我在 CloudFront 中设置了一个自定义源头 ( My-Secret-Header: 1234567890qwertyuiop),我认为我可以在 WAF 中创建一个规则以允许使用此头的请求(加上基于其他标准的第 3 方,但该部分运行良好,它不是问题),并阻止其他所有内容。

问题是它My-Secret-Header永远不会进入 WAF,并且它不会被添加到源自客户端应用程序的 http 请求中。

我还尝试使用 Lambda@Edge 添加自定义标头,但没有成功。我使用 Lambda@Edge 和event.Records[0].cf.request.origin.s3.customHeaders节目My-Secret-Header(这是意料之中的)创建了大量的登录信息。

将自定义标头添加到客户端请求的最佳方法是什么,以便可以在 WAF 中创建规则?

0 投票
1 回答
1544 浏览

amazon-web-services - 如何在 AWS 无服务器中应用基于 ip 的速率限制

假设我在 AWS 中运行无服务器 REST API。因此,我在 AWS lambda 中实现了我的 REST API,并且 lambda 使用 API 网关或应用程序负载均衡器通过 HTTP 公开。然后,我想保护我的 API 免受过度使用我的 API 的潜在黑客的攻击。因此,我想通过调用者的 IP 地址限制 API 调用频率。

我看到这可以通过 AWS WAF 使用基于速率的规则来完成。阅读文档时,最低阈值为 2000 次调用,每 5 分钟。这大约是每秒 7 个调用。这对我们的标准来说有点太大了。此外,不可能按分钟、小时、天等指定限制。所以它非常有限。

除了基于 AWS WAF 速率的规则之外,还有其他替代方法来实现基于 IP 的速率限制吗?