【问题标题】:How to have both public access and private access in AWS s3?如何在 AWS s3 中同时拥有公共访问和私有访问?
【发布时间】:2021-09-01 03:30:29
【问题描述】:

我有一个s3 bucket,它有两个键(文件夹或者我不知道应该如何调用它们):publicprivate。每个人都应该可以访问公钥,因为只有头像和一些指导文件。现在在私人目录中,我有一些敏感文档,这些文档只能由我的PHP API 生成的signed URLs 访问。

我创建了一个Cloudfront 分布和行为。

来源域名 = myproject-development.s3.amazonaws.com

路径模式是Default (*)

看在上帝的份上,我无法弄清楚该政策:目前所有内容都对公众开放,我知道这是因为声明 Sid 2

我当前的存储桶政策:

{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
    {
        "Sid": "1",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXX"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::myproject-development/public/*",
        "Condition": {
            "StringEquals": {
                "s3:ExistingObjectTag/public": "yes"
            }
        }
    },
    {
        "Sid": "2",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXX"
        },
        "Action": "s3:GetObject",
        "Resource": [
            "arn:aws:s3:::myproject-development/private/*",
            "arn:aws:s3:::myproject-development/private"
        ]
    }
]

}

我的存储桶设置开启了Block all public access(一切都是绿色的)。

如果我删除 Sid 2,那么私有中的所有内容都将被隐藏,但它甚至无法与签名的 url 一起使用,访问总是被拒绝!

我需要如何修改我的政策以使 /private 内容只允许使用签名的 url?

【问题讨论】:

  • 您不需要 Sid 2。我猜,签名的 url 权限取决于您的实例角色的权限。实例角色是否具有 s3 权限?
  • @Marcin 您是指 IAM 用户角色吗?该角色有权生成签名 URL。但是我想通过 cloudfront 创建签名的 url 并与我的 cloudfront url 共享它,而不是通过我的 s3 存储桶 ARN
  • 哦,我明白了。我对 s3 预签名的 url 感到困惑。
  • 我认为最简单/最干净的解决方案是简单地使用 2 个 S3 存储桶并将它们作为来源添加到您的 CF 分配后面。如果这不是一个选项,您始终可以完全锁定您的 S3 存储桶并添加 2 个 CF 行为(一个受限,另一个公开)。如果您需要更多信息,请告诉我。

标签: amazon-s3 amazon-cloudformation


【解决方案1】:

我解决了。原来它需要使用CloudFront origin behavior 来完成。

我为路径 /private 创建了一个新的原点,并在为其创建了 cache behavior 之后,我添加了这里显示的这个子句:

这样我就可以阻止对该文件夹的公共访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2011-01-31
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 2021-04-28
    相关资源
    最近更新 更多