通过签名 URL 访问 Cloudfront 的 S3 私有存储桶

问题描述 投票:0回答:1

我有以下设置工作:

  • 使用 Cloudfront Distribution 的私有 S3 存储桶
  • 用户登录门户并可以访问 S3 中的文件,这些文件通过在一定时间内有效的 Cloudfront 签名 URL 提供服务。

目前,用户可以通过 Google 调试器等复制该 Url 并与其他人共享。我想知道是否可以进一步保存这些文件,以便它们只能通过门户域打开。我正在研究类似于

的存储桶策略
{
"Version": "2012-10-17",
"Statement": [
    {
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": [
            "arn:aws:s3:::/*"
        ],
        "Effect": "Allow",
        "Condition": {
            "StringLike": {
                "aws:Referer": [
                    "http://www.example.com/*",
                    "http://example.com/*"
                ]
            }
        }
    }
]

}

虽然有时有效,但并非总是有效。如果我请求 5 个文件,它将适用于 1 个文件,而不适用于 4 个文件。我想知道这是否与 S3 之上的 Cloudfront 有关?

你们有人建议如何进行吗?

谢谢, 莫兹

amazon-web-services amazon-s3 amazon-cloudfront pre-signed-url
1个回答
0
投票

您可以使用 CloudFront 源访问控制仅允许从您的 CloudFront 分配访问 S3 存储桶对象,而不能通过任何其他 URL 访问。您可以在这里阅读相关内容 - https://aws.amazon.com/blogs/networking-and-content-delivery/amazon-cloudfront-introduces-origin-access-control-oac/

© www.soinside.com 2019 - 2024. All rights reserved.