Windows Azure共享访问签名SAS

时间:2014-12-18 11:11:45

标签: azure azure-storage azure-storage-blobs

我正在开发文件共享网站,我有几个关于Windows Azure共享访问签名的问题。

关于我的网站:注册用户可以使用blob存储上传,共享和存储文件。这些文件的大小最多可达2GB,因此我希望上传和下载尽可能快。它' S 同样重要的是,作为主持人的行政管理成本是最低的。用户存储的文件必须是私有的。

我可以使用SAS URI进行上传,但是对于下载,我很害怕。

问题:

1。用户可以在其帐户中存储文件,这些文件只能由该用户访问。如果我在这里使用SAS URI下载,那么这些文件始终可以使用URI URI存在,(如果您知道URI,则不需要您登录,您只需下载该文件)。如果您希望文件是私有的,这是非常可怕的。我知道SAS URI中的签名 是" HMAC使用SHA256算法通过字符串到符号和密钥计算,然后使用Base64编码"进行编码,这样安全吗?即使使用SAS URI进行下载也是可以接受的 文件是私有的?我应该改为在服务器和网站之间传输文件(这样会更安全,但速度会受到影响,管理成本会上升)。

2. 如果我在(服务器,网站,用户)之间流式传输而不是使用SAS(服务器直接发送给用户),那么速度会慢多少以及需要多少钱?

3. 如果我将SAS URI到期时间设置为1小时且下载时间超过1小时,如果在到期时间之前开始下载,下载是否会取消?

4. 如果我的网站在x.azurewebsites.net注册,并且我使用购买的域名,那么我可以访问我的网站www.x.com,是否可以使SAS URI看起来像这样: https://x.com/blobpath代替https://x.blob.core.windows.net/blobpath,(我的猜测不是......)。

对不起文字之墙!

1 个答案:

答案 0 :(得分:3)

  1. 无论是否使用SAS,都无法阻止某人共享URI。因此,从安全角度来看,如果您将到期日期保留在远期,则可以使用SAS编码的URI继续访问URI。从整体安全角度来看:由于您的blob是私有的,因此没有其他人可以在没有SAS编码的URI的情况下访问blob。限制SAS使用:如果用户访问了一个网页(或API)以请求文件访问,而不是发布长期的SAS URI,则可以为较小的时间窗口生成新的SAS URI;此时,最终用户仍然可以直接访问blob而无需通过VM流式传输内容(这只是添加额外的网络跃点以获取URI,以及托管Web / API服务器所需的任何内容) 。还与安全性相关:如果使用存储的访问策略,则可以在发出SAS后修改访问权限,而不是将开始+结束时间直接嵌入SAS URI本身(请参阅{{3有关访问策略的信息)。
  2. 您将承担用于面向URI请求的VM的费用。出站带宽成本与直接使用blob访问相同:您只需为出站带宽付费。如果通过VM,性能将受到许多因素的影响:VM大小,VM资源使用(例如,如果您的VM以100%CPU运行,您可能会看到性能降级),并发访问次数等等。
  3. 是的,如果用户达到到期时间,则该链接不再有效。
  4. 是的,您可以将SAS与存储使用的自定义域名结合使用。有关为存储设置自定义域名的详细信息,请参阅here