为什么 'Missing Key-Pair-Id query parameter or cookie value'
Why 'Missing Key-Pair-Id query parameter or cookie value'
我正在尝试使用已签名的 url 通过 AWS 云端将 S3 存储桶作为私有内容提供。
但是我一直收到这个错误'Missing Key-Pair-Id query parameter or cookie value'
<Error>
<Code>MissingKey</Code>
<Message>
Missing Key-Pair-Id query parameter or cookie value
</Message>
</Error>
这是一个例子url
我已确认签名中没有任何无效字符('+'、'='、'/')。
并且 Key-Pair-Id
显然存在于已签名的 url 中。
我的问题:
1) my-test-key
是使用我的 IAM 创建的。有问题吗?
2) 是否必须在已签名的 url 中提供政策?
3) 我是否需要向 OAI 授予对对象 TestContent/test.html
的任何权限?
编辑
如果我将 Key-Pair-Id 值更改为其他值,我将收到不同的错误消息
<Error>
<Code>InvalidKey</Code>
<Message>Unknown Key</Message>
</Error>
显然 Key-Pair-Id 被 aws cloudfront 接受了。
您必须使用 CloudFront 特定的密钥对。有关如何下载或上传您自己的 public 密钥的更多信息:
http://docs.aws.amazon.com/AWSSecurityCredentials/1.0/AboutAWSCredentials.html#KeyPairs
1) 不应在 IAM 下创建 my-test-key。您需要登录到根帐户并转到您帐户名下的 "My Security Credentials" 菜单。展开 "CloudFront Key Pairs" 并创建新的。下载私钥文件。
2) 在url中包含一个策略是必须的,但它应该是加密的。请参阅 "Creating a Policy Statement for a Signed URL That Uses a Custom Policy" 部分。
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html
3) 不,不应授予任何 public 访问权限。只需要一个存储桶策略,这样您的服务器 url 就可以请求 get 或任何方法。
我正在尝试使用已签名的 url 通过 AWS 云端将 S3 存储桶作为私有内容提供。
但是我一直收到这个错误'Missing Key-Pair-Id query parameter or cookie value'
<Error>
<Code>MissingKey</Code>
<Message>
Missing Key-Pair-Id query parameter or cookie value
</Message>
</Error>
这是一个例子url
我已确认签名中没有任何无效字符('+'、'='、'/')。
并且 Key-Pair-Id
显然存在于已签名的 url 中。
我的问题:
1) my-test-key
是使用我的 IAM 创建的。有问题吗?
2) 是否必须在已签名的 url 中提供政策?
3) 我是否需要向 OAI 授予对对象 TestContent/test.html
的任何权限?
编辑
如果我将 Key-Pair-Id 值更改为其他值,我将收到不同的错误消息
<Error>
<Code>InvalidKey</Code>
<Message>Unknown Key</Message>
</Error>
显然 Key-Pair-Id 被 aws cloudfront 接受了。
您必须使用 CloudFront 特定的密钥对。有关如何下载或上传您自己的 public 密钥的更多信息:
http://docs.aws.amazon.com/AWSSecurityCredentials/1.0/AboutAWSCredentials.html#KeyPairs
1) 不应在 IAM 下创建 my-test-key。您需要登录到根帐户并转到您帐户名下的 "My Security Credentials" 菜单。展开 "CloudFront Key Pairs" 并创建新的。下载私钥文件。
2) 在url中包含一个策略是必须的,但它应该是加密的。请参阅 "Creating a Policy Statement for a Signed URL That Uses a Custom Policy" 部分。 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html
3) 不,不应授予任何 public 访问权限。只需要一个存储桶策略,这样您的服务器 url 就可以请求 get 或任何方法。