我希望获得对blob的引用并为其生成SAS URL。
如何?不公开我的存储帐户密钥?
我尝试了什么?使用SAS(blob容器或存储帐户)获取blob的引用。 我的推荐人:https://docs.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1?toc=%2fazure%2fstorage%2fblobs%2ftoc.json
我看到的例外情况:“除非使用帐户密钥凭据,否则无法创建共享访问签名”
但我(显然)不想公开我的帐户密钥!这甚至可能吗?如果没有,还有其他方法吗?
答案 0 :(得分:5)
简而言之:不,除了使用其中一个键之外别无他法。您需要其中一个访问密钥才能创建SAS令牌。这就是为什么你不能用现有的SAS令牌做到这一点:
签名是使用SHA256算法通过字符串到符号和密钥计算的HMAC,然后使用Base64编码进行编码。
这意味着作为SAS令牌一部分的签名是计算值。部分计算基于(其中一个)密钥,因为它用于计算不可逆哈希。此哈希不可逆的事实意味着您无法检索用于计算哈希的访问密钥。因此,您无法使用SAS令牌创建另一个SAS令牌:您没有可用于计算签名的访问密钥。
创建存储帐户时,您将获得两个存储访问密钥,这些密钥可完全控制存储帐户内容。这些密钥是 admin 凭据。