2013-08-04 5 views
5

S3 IAM 정책 및 지침을 이해하는 데 문제가 있습니까? 그들의 문서에 머리를 감쌀 수는 없습니까? 나는 그랬다.IAM 액세스를위한 Amazon S3 버킷 및 폴더 정책?

특정 폴더에서 몇 명의 IAM 사용자를 제외시켜야하는 상황이있었습니다. 하나만 제외하고 여러 가지 버킷이 있었으며 솔루션과 예제 솔루션의 대부분은 내가 염려해온만큼 진흙처럼 맑았습니다. 웹을 수색하고 내가 찾은 것을 찾지 못한 후에 나는 명확하고 실제로 도움이 된 (http://blogs.aws.amazon.com/security/post/Tx1P2T3LFXXCNB5/Writing-IAM-policies-Grant-access-to-user-specific-folders-in-an-Amazon-S3-bucke) 리소스를 보았지만 약간의 수정이 필요했고 결과는 아래에 보이는 정책입니다.

이것은 사용자가 버킷 내의 특정 폴더에 액세스 할 수있게하지만 동일한 버킷에있는 다른 나열된 폴더에 액세스하지 못하도록합니다. 폴더의 내용을 볼 수 없도록 차단하거나 다른 버킷이 있다는 것을 보지 못하게 할 수는 없으므로 도움이되지 않습니다. 그러나 사용자는 선택한 버킷/폴더에 액세스 할 수 없습니다.

답변

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"': [ ""ARN : AWS를 : S3 ::: yourbucketname/yourfoldername/* "]'- 대신 목록 이상 모든 예외 – drzaus

+1

그리고 정책을 디버그 (또는 적어도 테스트)하는 좋은 도구는 IAM Policy Simulator입니다. https://policysim.aws.amazon.com/home/index.jsp – drzaus