S3 新手,不确定在我的存储桶策略中放入什么



>基本上,我将图像存储在 S3 上的存储桶中。但是我在存储桶策略中放置什么时遇到了麻烦。几乎我想知道我的一个桶下面有什么是

A) 正确B) 安全

目标: 从我的 [应用服务器] 读取/显示图像

{
    "Version": "2008-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "IPDeny",
            "Effect": "Allow",
            "Principal": {
                "Federated": "accounts.google.com"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::submissionthumbs/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "[APPIP]"
                }
            }
        }
    ]
}

我希望能够从存储桶中读取、写入和删除资产。

如果在站立这个权利下,你有 2 个用例:

  1. 从 s3 向用户显示图像
  2. 从您的应用程序上传、删除和更改图像。

1:为此,您需要使您的存储桶或其部分公开可读。
例如,这作为存储桶策略将使存储桶的内容公开可读

{
  "Version": "2008-10-17",
  "Statement": [{
      "Sid": "AllowPublicRead",
      "Effect": "Allow",
      "Principal": { "AWS": "*" },
      "Action": ["s3:GetObject"],
      "Resource": ["arn:aws:s3:::submissionthumbs/*" ]
   }]
}

但是,您可能想看看亚马逊CloudFront,它是为您提供图像的亚马逊CDN。在 CloudFront 中,您可以将 s3 存储桶添加为源。

2:要更新上传等,您应该从"IAM"创建一个新的"用户",并授予他对存储桶的读写访问权限。尽量限制权限。例如

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Sid": "AllowReadWriteApp",
      "Resource": ["arn:aws:s3:::submissionthumbs/*" ]
      "Effect": "Allow"
    }
  ]
}

然后使用您最喜欢的 aws 开发工具包作为您的编程语言进行 CRUD 操作。

希望有帮助

相关内容

  • 没有找到相关文章

最新更新