可以通过签名的cookie数据生成cloudfront signed url吗?

时间:2015-11-16 20:45:16

标签: amazon-web-services cookies cdn amazon-cloudfront amazon-signed-cookie

可以通过签名的cookie数据生成cloudfront signed url吗?

我有一个已下载私人内容的签名网址

http://1234.cloudfront.net/myfile.txt?response-content-disposition=attachment%3Bfilename%3Dfoobar.json&Expires=1510111000&Signature=someRandomSignature&Key-Pair-Id=MY-KEY-PAIR

签名网址可以正常使用。

现在,我尝试生成一个公开私有内容的签名cookie方式,因此我将以下cookie添加到我的响应对象中(在Spring / JAVA中):

Cookie expiresCookie = new Cookie("CloudFront-Expires", "1510111000");
Cookie signatureCookie = new Cookie("CloudFront-Signature", "someRandomSignature");
Cookie keyPairCookie = new Cookie("CloudFront-Key-Pair-Id", "MY-KEY-PAIR");

一旦客户获得这些cookie,它(客户端)是否可以生成已签名的网址并将网址分享给不应该访问它的各方?

enter image description here

1 个答案:

答案 0 :(得分:2)

虽然这当然是可行的,但CloudFront签名的URL / cookie机制允许服务器生成签名,使用IpAddress每个CloudFront developer documentation"IPv4 IP address/32"策略字段锁定来自某些IP地址的客户端的访问权限:

  

IpAddress(可选)

     

发出GET请求的客户端的IP地址。请注意以下事项:

     
      
  • 要允许任何IP地址访问该对象,请省略IpAddress   参数。
  •   
  • 您可以指定一个IP地址或一个IP地址范围。例如,如果客户端的IP地址位于两个不同的范围之一,则无法将策略设置为允许访问。
  •   
  • 要允许从单个IP地址进行访问,请指定:10.52.176.0/24
  •   
  • 您必须以标准IPv4 CIDR格式指定IP地址范围(例如,   IpAddress)。 [...]
  •   

如果服务器生成了设置了{{1}}的签名URL或cookie,则只允许其他方访问CloudFront上的内容(如果它们来自匹配的IP地址)。