【问题标题】:Amazon S3 bucket policy for anonymously uploading photos to a bucket用于将照片匿名上传到存储桶的 Amazon S3 存储桶策略
【发布时间】:2011-11-29 12:10:52
【问题描述】:

我计划使用 Amazon S3 让用户从 iPhone 上传照片,然后让他们公开查看。

我无法理解如何在存储桶策略中设置这些安全约束:

  • 每个人都可以阅读每个文件。
  • 每个人都可以上传文件,最大为 256K。
  • 任何人都不能删除任何文件。
  • 任何人都不能修改任何文件。

【问题讨论】:

    标签: amazon-s3


    【解决方案1】:

    好的,我最终解决了这个问题。唯一的问题是您不能在添加文件和更新文件时设置不同的权限。它们都被 s3:PutObject 覆盖。此外,似乎无法限制文件大小。

    {
        "Version": "2008-10-17",
        "Id": "policy",
        "Statement": [
            {
                "Sid": "allow-public-read",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "*"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::bucket/*"
            },
        {
                "Sid": "allow-public-put",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "*"
                },
                "Action": "s3:PutObject",
                "Resource": "arn:aws:s3:::bucket/*"
            }
      ]
    }
    

    【讨论】:

    • 所以没有设置最大尺寸限制的选项?
    【解决方案2】:

    也许像下面这样的东西会起作用,但我不确定你是否可以限制上传大小。

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Principal":"*",
          "Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:GetObjectAcl",
            "s3:PutObjectAcl"
          ],
          "Resource": "arn:aws:s3:::mybucket/*",
          "Condition": {}
        },
        {
          "Effect": "Allow",
          "Action": [
            "s3:ListBucket",
            "s3:GetBucketAcl"
          ],
          "Resource": "arn:aws:s3:::mybucket",
          "Condition": {}
        }
      ]
    }
    

    【讨论】:

    • 为什么要指定 *Acl 动作?
    猜你喜欢
    • 2014-01-28
    • 2011-09-10
    • 2023-02-26
    • 2023-03-31
    • 2016-06-19
    • 2013-01-08
    • 2013-12-21
    • 1970-01-01
    • 2017-10-14
    相关资源
    最近更新 更多