![](/img/trans.png)
[英]az cmd “account clear” fails after “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.