2012-01-31 20 views
9

Próbuję ustalić podstawowy zestaw uprawnień dla użytkownika IAM/klucza, aby mieć dostęp do tylko jednego zasobnika w S3 - tylko do odczytu/zapisu dla pojedynczego zasobnika .Podstawowe uprawnienia AWS dla IAM dla wiadra S3

Jaki zestaw uprawnień to minimum wymagane do tego działania? Mam wszystkie opcje wybrane w generatorze strategii IAM dla S3, wszystkie uprawnienia włączone na wiadrze z wyjątkiem CreateBucket i DeleteBucket. Stworzyłem również zestaw kluczy specyficznych dla tego użytkownika.

Gdy próbuję uzyskać dostęp do zasobnika z tymi poświadczeniami, pojawia się problem z wyświetlaniem segmentów, mimo że włączona jest właściwość ListAllMyBuckets.

Ktoś ma jakieś doświadczenie w konfigurowaniu podstawowej konfiguracji zasobnika? Wygląda na to, że będzie dość powszechne ...

+1

Dlaczego chcesz do listy wiaderkach, w pierwszej kolejności, gdy użytkownik IAM ma dostęp _a pojedynczy kubeł w S3_ tylko? –

+1

Jeśli nie zarejestrujesz nazwy zasobnika, do której użytkownik ma dostęp, wtedy ListAllMyBuckets jest OK - wtedy kod może określić, które wiadra użytkownik może faktycznie wejść. To zależy od tego, "jak prywatne" mają być nazwy wiaderek. Ale ponieważ nazwy wiaderek są w zasadzie w domenie publicznej (można pingować amazon, aby dowiedzieć się, czy jest używana jakaś nazwa zasobu), tylko nazwy losowych losowych ciągów znaków są wszędzie blisko prywatnych, a nawet to jest ulotne, ponieważ nazwy z każdym wygenerowanym adresem URL, itd. –

+0

Steffen, nie chcę konta na ListAllBuckets, ale nie działa z permsami, których potrzebuję, więc stopniowo włączam więcej uprawnień, aby sprawdzić, czy jest jakiś wyższy poziom odmowy dostępu. na... – colemanm

Odpowiedz

12

The Example Policies for Amazon S3 pokrycie różnych przypadków użycia podobnych lub pokrewnych do Ciebie - konkretnie można prawdopodobnie chcą połączyć Przykład 1: Pozwól każdemu użytkownikowi posiada katalog domowy w Amazon S3 z Przykład 2: Zezwól użytkownikowi na wylistowanie tylko obiektów w swoim katalogu domowym w korporacyjnym pojemniku - wystarczy zmienić wartość Resource, aby kierować reklamy na katalog główny zasobnika, np. Zamień /home/bob/* na *.

Uwaga Przykład 2 ułatwia ListBucket, który jest operation on a bucket że Zwraca informacje o niektórych elementów w wiaderku, natomiast ListAllMyBuckets jest operation on the service że zwraca listę wszystkich wiader posiadanych przez nadawcę zgłoszenie, prawdopodobnie nie dotyczy twojego przypadku użycia (zobacz mój komentarz dotyczący wyjaśnienia tego ostatniego).

0

Pozwoli to, aby wymienić wszystkie wiadra zakładając, że nie negując go gdzieś indziej (jestem 99% pewien zaprzeczyć oświadczenia ocenia najpierw, kolejność nie ma znaczenia z polityką IAM):

{ 
     "Effect": "Allow", 
     "Action": [ 
      "s3:ListAllMyBuckets" 
     ], 
     "Resource": "*" 
    } 

pozwolenie cokolwiek cię dla swojego wiadra (nie zapomnij o/* również):

{ 
     "Effect": "Allow", 
     "Action": [ 
      "s3:<Put your actions here; cherry pick from the AWS documentation>" 
     ], 
     "Resource": [ 
      "arn:aws:s3:::<Bucket name here>", 
      "arn:aws:s3:::<Bucket name here>/*" 
     ] 
    }