高性能 S3 反向代理

高性能 S3 反向代理

我想防止与我的 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"]
      }
}

相关内容