可以通过签名的cookie数据生成cloudfront signed url吗?
我有一个已下载私人内容的签名网址
签名网址可以正常使用。
现在,我尝试生成一个公开私有内容的签名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,它(客户端)是否可以生成已签名的网址并将网址分享给不应该访问它的各方?
答案 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地址)。