【问题标题】:How to make a public bucket only accessible from cloudfront without OAI?如何在没有 OAI 的情况下使公共存储桶只能从云端访问?
【发布时间】:2020-06-23 19:59:21
【问题描述】:

我有一个包含一些图像的存储桶。使用以下策略可公开访问存储桶。

{
"Version": "2008-10-17",
"Id": "s3BucketPolicy",
"Statement": [
    {
        "Sid": "1",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::Bucketname/*"
    }
]

}

我还有一个指向同一个存储桶的云端分发。我现在的问题是我的文件可以从云端链接和存储桶链接访问。

CloudfrontLink:www.xxxxxx.xxxx/xxxx BucketLink:www.bucketname/xxx

我的问题是如何仅使用云端公开我的存储桶。我不想要签名的 url 或 cookie。我希望任何拥有 cloudfrontlink 的人都能够访问该图像并阻止任何拥有 bucketlink 的人访问该图像。

【问题讨论】:

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


    【解决方案1】:

    将 S3 存储桶策略主体更改为 CloudFront 分配的 OAI。例如:

    {
        "Version": "2008-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity ABCDABCDABCDAB"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::mybucket/*"
            }
        ]
    }
    

    这将阻止访问 CloudFront 之外的存储桶内容。您在这里不需要签名的 URL。有关详细信息,请参阅documentation

    【讨论】:

    • 有趣的是你拯救我的一天
    猜你喜欢
    • 2021-10-16
    • 2022-01-16
    • 1970-01-01
    • 2015-03-28
    • 2018-06-03
    • 2023-02-08
    • 1970-01-01
    • 2020-12-11
    • 2016-11-16
    相关资源
    最近更新 更多