【问题标题】:Simple example to restrict access to Cloudfront(S3) files from some users but not others限制某些用户而不是其他用户访问 Cloudfront(S3) 文件的简单示例
【发布时间】:2013-09-18 18:59:03
【问题描述】:

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

两个主要问题:

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

  2. 我还想限制访问权限,使人们只能查看 my-site.com 上的内容,而不能查看 your-site.com 上的内容。不幸的是,the S3 documentation example bucket policy 这对我的演示存储桶的访问没有影响(请参见下面的代码,稍微改编自 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/*"
                    ]
                }
            }
        }
    ]
}

【问题讨论】:

    标签: amazon-web-services amazon-s3 acl amazon-cloudfront


    【解决方案1】:
    1. 要限制对 CDN 的访问,以提供我们所谓的“私人内容”,您需要使用 API 来生成签名 URL,并且您可以定义 URL 的到期时间。更多信息is here
    2. 您可以使用源访问身份 —as explained here — 来防止内容在云端之外提供。

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

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

    Cloudfront private content + signed urls architecture

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

    【讨论】:

    • 感谢@Felipe,您有任何语言的代码可以提供示例吗?
    • 我可能有一些来自过去项目的点点滴滴。我会深入研究并发布给你。
    • 很遗憾我没有找到我制作的源代码,但至少我找到了一些我过去使用过的参考资料。查看更新的答案。
    猜你喜欢
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2016-12-28
    • 2022-01-26
    相关资源
    最近更新 更多