【发布时间】:2016-03-12 06:56:00
【问题描述】:
我正在尝试签署一个 URL 以通过 CloudFront 上传到 S3。
- S3 具有存储桶策略设置
- CloudFront 正在使用自定义域/证书
- CloudFront 配置为转发标头
- GET 的签名 URL 工作正常
如果我使用策略签署 URL:
https://staging.*SNIP*.io/341-a25e82ef-8210-49bc-9fbd-b3f0c4807080-original.jpg?Policy=*SNIP*&Signature=*SNIP*&Key-Pair-Id=*SNIP*
或者没有策略但使用 Expires
https://staging.*SNIP*.io/343-aa3e9a57-4d85-4c90-bf05-3d6fdac04a49-original.jpg?Expires=1457765627&Signature=*SNIP*&Key-Pair-Id=*SNIP*
我一致得到:
<Error>
<Code>AccessDenied</Code>
<Message>Query-string authentication requires the Signature, Expires and AWSAccessKeyId parameters</Message>
<RequestId>*snip*</RequestId>
<HostId>*snip*</HostId>
</Error>
我根据各种不同的 SO 答案推出了自己的签名。我尝试使用 AWS SDK 的内置签名。我已经销毁并重新创建了 CloudFront 分配。
我已经完全没有想法可以尝试了。
我可能已经查看了关于 SO 上关于使用 cloudfront 签名的 URL 的每一个问题,但没有任何帮助。我无法克服这个 403 错误。
编辑: 似乎 AWS 不知道它为什么不工作,一切似乎都配置正确。
【问题讨论】:
标签: c# amazon-cloudfront aws-sdk