2013-08-04 32 views
5

Czy masz problem ze zrozumieniem zasad i dyrektyw S3 IAM? Nie jesteś w stanie objąć głowy swoją dokumentacją? Zrobiłem.Zasady Wiadro i Folder Amazon S3 dla dostępu IAM?

Miałem sytuację, w której musiałem zablokować kilka użytkowników IAM z określonego folderu i kilka wiader, z wyjątkiem jednego, a większość ich rozwiązań i przykładowych rozwiązań była prawie tak czysta jak błoto. Po czyszczenie w internecie, a nie znalezienie tego, czego szukałem natknąłem zasobu (http://blogs.aws.amazon.com/security/post/Tx1P2T3LFXXCNB5/Writing-IAM-policies-Grant-access-to-user-specific-folders-in-an-Amazon-S3-bucke), który był jasny i rzeczywiście pomocne, ale nie potrzebują pewnych modyfikacji, a wynik jest polityka widać poniżej ....

To, co robi, umożliwia użytkownikowi dostęp do określonego folderu w zasobniku, ale DENIES ma dostęp do dowolnego innego folderu wymienionego w tym samym segmencie. Pamiętaj, że nie będziesz w stanie zablokować ich przeglądania zawartości folderu, ani nie zablokujesz ich, widząc, że są inne wiadra, na które nie można pomóc. Nie będą one jednak miały dostępu do wybranego folderu/folderu.

Odpowiedz

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

powinien również być w stanie zaprzeczyć poprzez ** NotResource ** - ' "NotResource": [ "" Arn AWS: s3 ::: yourbucketname/yourfoldername/*”] '- zamiast lista wszystkie wyjątki – drzaus

+1

Dobrym narzędziem do debugowania zasad (lub przynajmniej ich testowania) jest IAM Policy Simulator https://policysim.aws.amazon.com/home/index.jsp – drzaus