You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFront(WAF) IP访问限制下Bot访问引发计费问题求助

解决CloudFront+S3静态站Bot访问导致的WAF/计费问题

可行的Bot过滤方案

1. 利用AWS WAF托管规则(Bot Control)

  • 启用AWS Managed Rules中的Bot Control规则组(基础版免费,标准版/高级版付费但识别更精准),调整现有规则优先级:
    • 第一优先级:保留放行特定可信IP的规则
    • 第二优先级:配置Bot Control规则对恶意/可疑Bot执行Block动作
  • 优势:无需手动维护Bot特征库,AWS自动更新规则,被拦截的请求不会进入CloudFront回源环节,直接降低WAF、CloudFront和S3的计费成本。

2. 用CloudFront Signed Cookies替代Signed URL

  • 针对全站或指定路径生成Signed Cookies,解决Signed URL仅支持单URL的局限:
    1. 在IAM或CloudFront控制台创建CloudFront密钥对
    2. 使用AWS SDK(如Python的boto3)或CLI生成包含CloudFront-Key-Pair-Id、CloudFront-Signature、CloudFront-Policy的Cookie
    3. 通过内部系统将Cookie分发给授权用户(比如登录后下发)
  • 效果:只有携带有效Signed Cookie的请求能通过CloudFront验证,无Cookie的Bot请求会被直接拦截,且支持全站所有路径访问。

3. 修正S3 Referer访问策略

  • 你之前的S3策略失效原因是第二个Statement无条件允许OAI访问所有资源,导致Referer限制形同虚设。修正后的策略需合并条件,仅允许OAI携带有效Referer访问:
    {
        "Version": "2012-10-17",
        "Id": "PolicyForCloudFrontPrivateContent",
        "Statement": [
            {
                "Sid": "AllowCloudFrontOAIWithValidReferer",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EXXXXXX"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::your-bucket-name/*",
                "Condition": {
                    "StringLike": {
                        "aws:Referer": [
                            "http://www.example.com/*",
                            "http://example.com/*"
                        ]
                    }
                }
            }
        ]
    }
    
  • 额外配置:在CloudFront行为设置中,将Referer添加到转发到源的头部列表,确保S3能接收到Referer头完成验证。

4. 隐藏服务指纹减少Bot扫描

  • 自定义CloudFront响应头,移除X-Amz-Cf-Id、Server等暴露AWS服务特征的头部
  • 仅使用CloudFront分配的域名访问网站,避免直接使用S3网站端点,降低被Bot识别的概率

5. 优化CloudFront缓存策略降低回源成本

  • 对静态HTML、CSS、JS等资源设置较长缓存TTL,减少重复回源请求
  • 启用缓存错误响应(如403),避免Bot重复请求相同路径时频繁触发S3访问

关于Bot获取域名的可能原因

  • 互联网批量域名扫描器会遍历常见域名组合、过期后重新注册的域名,或通过DNS历史记录抓取域名
  • 可能存在内部泄露(如文档、测试环境链接),或网站曾公开过留下的访问痕迹

内容的提问来源于stack exchange,提问作者squidg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:30:26