在Azure中,您可以使用幾種不同的方法來委派對資源的訪問權限。其中一種方式是通過共用存取簽章(SAS)令牌進行。SAS令牌是一種細粒度控制客戶端如何訪問Azure數據的方式。您可以控制許多內容,例如客戶端可以訪問的資源、客戶端的權限、令牌的有效期等等。
其中一個常見的使用情境是通過使用帳戶SAS來保護Azure存儲賬戶。
在本文中,您將學習如何通過Azure門戶和PowerShell創建Azure SAS令牌。完成後,您將擁有一個SAS令牌,可以將其傳遞給各種客戶端命令,以進行Azure存儲管理的身份驗證和授權。
先決條件
本文中將進行一些不同的實際操作。如果您希望跟著進行,請確保滿足以下先決條件。
- Azure訂閱。如果您尚未擁有,可以申請試用訂閱。
- Azure存儲賬戶。請參考創建存儲賬戶以獲取更多信息。
- Az PowerShell 模組(可選)。僅在使用 PowerShell 生成共用存取簽章(SAS)令牌時需要
- 如果使用 PowerShell 生成 SAS 令牌,需要使用 Windows PowerShell 5.1 或 PowerShell Core 6+
使用 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 Storage服務。其他服務包括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令牌可以以许多不同的方式使用,但决定使用哪种方式取决于您。