Cloudfront 签名 cookie 并同时访问 s3 存储桶中的多个路径

Ant*_*ong 6 cookies amazon-s3 amazon-cloudfront

我在基于 Web 的应用程序中使用签名 cookie 来限制通过 Cloudfront 访问我的 S3 存储桶中的内容

例如,用户可以访问s3://mys3/folder1via中的内容http://mycf.example.com/folder1。他将无法访问同一级别其他文件夹中的内容。

这是我的问题:

用户使用我的网络应用程序访问他的内容s3://mys3/user1。他打开另一个浏览器实例来访问他的同级的内容s3://mys3/buddy。第二个浏览器将下载一组新的签名 cookie 并覆盖user1. 现在,如果他切换回第一个窗口,他将遇到“访问被拒绝”问题。

避免此问题的最佳做法是什么?例如,是否可以在策略的 url 中指定多个路径?

imp*_*lix 8

您不能在策略中指定多个路径。如果您的文件夹结构与您可以使用的通配符值不匹配,您可能需要为每个路径生成签名 cookie 并相应地确定它们的范围。

您可以指定 cookie 适用于哪个路径。当您设置 Cookie 时,请为第一个用户指定 /user1 的路径,为第二个用户指定 /user2 的路径。然后您的浏览器只会在路径匹配时发送它们。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-canned-policy.html#private-content-canned-policy-signature-cookies

  • 我想你误解了我的问题。User1 需要**同时**访问`/user1`和`/user2`。据我了解,策略中的路径只能是“/user1”或“/user2”。 (2认同)
  • @AnthonyKong 不,他理解你的问题,他的答案可能是正确的。如果您在cookie中指定不同的路径,则可以同时保留两组cookie,从而允许同时访问不同的存储桶。[请参阅此相关的 cookie 问题。](/sf/ask/283941451/) (2认同)