Как добавить параметр строки запроса в Cloudfront? - PullRequest
0 голосов
/ 10 декабря 2018

Я хотел бы добавить параметр строки запроса в свой URL-адрес Cloudfront, чтобы иметь возможность получить дополнительную информацию в журнал Cloudfront.У меня есть два дистрибутива, один подписан, а другой не подписан, указывая на два разных сегмента S3 (один со звуком, один с изображениями).Доступ к обоим дистрибутивам работает нормально без добавления строк запроса, но если я добавлю параметр запроса, подобный тестовому ниже:

https://x.cloudfront.net/audio.m4a?li=...62&Expires=1544430879&Signature=...QTQ__&Key-Pair-Id=xxx&test=fail

https://y.cloudfront.net/image.jpg?test=allgood

Первый отказывает (доступ запрещен), но второй работает нормально.Ни одно из распределений не пересылает строку запроса на S3.

В подписанном распространении аудио включено ведение журнала, в то время как в распространении изображения нет ведения журнала.Кроме того, их настройки одинаковы.

Что мне нужно сделать, чтобы распространение звука приняло мой параметр запроса?Спасибо / o

1 Ответ

0 голосов
/ 10 декабря 2018

Одна из основных концепций подписанных URL-адресов заключается в том, что они не подвержены фальсификации - вы не можете изменить подписанный URL-адрес и сохранить его действительным.

CloudFront использует открытый ключ дляпроверьте подпись и подтвердите, что URL не был подделан.Если подпись недействительна, запрос отклоняется.

...

Подписанные URL-адреса CloudFront не могут содержать дополнительные аргументы строки запроса.Если вы добавляете строку запроса к подписанному URL-адресу после его создания, он возвращает статус HTTP 403.

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-urls.html

Чтобы добавить параметр строки запроса в CloudFrontподписанный URL, вам нужно добавить его перед подписью URL ... потому что добавление изменит подпись.

...