通過前面的文章,相信大家都知道共享訪問簽名(SAS)是一種限制訪問Azure存儲的機制。這是提供對我們的存儲帳戶的訪問的更安全的方法之一。無需訪問密鑰即可訪問對應的Azure存儲帳戶。
常用的SAS有如下兩種類型:
- 服務級別:僅允許訪問以下存儲服務之一中的資源:Blob,隊列,表和文件
- 帳戶級別:允許訪問一項或多項存儲服務中的資源。通過服務級別SAS可用的所有操作也可以通過帳戶級別SAS進行
接下來我們就一起看下如何使用SAS來爆出Azure Storage的安全性
我準備了一個名稱爲“sql12bak“的存儲賬戶:
在存儲賬戶中,準備了一個名稱爲“test“的container並且上傳了一些測試使用的文件:
有了上述的準備工作以後,我們可以返回到存儲賬戶的主頁面下,可以看到有Shared access signature選項卡:
點擊進入Shared access signature以後,我們可以看到有如下幾種類型的設置:
- 允許的服務:我們可以選擇可以爲用戶提供的服務。
- 允許的權限:我們可以選擇要授予用戶哪種權限。
- 開始和結束:我們可以設置可用性時間段。
- 允許的IP地址:我們可以將對存儲帳戶的IP訪問列入白名單。
- 允許的協議:僅允許HTTPS還是允許http和https
在本次示例中我們將配置如下權限:
讀取,列出:以便於用戶讀取並列出賬戶下的文件,但是不能刪除,寫入,添加貨創建資源到存儲賬戶中
同時我們配置僅允許HTTPS協議進行訪問,然後點擊生成連接字符串:
在生成SAS和連接字符串後,複製“ Blob服務SAS URL”:
打開Microsoft Azure Storage Explorer,然後單擊“ 添加帳戶”:
在“連接到Azure存儲”中,選擇“ 使用共享訪問簽名(SAS)URI ”,然後單擊“下一步”:
粘貼複製的URL。粘貼URL時,它將自動更新其他文本框,然後單擊Next。
確認無誤,點擊連接:
在我們準備的存儲帳戶中,我們可以找到“test”容器。在容器內,我們可以看到有多個測試文件:
雙擊test.txt時我可以讀取文件,因爲我們之前已經授予了讀取權限:
但是當我嘗試刪除或上傳文件時,則會提示我們沒有權限: