有几种不同的方法可以在Azure中委派对资源的访问权限。其中一种方法是通过Shared Access Signature (SAS)令牌。SAS令牌是一种精细控制客户端如何访问Azure数据的方式。您可以控制许多方面,例如客户端可以访问哪些资源,客户端具有哪些权限,令牌有效期多长等等。
SAS令牌的一个常见用途是通过使用account SAS来保护Azure存储账户。
在本文中,您将学习如何通过Azure门户和PowerShell创建Azure SAS令牌。完成后,您将获得一个SAS令牌,然后可以将其传递给各种客户端命令,以进行Azure存储管理的身份验证和授权。
先决条件
在本文中,您将亲自学习如何执行一些不同的任务。如果您想跟着操作,请确保您已满足以下先决条件。
- Azure订阅。如果您还没有,请申请试用订阅。
- Azure存储账户。请参考创建存储账户以获取更多信息。
- Az PowerShell 模块(可选)。只有在使用 PowerShell 生成 Shared Access Signature 令牌时才需要此模块
- Windows PowerShell 5.1 或 PowerShell Core 6+(如果通过 PowerShell 生成 SAS 令牌)
使用 Azure 门户生成 SAS 令牌
生成 SAS 令牌的最直接方法是使用Azure 门户。通过使用 Azure 门户,您可以以图形方式导航各种选项。
要通过 Azure 门户创建令牌,首先导航到要访问的存储帐户,在设置部分下点击共享访问签名。您可以在下面看到这可能是什么样子的示例。
可以授予许多权限以生成 SAS 令牌并设置开始/结束时间。对于本文,您将分配完全权限并保留默认的过期时间为八小时。如果您想了解每个权限的详细信息和解释,请查看Microsoft 文档。
保留所有默认复选框,然后点击生成 SAS 和连接字符串按钮,如下所示。

令牌生成后,您将在生成 SAS 和连接字符串按钮下方的框中看到其列表,如下所示。

此时,您可以复制 SAS 令牌并将其值粘贴到需要使用它的任何地方。
使用 PowerShell 生成 SAS 令牌
为了避免必须登录 Azure 门户,或者,如果您一次为多个存储账户生成 SAS 令牌,您可以使用 PowerShell。PowerShell 使用 Azure 的 REST API 来调用 Azure 生成令牌。
要通过 PowerShell 创建 SAS 令牌,首先打开 PowerShell 控制台并使用 Connect-AzAccount 进行身份验证。一旦验证成功,然后找到您想要访问的存储账户。下面是一个查询名为 demo_account 的存储账户所在的 demo_rg 资源组的示例。使用 $context
的值,然后将其传递给生成令牌的命令。
找到存储账户上下文后,使用 New-AzStorageAccountSASToken
命令创建 SAS 令牌。下面的示例显示生成一个 SAS 令牌,该令牌赋予存储账户和所有子组件完全权限。
通过
New-AzStorageAccountSASToken
创建 SAS 令牌时,该令牌将在一小时内有效。如果您希望延长此时间,可以使用ExpiryTime
参数。
限制 SAS 令牌权限
使用 SAS 令牌的一个原因是为其他方提供有限时间和权限集的访问权限。上一个示例生成了具有完全访问权限的 SAS 令牌。赋予完全访问权限并不总是最佳方案。
参数Service
定义了对一个或多个服务的访问。例如,使用blob
只允许访问Azure Blob 存储服务。其他服务包括File、Table和Queue。
参数ResourceType
限制对特定类型资源的访问。例如,将container
作为值允许仅访问容器资源。其他有效的资源类型为Service和Object。
参数Permission
允许您定义允许的权限。根据需要指定一个或多个权限。值rwd
等同于赋予读取、写入和删除权限。其他有效的权限值为(l)ist、(a)dd、(u)pdate和(p)rocess。
使用 SAS 令牌
生成的 SAS 令牌有多种用法。其中一种最常见的用法是在存储上下文中使用。存储上下文是一种“打包”凭据的方式,然后将其传递给各种命令。
A common way to use the SAS token is via PowerShell. Using the New-AzStorageContext
command that’s part of the Az PowerShell module. You can see an example below using the SAS token to upload a file to an existing storage container.
概要
创建 SAS 令牌可以通过几种不同的方式完成。在本文中,您学习了其中几种最常见的方式。一旦创建,SAS 令牌可以以许多不同的方式使用,但决定使用哪种方式取决于您。