У меня есть ведро AWS S3, назовем его «mybucket» и кучей пользователей AWS IAM, один из которых, скажем, «alice», , должен иметь возможность делать что-либо «mybucket», в то время как другие пользователи AWS IAM должны просто иметь возможность перечислять содержимое и получать объекты в «mybucket».Можно использовать политику веток AWS S3 для ограничения разных типов доступа для разных пользователей.
Я настроил политику ковшового типа:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow 'alice' user complete access.",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXXXX:user/alice"
},
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
},
{
"Sid": "Allow all other users read access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXXXX:root"
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}
]
}
С этой политикой, я все еще могу писать в «mybucket». Я даже удалил второй объект-оператор и получил те же результаты.
Это правильный подход к достижению того, чего я хочу достичь? Если да, то в чем проблема с моей ведровой политикой? Если нет, то какой подход следует преследовать?
Большое спасибо!
Какой ты тип партнера? Root? Или другой именованный пользователь вроде 'arn: aws: iam :: XXXXXXXXXXXX: user/allen'? –