Я настроил дистрибутив CloudFront и функцию Lambda @ Edge, как описано в этой статье:
https://aws.amazon.com/blogs/networking-and-content-delivery/resizing-images-with-amazon-cloudfront-lambdaedge-aws-cdn-blog/
Теперь я хочу ограничить корзину S3 как частную и разрешать толькоCloudFront распределения доступа к ведру.Я добавил Origin Access Identity в конфигурацию Origin S3 и обновил политику корзины, чтобы разрешить этому OAI GetObject доступ к корзине.Я удалил оператор из политики корзины, который сделал его общедоступным, и изменил ACL на частный.Если я не включаю какие-либо параметры строки запроса в запрос к CloudFront, изображение возвращается, как ожидается, и ссылка S3 не доступна напрямую.
Однако решение полагается на передачу параметров запроса для изменения размера изображений.на лету (через 2 функции Lambda @ Edge) и после того, как корзина стала приватной, я получаю ответ «Отказано в доступе 403» от CloudFront.
Я попытался отключить пересылку строк запроса, которая не имела никакого эффекта.Я также попытался только обновить политику корзины, чтобы удалить публичный доступ на чтение и оставить ACL как PublicRead, и это сработало.Таким образом, это заставляет меня думать, что что-то не так с ACL, установленным в private
Мне было интересно, возможно, S3 возвращает 403 вместо 404, когда корзина становится приватной?Но тогда я не понимаю, почему добавление параметра строки запроса в белый список дает другой результат запроса к тому же изображению без строки запроса
Обновление
Примеррабочий URL: http://<my_distro>.cloudfront.net/images/house.jpeg
Пример неработающего URL: http://<my_distro>.cloudfront.net/images/house.jpeg?size=1200