簡體   English   中英

az storage blob upload-batch 的最低權限

[英]Least privilege permissions for az storage blob upload-batch

我們的 CI 管道需要將一些文件備份到 Azure Blob 存儲。 我像這樣使用 Azure CLI: az storage blob upload-batch -s. -d container/directory --account-name myaccount az storage blob upload-batch -s. -d container/directory --account-name myaccount

在授予服務主要貢獻者訪問權限時,它按預期工作。 但是,我想鎖定權限,以便允許服務主體添加文件,但不能刪除,例如。 這需要什么權限?

我創建了一個自定義角色,賦予它與Storage Blob Data Contributor相同的權限,但不包括刪除權限。 這(以及直接使用Storage Blob Data Contributor角色)因Storage account... not found失敗。 好的,然后我繼續向 blob 服務添加更多讀取權限。 還不夠,現在我正處於它想要執行Microsoft.Storage/storageAccounts/listKeys/action的地步。 但是,如果我授予它訪問存儲密鑰的權限,那又有什么意義呢? 使用存儲密鑰,SP 將擁有對該帳戶的完全訪問權限,我首先要避免這種情況。 為什么az storage blob upload-batch請求密鑰,我可以防止這種情況發生嗎?

我創建了一個自定義角色,賦予它與 Storage Blob Data Contributor 相同的權限,但不包括刪除權限。 這(以及直接使用 Storage Blob Data Contributor 角色)因存儲帳戶失敗...未找到。

我也可以重現你的問題,實際上你所做的會起作用。 訣竅是命令的--auth-mode參數,如果你沒有指定它,它會默認使用key ,然后命令會列出你訂閱中的所有存儲帳戶,當它找到你的存儲帳戶時,它會列出帳戶的密鑰並使用密鑰上傳 blob。 在此處輸入圖像描述

但是, Storage Blob Data Contributor minus delete沒有列出存儲帳戶的權限,那么你會得到這個錯誤。

在此處輸入圖像描述

要解決此問題,只需在命令中指定--auth-mode login ,然后它將使用您的服務主體的憑據獲取訪問令牌,然后使用令牌調用 REST API - Put Blob上傳 blob,原理請參閱使用 Azure Active Directory 授權訪問 blob 和隊列

az storage blob upload-batch -s . -d container/directory --account-name myaccount --auth-mode login

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM