В CodeBuild у меня есть 2 проекта. Один для промежуточного сайта, а другой для производственного участка. Когда я компилирую свой сайт и запускаю его через промежуточный проект, он работает нормально. Он успешно синхронизирован с моим S3 Bucket для промежуточной площадки. Однако при попытке скомпилировать и запустить его через производственный проект при выполнении команды sync возвращается ошибка:
фатальная ошибка: произошла ошибка (AccessDenied) при вызове операции ListObjects: доступ запрещен
[Контейнер] 2018/09/11 08:40:33 Команда не была успешно завершена. Aws s3 sync public / s3: // $ S3_BUCKET статус выхода 1
Я немного покопался и думаю, что проблема в моей политике ведра. Я использую CloudFront в качестве CDN поверх моей корзины S3. Я не хочу изменять политику производства рабочих контейнеров, пока не буду абсолютно уверена, что должна. Я беспокоюсь, что это может оказать какое-то влияние на живой сайт.
Вот моя политика для производственного сегмента:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[bucket_name]/*"
},
{
"Sid": "2",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity [access_code]"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[bucket_name]/*"
}
]
}