我有一个使用 AWS lambda 和 API 网关构建的简单 HTTP 服务。指向网关的域由 Route53 托管,网关使用来自证书管理器的证书。索引页面上唯一的“服务正在运行”文本绝对是新鲜的。相当标准的设置。所有这些都使用 Terraform 巧妙地连接起来,就像一个魅力......除了每隔几秒 (!) 就会向 API 发出奇怪的请求。我检查了 AWS 上所有可能的探测和健康检查——一切都被禁用了,但请求不断出现。
转储来自 lambda 的请求:
{
...
"headers": {
"accept": "*/*", "accept-encoding": "gzip, deflate", "content-length": "0",
"host": "sub-b.sub-a.my-domain.com",
"user-agent": "python-requests/2.26.0",
"x-amzn-trace-id": "Root=1-6158e0d5-0d266e5d0a84add227005a79",
"x-forwarded-for": "3.85.226.144", "x-forwarded-port": "443",
"x-forwarded-proto": "https"
},
...
"http": {
"method": "GET", "path": "/", "protocol": "HTTP/1.1",
"sourceIp": "3.85.226.144", "userAgent": "python-requests/2.26.0"
},
"requestId": "GmgRbgATFiAEMtQ=",
"routeKey": "$default",
"stage": "$default",
"time": "02/Oct/2021:22:44:37 +0000"
...
}
IP 是北弗吉尼亚州的3.85.226.144
EC2 实例,所以它是us-east-1
AWS 区域(我的是 eu-central-1)。还有那个代理python-requests/2.26.0
。它看起来像 AWS 服务。特别是我已经尝试过更改子域,这不会改变最终结果,因为在使用不同的子域再次设置我的服务后请求立即开始出现。量约为每 1 小时 3000 个请求。
我已经花了几个小时在谷歌上搜索和检查我想到的任何东西,但即使很艰难,我也经常使用基础设施工作,我真的很无助。
这些请求到底是什么责任?!
各种想法和建议高度赞赏。
编辑:
我使用全新的根域进行了测试,以确保它来自 AWS。查询在中断期间停止(显然),但在服务再次可访问后立即返回(如几秒钟)。terraform apply
9点52分开始,9点59分结束。新域在 9:59 之前附加了一点(一些不相关的修改等待了几分钟),因此请求开始出现。据我所知,没有任何东西可以这么快地检测到新的根域,所以它一定与 AWS 本身有关。
好的,事实证明这是与 Route 53 路由或证书管理器相关的问题。
当我应用我的 terraform 定义的资源时,一定已经发生了某种竞争条件,并导致某种初始化探测永远持续,而不是在资源创建后立即停止。所以我的结论是,当同时创建 API 网关、DNS 路由和证书时,Route53 或 CM 往往会处于某种奇怪的状态。使用 terraform 创建所有服务,然后删除路由,然后重新创建解决了该问题。
请问您为什么认为这是由 AWS 服务本身生成的?我对 AWS 了解不多,但是当我看到“python-requests/2.26.0”作为 UA 的那一刻,我立即想象有人出于某些原因编写了一个脚本来利用/探测 API。对这些请求的实际答复是什么?是否可以从中解析出任何业务信息,例如价格/费率等?如果是,那么您可能只是有人在 AWS 中租用服务器并编写脚本来解析您的数据。否则,他们可能正在为所有可能的域探测所有可能的主机。发生在互联网上)
此外,您似乎不是第一个询问或报告该 IP 地址的人: https ://www.abuseipdb.com/check/3.85.226.144 https://github.com/photoprism/photoprism/issues/1458