gpt4 book ai didi

amazon-s3 - 如何配置 amazon cloudfront 以阻止某些 S3 存储桶文件访问?

转载 作者:行者123 更新时间:2023-12-02 00:55:51 25 4
gpt4 key购买 nike

在 S3 上,我们将所有文件设为私有(private)。用户无法通过 S3 链接加载任何文件。但它们都是通过云端链接公开的。

我如何限制对 ./restricted.txt 的访问? (只有使用签名 URL 链接的用户才能通过云端链接看到该文件),./not_restricted.txt 必须同时公开。

我是怎么做到的。

我在 s3 上创建了/public 和/private 文件夹,将我的私有(private)/公共(public)文件分开,创建了指向/public 的云端源。因此,我在/public 文件夹中的所有 S3 文件都是公共(public)的,我可以使用不带公共(public)前缀/img1.jpg 的链接加载它们而不是/public/img1.jpg,因为 cloudfront 将/public 视为根文件夹。

现在,我所有位于/private 或/public 文件夹之上的任何其他位置的文件都是私有(private)的,通过 S3 和云端链接。

但我不知道如何为具有云端路径的/private/restricted.txt 文件创建签名 URL。我可以创建使用 S3 路径的签名 url,但我需要有云端链接。

提前致谢。

最佳答案

在 CloudFront 中有“缓存行为”的概念。基于 URL 路径,这些允许您修改缓存行为,包括使用签名 URL/Cookie 的要求。

如果我理解你想要:

  • 维护您的私有(private) S3 存储桶
  • 通过 CloudFront (/public) 维护一些公共(public)路径
  • 拥有通过 CloudFront 的私有(private)路径 (/private)

这可以通过简单地在您的 CloudFront 分配中添加一个新的缓存行为并将 Restrict Viewer Access (Use Signed URLs or Signed Cookies) 设置为 Yes 来完成。例如:

CloudFront Cache Policy

所以重申一下,实现这一目标的最简单方法是

  • 在 S3 和 CloudFront 之间使用 OAI
  • 将单个 CloudFront 分配指向您的 S3 存储桶(root,而不是/public)
  • 创建一个新的缓存行为,为/private 启用签名 URL

如果这不能回答您的问题,例如,如果您需要维护路径并且不能在 URL 模式本身中使用/public 和/private,请通过评论告诉我,我可以尝试详细说明。谢谢!

关于amazon-s3 - 如何配置 amazon cloudfront 以阻止某些 S3 存储桶文件访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35173547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com