如何生成 SAS 令牌以连接到 Azure 存储帐户 - 文件共享?

时间:2021-06-18 07:38:19

标签: azure azure-storage access-token fileshare

为了连接到 Azure 共享存储(特别是文件共享)以执行从远程到 Azure 存储复制/删除/修改文件等任务,我们需要启用 SAS(共享访问签名)或 Active Directory 设置(然后根据需求分配角色)。

我想使用 SAS 方法实现访问,我尝试从 UI 生成 SAS,尝试通过使用访问密钥(存在内部存储帐户 - 机密和最重要的存储帐户密钥)生成 SAS 都有效。但是 UI 方法在我的情况下不利于,并且除了管理员之外,不能将访问令牌提供给任何人。

那么有没有办法使用 Azure AD 凭据或某些服务生成 SAS,我们可以在其中创建帐户和密码/密钥,并且该帐户可用于通过 curl(REST 调用)创建 SAS 令牌,而不是通过访问生成 SAS密钥(管理密钥)。

2 个答案:

答案 0 :(得分:1)

棘手的部分是让您的用户为文件共享创建 sas 令牌,而不授予他们对整个存储帐户的权限。

您可以使用中间层应用程序来创建 SAS 令牌并允许用户使用该应用程序。例如,可以使用带有 HTTP 触发器的 azure 函数。使用托管服务标识授予 Azure 函数访问存储帐户的权限,并使用 Active Directory 或分发给用户的函数密钥保护对 Azure 函数的访问。

答案 1 :(得分:0)

你可以试试这个方法:

可以使用 Azure AD 凭据或帐户密钥来保护用于访问容器、目录或 Blob 的 SAS 令牌。 Microsoft 建议您尽可能使用 Azure AD 凭据作为安全最佳实践,而不是使用帐户密钥,因为后者更容易被攻破。当您的应用程序设计需要共享访问签名时,请使用 Azure AD 凭据创建用户委派 SAS 以获得更高的安全性。

Create a User delegation SAS

Generate a User Delegation Key

POST https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey