Я боролся с этим вопросом в течение недели. Вот подробности:
Конечная точка Api для получения cook ie: api.example.com Конечная точка для контента через Cloudfront: media.example.com
Генерируйте cook ie через конечную точку API с политикой:
{"Statement":[{"Resource":"https://*","Condition":{"DateLessThan":{"AWS:EpochTime":1579735085}}}]}
Вот файлы cookie, которые создаются (с соответствующими параметрами):
'CloudFront-Policy=<base64 policy here>; Domain=.example.com; Expires=Wed Jan 22 2020 15:18:04 GMT-0800 (Pacific Standard Time); Max-Age=3600; Path=/; HttpOnly; Secure;'
'CloudFront-Key-Pair-Id=<key pair id here>; Domain=.example.com; Expires=Wed Jan 22 2020 15:18:04 GMT-0800 (Pacific Standard Time); Max-Age=3600; Path=/; HttpOnly; Secure;'
'CloudFront-Signature=<long signatuer here>; Domain=.example.com; Expires=Wed Jan 22 2020 15:18:04 GMT-0800 (Pacific Standard Time); Max-Age=3600; Path=/; HttpOnly; Secure;'
NOW, если я беру значения выше и создаю URL, я правильно получаю изображение:
https://media.example.com/filename.jpg?Policy=<policy value above>&Signature=<signature above>&Key-Pair-Id=<key pair id above>
НО, если я использую вышеупомянутые куки в почтальоне или браузере, я получаю сообщение «Отказано в доступе»:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>xxxxCDAEA989698</RequestId
<HostId>xxxxxKYd8MIvZu6kC4zJ0lfvd9Ou8To4Ymi/xFODGHedkRFdkBm0ZxiYfd1D++AOibMLhS2wjfo=</HostId>
</Error>
Изначально я думал, что это проблема домена, но после некоторых исследований я считаю, что моя конфигурация и политика повара ie должны работать.
Любая идея / объяснение приветствуются.