我喜欢在Internet上为少数外部用户设置Azure少量Azure存储容器。我想基于容器设置共享密钥并与它们共享,以便他们可以将文件上传到我的容器。
我不希望他们拥有Azure帐户和其他权限,除了将文件推送到他们必须使用的容器中。
Azure支持这种情况吗?阅读大量的身份验证和其他可能性,但没有任何线索。
答案 0 :(得分:3)
您应该将共享访问签名(SAS)与存储访问策略一起使用。您永远不应该分发您的存储帐户密钥 - 拥有此密钥的任何人基本上都拥有您的存储帐户的管理员权限。
使用存储访问策略,您可以在存储帐户或容器级别定义策略(访问级别,到期时间)。然后,您可以使用SAS,它基本上是一个引用存储的访问策略的URI,并使用存储帐户访问密钥进行签名。这允许您随时更改或撤消策略。
此处有完整文档:
https://msdn.microsoft.com/en-us/library/azure/ee393343.aspx
答案 1 :(得分:1)
BenV是正确的,您应该非常小心地限制对存储帐户密钥的访问。创建SAS令牌以启用对容器,blob,表和队列等资源的访问权限的委派。 SAS令牌可以是时间限制的(例如 - 2小时)或仅包含权限的子集(读取,插入,删除等)。有关详细信息,请参阅以下两篇文章:Access control overview和SAS tutorial。
答案 2 :(得分:0)
您无需共享azure登录凭据即可将文件上传到容器。
但是,您只能授予对azure存储帐户的访问权限,而不能授予对单个容器的访问权限。为此,您需要共享存储帐户“访问密钥”
与其他用户。然后,他们可以将文件上传到相同存储帐户中的任何容器。
您可以使用BlobTransferUtility将文件上传到存储容器来尝试此操作。