首页 文章

如何将查询字符串参数添加到Cloudfront?

提问于
浏览
1

我想在我的Cloudfront Url中添加一个查询字符串参数,以便能够在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 回答

  • 2

    签名URL背后的核心概念之一是它们不容易被篡改 - 您无法更改已签名的URL并使其保持有效 .

    CloudFront使用公钥验证签名并确认URL未被篡改 . 如果签名无效,则拒绝该请求 . ...签名的CloudFront URL不能包含额外的查询字符串参数 . 如果在创建查询字符串后将其添加到签名URL,则URL将返回HTTP 403状态 . https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-urls.html

    要将查询字符串参数添加到CloudFront签名URL,您需要在签署URL之前添加它...因为添加将更改签名 .

相关问题