Чтобы иметь возможность публиковать приложение с помощью репозитория бессерверных приложений (serverlessrepo), serverlessrepo должен иметь возможность считывать артефакты S3, загруженные в S3 во время упаковки вашего приложения.
Стандартный способпредоставление этих разрешений, как описано в Публикация приложений , означает предоставление GetObject
для serverlessrepo
политики ресурсов в вашем сегменте, например, в следующем примере, где <your-bucket-name>
будет заменено наназвание вашей корзины S3.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "serverlessrepo.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<your-bucket-name>/*"
}
]
}
Причина, по которой она начала работать, когда вы сделали вашу корзину общедоступной , заключается в том, что таким образом вы сделали объекты в этой корзине, включая артефактыиз мира читабельности упаковки, включая сервис serverlessrepo
.Хотя это работает, как отмечается в документации Списки контроля доступа :
Если вы сделаете ваше хранилище общедоступным (не рекомендуется), любой не прошедший проверку подлинности пользователь может загрузить объекты в хранилище.