访问密钥和共享访问签名之间的区别

Different between access key and Shared Access Signature

能否请您提供SAS和Access Key的区别以及何时使用它们?

感谢您的帮助。

假设您有一个允许用户上传文件的网站。您可以创建一个 api 来获取文件并将其放入存储帐户,或者您可以允许客户端将文件直接上传到存储帐户。为了做到这一点,api 生成并 returns 一个 SAS 令牌,允许在短时间内对存储帐户进行写访问。这样 api 就不需要带宽来满足大文件上传的需要,并且对存储帐户的访问是基于 principle of least privilege

另一种情况是在有限的时间内方便下载文件。例如,生成费用报告并可供下载。 api 为存储帐户生成一个 url,其中包括一个 SAS 令牌,该令牌在短时间内授予对特定 blob 的读取权限。

应避免使用访问密钥,使用 managed identities 这样就不需要必须以某种方式放入配置中并需要保护的访问密钥。

By using managed identities for Azure resources together with Azure AD authentication, you can avoid storing credentials with your applications that run in the cloud.

现在,如果您有 api 或 azure 函数或任何需要访问存储帐户的后端进程,您可以使用托管标识并根据最小特权原则分配该标识权限。