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 的路径。那么您的浏览器只会在路径匹配时发送它们。
我在基于 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 的路径。那么您的浏览器只会在路径匹配时发送它们。