Nie mogę ustalić, jak ustawić zasady dotyczące zasobnika, aby osiągnąć to, co chcę. Każda pomoc będzie doceniona! Moje zasady są pożądane:Jak ustawić zasady wiaderek S3 na (głównie) prywatne, gdy element acl obiektu jest publiczny?
- użytkowników na moim koncie mają dostęp za pośrednictwem polityk użytkowników, więc nie powinno być potrzeby dostępu specjalnie przyznanego im
- anonimowych użytkowników (lub ktokolwiek poza moim rachunku AWS) nie powinien mieć dostępu, z wyjątkiem :
- jeden folder/temp_public powinien mieć publiczny obiekt GetObject (tzn. Jeśli znasz adres URL, z którego można pobrać plik)
- te zasady powinny zastąpić listę ACL obiektu w plikach w zasobniku, ponieważ listy ACL obiektów są czasami ustawione do publicznego czytania.
Powodem tworzenia polityki wiadro jest to, że wiele z tych obiektów w wiadrze z publicznego czytać ACL (przypadkowo ustawiony, gdy pliki zostały przesłane, ale może się zdarzyć w przyszłości, więc chcę, aby zastąpić ACL obiektu z łyżką ACL).
Ignorując folder temp_public, mam nadzieję, że może po prostu to zrobić:
{
"Version": "2008-10-17",
"Id": "Policy123456789",
"Statement": [
{
"Sid": "Stmt1",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
(gdzie 123456789012
jest mój numer konta AWS), ale pojawia się odmowa dostępu dla wszystkich użytkowników z tej polityki wiadra. Chyba NotPrincipal nie działa w tym przypadku?
dzięki za wszelkie sugestie!
Rory
UPDATE: cross-pisał here na forach AWS i odpowiedzi!