限制某些用户而不是其他用户对 Cloudfront(S3) 文件的访问的简单示例

2024-01-14

我刚刚开始了解 AWS S3 和 Cloudfront 的权限,所以请放心。

两个主要问题:

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

  2. 我还想限制访问权限,以便人们只能查看 my-site.com 上的内容,而不能查看 your-site.com 上的内容。很遗憾S3 文档示例存储桶策略 http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html#AccessPolicyLanguage_UseCase4_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/*"
                    ]
                }
            }
        }
    ]
}

  1. 要限制对 CDN 的访问,为了提供我们所说的“私有内容”,您需要使用 API 生成签名 URL,并且可以定义 URL 的过期时间。更多信息is here http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html.
  2. 您可以使用原始访问身份 -正如这里所解释的 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html—防止内容在云端之外提供服务。

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

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

Cloudfront私有内容+签名url架构 https://stackoverflow.com/questions/6342315/cloudfront-private-content-signed-urls-architecture?rq=1

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

限制某些用户而不是其他用户对 Cloudfront(S3) 文件的访问的简单示例 的相关文章

随机推荐