仅允许特定用户访问s3文件夹。私有化给其他人

时间:2015-04-25 20:15:34

标签: amazon-web-services amazon-s3 amazon-iam

我试图拒绝整体访问权限,然后对提供的用户进行特定访问,该用户恰好是应用程序。我正在使用AWS服务API执行PUT和GET请求。

我尝试过以下操作,但由于我对所有用户都拒绝GET,因此即使在策略中声明了,也不会让允许的用户执行GET请求。

理想情况下,我希望允许访问特定的群组。我尝试使用以下内容,但存储桶策略不会保存说明“策略中的无效主体 - ” ARN:AWS:IAM :: 222222222222:组/管理员

我还宁愿通过cloudfront服务私有内容,并将s3存储桶设为私有。选项#2 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html

有没有更好的方法来拒绝除指定用户以外的所有人的所有访问权限?

{
"Sid": "force deny access to private folder",
"Effect": "Deny",
"Principal": {
  "AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/apptest/*"

},

{
  "Sid": "allow s3 uplaod and conversion using aws-sdk",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111111111111:user/user_name"
  },
  "Action": [
    "s3:GetObjectVersionTorrent",
    "s3:AbortMultipartUpload",
    "s3:GetObjectAcl",
    "s3:GetObjectTorrent",
    "s3:RestoreObject",
    "s3:GetObjectVersion",
    "s3:DeleteObject",
    "s3:DeleteObjectVersion",
    "s3:GetObject",
    "s3:PutObjectAcl",
    "s3:PutObjectVersionAcl",
    "s3:PutObject",
    "s3:GetObjectVersionAcl"
  ],
  "Resource": "arn:aws:s3:::bucket/apptest/*"}

1 个答案:

答案 0 :(得分:0)

我的钱会在我星期一找到你的代码之前回复你的问题。

停止使用s3策略并改为使用IAM。

http://blogs.aws.amazon.com/security/post/TxPOJBY6FE360K/IAM-policies-and-Bucket-Policies-and-ACLs-Oh-My-Controlling-Access-to-S3-Resourc

如果没有,我会在星期一见到你!