2013-08-04 20 views
5

S3 IAM Politikaları ve Direktiflerini anlamada bir sorun mu var? Kafanı belgelerinin etrafına dolamıyor musun? Yaptım.Amazon S3 IAM erişimi için Kova ve Klasör İlkesi?

Belirli bir klasördeki birkaç IAM kullanıcısını kilitlemek zorunda kaldığım bir durumla karşılaştım ve birkaçı ve çözümlerinin çoğu ve birkaçı dışındaki birkaç paket, söz konusu olabildiğince çamur kadar açıktı. İnterneti temizledikten ve aradığım şeyi bulamadıktan sonra, açık ve gerçekten yararlı olan bir kaynak (http://blogs.aws.amazon.com/security/post/Tx1P2T3LFXXCNB5/Writing-IAM-policies-Grant-access-to-user-specific-folders-in-an-Amazon-S3-bucke) geldi, ama bazı değişikliklere ihtiyaç duydu ve sonuç aşağıda gördüğünüz politikadır.

Bu, kullanıcının bir kepçe içindeki belirli bir klasöre erişmesine izin verir, ancak aynı kümedeki diğer listelenen klasörlere erişim sağlar. Aklınızda bulundurun, onları klasörün içeriğini görüntülemekten engelleyemezsiniz, ya da başka kovalar olduğunu görmelerini engelleyemezsiniz, bu yardımcı olamaz. Ancak, seçtiğiniz kepçe/klasöre erişemezler.

cevap

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

ayrıca ** NotResource ** yoluyla inkar gerekir - "NotResource" ': [ "" arn: aws: s3 ::: yourbucketname/yourfoldername/*"] '- ziyade liste daha Tüm istisnalar – drzaus

+1

Ve politikaları hata ayıklamak için iyi bir araç (veya en azından bunları sınamak) IAM İlke Simülatörü https://policysim.aws.amazon.com/home/index.jsp – drzaus