Итак, вот ситуация :
- У меня есть Bucket B. Он принадлежит учетной записи A_1
- Это ведение имеет открытый доступ на чтение для всего(через политику сегментов И через ACL. Я ставлю оба только для того, чтобы попробовать, без результата)
- В этот сегмент можно записать учетную запись A_2, только с ACL * 1010 с полным контролем владельца корзины*
- Корзина настроена для обслуживания объектов через Cloudfront
-> Файлы, загруженные A_2, правильно дают полный контроль A_1 при просмотре в консоли S3
НО - Cloudfront получает отказ в доступе к файлам, принадлежащим A_2 (хорошо работает с файлами, принадлежащими A_1) - используя веб-URL S3, я могу получить доступ к файлам, принадлежащим A_1 (общедоступный ACL на корзине), но не к принадлежащим A_2
ВОПРОС : Почему политика корзины не применяется к файлам, принадлежащим A_2, для которых A_1 имеет FULL_CONTROL?
ПРИМЕЧАНИЕ - я смог«обойти» проблему путем создания идентификатора доступадля моего облачного фронта и просить A_2 специально предоставить чтение канонического идентификатора учетной записи облачного фронта, но это громоздко.
Политика Bucket:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Grant read access to the world",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my_bucket/*"
},
{
"Sid": "Grant write access to other account user",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::8566072xxxxx:root"
},
"Action": [
"s3:ListBucket",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::my_bucket/*",
"arn:aws:s3:::my_bucket"
]
}
]
}