Azure共享访问签名是否意味着任何人都可以访问我的blob?

Bri*_*anB 3 .net cloud azure database-backups

我正在编写备份服务来备份SQL数据库并将其保存在云存储中.我实际上已经在Amazon S3上实现了这个功能,但是当应用程序将分发给客户时,我无法将API密钥与应用程序一起存储.我考虑使用网络服务提供密钥,但目前这不是我最好的选择(因为它仍然存在密钥被盗的可能性.)

因此,我正在研究Windows Azure,即Blob服务,并看到他们拥有这些共享访问签名,可用于提供对云中资源的访问.您还可以使用签名将blob放入云中.但通过MSDN文档阅读,我不禁认为这是一个不安全的系统.知道的任何人1.我的帐户的容器的确切名称和2.如何形成签名将能够访问对象.使用此签名时,您不需要密钥.至少这是我对阅读文档的印象.

最后是我的问题.我对Azure的共享访问签名的评估是否正确,如果没有,为什么?任何人都可以提出另一种方法来做我想要完成的事情.

use*_*559 6

共享访问签名可以作用于特定容器或特定blob.然后,他们可以指定他们给出的权限(读取,写入,列出blob),并且可以指定它们有效的时间长度.

创建 SAS 的唯一方法是拥有存储密钥,但拥有SAS的任何人都可以使用它来执行它允许的操作.

听起来你想让所有的客户都写下 blob而不是读取它们?如果是这样,只指定写权限的SAS应该可以解决问题.

但我想你也想限制(或计量)个别客户的使用量?如果是这样,您可能需要服务器上的某些活动(Web服务?)授权每次使用并生成特定的短期SAS以允许该操作.然后,您可以跟踪和计费每次使用.