3

我刚刚开始使用 AWS S3 和 Cloudfront 的权限,所以请放轻松。

两个主要问题:

  1. 我想允许访问某些用户(例如,已登录的用户),但不允许访问其他用户。我假设我需要使用 ACL 而不是存储桶策略,因为前者更具可定制性,因为您可以使用查询参数在 URL 中识别用户。首先这是正确的吗?有人可以向我指出如何在文件/用户逐个文件/用户的基础上执行此操作的最简单的英文描述吗ACL 上的文档让我很困惑。

  2. 我还想限制访问权限,使人们只能查看 my-site.com 上的内容,而不能查看 your-site.com 上的内容。不幸的是,S3 文档示例存储桶策略对我的演示存储桶的访问没有影响(请参阅下面的代码,稍微改编自 AWS 文档)。此外,如果我首先需要专注于允许逐个用户访问,我是否甚至想要定义存储桶策略?

我意识到我什至没有谈到如何在 Cloudfront(最终目标)的背景下进行这项工作,但对问题 1 和 2 的任何想法将不胜感激,此时提及 Cloudfront 将是一个奖励。

`

{
    "Version": "2008-10-17",
     "Id":"http referer policy example",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-bucket/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": [
                        "https://mysite.com/*",
                        "https://www.mysite.com/*"
                    ]
                }
            }
        }
    ]
}
4

1 回答 1

3
  1. 要限制对 CDN 的访问,以提供我们所谓的“私人内容”,您需要使用 API 来生成签名 URL,并且您可以定义 URL 的到期时间。更多信息在这里
  2. 您可以使用源访问身份—<a href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html" rel="nofollow noreferrer ">如此处所述 - 以防止内容在云端之外提供。

我以为我有一些过去项目中的代码可以分享,但没有。但是,至少我能够挖掘我的书签并找到在此过程中帮助我的参考资料之一,并且在 stackoverflow 上还有另一篇文章提到了相同的参考资料。请参阅下面的参考链接和帖子链接。

http://improve.dk/how-to-set-up-and-serve-private-content-using-s3/

Cloudfront 私有内容 + 签名 URL 架构

嗯,它已经有两年历史了,你可能需要在这里和那里稍微改变一下,但你会明白的。

于 2013-09-18T19:32:23.067 回答