我正在尝试使用签名的 url 通过 AWS cloudfront 将 S3 存储桶作为私有(private)内容提供服务。

但是我不断收到此错误“缺少 key 对 ID 查询参数或 cookie 值”

<Error> 
<Code>MissingKey</Code> 
<Message> 
Missing Key-Pair-Id query parameter or cookie value 
</Message> 
</Error> 

这是一个示例网址

http://test.example.com/TestContent/test.html?Expires=1431195459&Signature=DSk8HwFScg6EFJla1p8UHB9EM28zXB7k5AwrXZjzByzdlTSMCG-md6MvUFT~pneaahfPbCcvxNWqZNYu5Dc1IE1JrjOhFP52APFsVmJDlPmqoQzOoCECclEsSvMpTPgva8L4TazDLtI6E5EuV632y76ZA8XoT2KHhzcj7ux9XhvQ6wyiiQxK9rb13sZJ~Cm~4qI-028dd6UkEIu1tUIM~SFh72wYjik7v8sfz2z5T5bZGZJrrfryO0zA9wpkabFA8JkrmfuBm55XWqcVk5OSOkrNn7iyuXwmrEeBJxufaiWE84UbfS8He12fh6~-seTr7UnOCtC4mBf4qlGsxCzKiw__&Key-Pair-Id=my-test-key

我已验证签名中没有任何无效字符('+'、'='、'/')。

Key-Pair-Id明显存在于签名的网址中。

我的问题:

1) my-test-key是使用我的 IAM 创建的。这是个问题吗?

2) 是否必须在签名的网址中提供政策?

3) 我需要授予对象 TestContent/test.html 的任何权限吗?到 OAI?

编辑

如果我将 Key-Pair-Id 值更改为其他值,我将收到不同的错误消息
<Error> 
<Code>InvalidKey</Code> 
<Message>Unknown Key</Message> 
</Error> 

所以显然 Key-Pair-Id 被 aws cloudfront 接受。

请您参考如下方法:


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!