2013-08-04 53 views
5

您对理解S3 IAM策略和指令有困难吗?无法将自己的头围绕在他们的文档中?我做到了。Amazon S3针对IAM访问的存储区和文件夹策略?

我有一种情况,我必须从一个特定的文件夹中锁定几个IAM用户,除了一个以外,它们的大部分解决方案和示例解决方案都像泥浆一样清晰。网上淘并没有找到什么,我一直在寻找我来到一个资源 (http://blogs.aws.amazon.com/security/post/Tx1P2T3LFXXCNB5/Writing-IAM-policies-Grant-access-to-user-specific-folders-in-an-Amazon-S3-bucke)这是明确的,实际上有帮助的,但它确实需要一些修改,并且结果是你看到下面的政策....之后

它所做的是允许用户访问存储桶中的特定文件夹,但DENIES可以访问同一存储桶中的任何其他列出的文件夹。请注意,你无法阻止他们查看文件夹的内容,也不会阻止他们看到有其他存储桶,这是无法帮助的。但是,他们无法访问您选择的存储桶/文件夹。

回答

7
{ 
"Version":"2012-10-17", 
"Statement": [ 
    { 
    "Sid": "AllowUserToSeeBucketListInTheConsole", 
    "Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"], 
    "Effect": "Allow", 
    "Resource": ["arn:aws:s3:::*"] 
    }, 
    { 
    "Sid": "AllowRootAndHomeListingOfCompanyBucket", 
    "Action": ["s3:ListBucket"], 
    "Effect": "Allow", 
    "Resource": ["arn:aws:s3:::yourbucketname"], 
    "Condition":{"StringEquals":{"s3:prefix":["","yourfoldername/"],"s3:delimiter":["/"]}} 
    }, 
    { 
    "Sid": "AllowListingOfUserFolder", 
    "Action": ["s3:ListBucket"], 
    "Effect": "Allow", 
    "Resource": ["arn:aws:s3:::yourbucketname"], 
    "Condition":{"StringLike":{"s3:prefix":["yourfoldername/*"]}} 
    }, 
    { 
    "Sid": "AllowAllS3ActionsInUserFolder", 
    "Effect": "Allow", 
    "Action": ["s3:GetObject"], 
    "Resource": ["arn:aws:s3:::yourbucketname/yourfoldername/*"] 
    }, 
{ 
     "Action": [ 
     "s3:*" 
     ], 
     "Sid": "Stmt1375581921000", 
     "Resource": [ 
"arn:aws:s3:::yourbucketname/anotherfolder1/*", 
"arn:aws:s3:::yourbucketname/anotherfolder2/*", 
"arn:aws:s3:::yourbucketname/anotherfolder3/*", 
"arn:aws:s3:::yourbucketname/anotherfolder4/*" 
     ], 
     "Effect": "Deny" 
    } 
] 
} 
+1

你也应该能够通过** ** NotResource否认 - ' “NotResource”: “” 阿尔恩:AWS:S3 ::: yourbucketname/yourfoldername/*”]' - 而不是列表所有例外 – drzaus

+1

调试策略(或至少测试它们)的一个好工具是IAM策略模拟器https://policysim.aws.amazon.com/home/index.jsp – drzaus

相关问题