2013-10-01 23 views
0

基本上我在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]" 
       } 
      } 
     } 
    ] 
} 

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

回答

0

如果下架这对你有2个usecases:

  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 SDK为你的编程语言中的CRUD操作。

希望可以帮到

相关问题