Я бы предположил, что пока параметры запроса передаются, но так ли это?
Не совсем. CloudFront можно настроить для прохождения через параметры строки запроса, но он по-прежнему не будет поддерживать этот вариант использования, поскольку CloudFront вставляет заголовок X-Amz-Cf-Id
в запрос, который он отправляет на S3. Поскольку заголовок начинается с X-Amz-*
, S3 требует, чтобы он был подписан ... но это невозможно, поскольку у вас нет возможности узнать его значение.
Идентификатор доступа к источнику CloudFront может быть разрешен для записи в корзину, но это также грязно, потому что тогда любой путь, из которого CloudFront может считываться, также может быть записан - подписанные URL-адреса CloudFront разрешают «доступ» - любой тип доступа CloudFront имеет - и не может быть настроен только для чтения, если CloudFront через OAI разрешено выполнять запись в корзину.
Ускорение передачи - лучшее решение, поскольку оно использует сеть CloudFront для транспорта, но понимает собственные подписанные URL-адреса S3. Ваш аргумент, связанный с желанием использовать доменное имя, а не имя сегмента в функции Lambda, подписывающей URL-адреса, разрушается ... потому что вы не можете подписать URL-адрес S3 в любом событии, фактически не зная имя сегмента.