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

Cloudfront signed cookies and simultaneous access to multiple paths in s3 bucket

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

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

这是我的问题:

用户使用我的网络应用访问他在 s3://mys3/user1 中的内容。他打开另一个浏览器实例以访问他在 s3://mys3/buddy 中的同伴的内容。第二个浏览器将下载一组新的签名 cookie 并覆盖 user1 的那些。现在,如果他切换回他的第一个 window,他将遇到 'Access denied' 问题。

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

您不能在策略中指定多个路径。如果您的文件夹结构与您可以使用的通配符值不匹配,您可能需要为每个路径生成签名 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