我想防止与我的 S3 存储桶直接交互。虽然我的 S3 存储桶配置正确,但我想找到一种(高效)方法来锁定对单个 IP 的访问,同时仍从 S3 提供文件。
我设想的架构是这样的:
user request -> proxy web application -> s3 bucket
这样用户就不会接触或意识到 S3 的使用。我试图找到一种解决方法,但这样做会让我为每个请求支付 CPU 负载,从而减少使用 S3 的许多优势。我认为实现这一目标需要非常快速且极简的 Web 服务。
有没有办法可以向用户隐藏 S3,而又不浪费其在代理中的优势?
注意:
我不想考虑 S3 是否能安全配置。就我而言,出于组织原因,需要考虑进一步的安全程序。即使这确实是错误的选择,我也会喜欢这里的思考练习。
此外,使用服务代替 S3 不是一个选择。我们在这里只讨论 S3。
答案1
如果您想锁定对 IP 的访问,您可以通过 IAM 设置该权限 - 这样,您不必进行任何反向代理废话。
您可以创建一个全局读取 S3 策略,然后设置请求必须来自特定 IP 地址的条件。
条件语句的一个示例是:
"Condition" : {
"IpAddress" : {
"aws:SourceIp" : ["192.0.2.0/24", "203.0.113.0/24"]
}
}