我正在使用 Azure DevOps 構建 Terraform 基礎設施,并且我的基礎設施中有一個密鑰保管庫。當試圖破壞環境(本地或管道中)時,terraform 回傳以下錯誤:
Error: keyvault.VaultsClient#PurgeDeleted: Failure sending request: StatusCode=403
-- Original Error: Code="AuthorizationFailed" Message="The client 'my-email' with
object id 'my-object-id' does not have authorization to perform action
'Microsoft.KeyVault/locations/deletedVaults/purge/action' over scope
'/subscriptions/subscription-id' or the scope is invalid.
If access was recently granted, please refresh your credentials."
這個錯誤顯示雖然我有owner/contributor roles over the resource group where this kv is provisioned,而且我有Key Vault adminitrator/contributor in the subscription level。有人可以告訴我將來需要什么角色(限制越多越好)來避免這個問題?
謝謝
uj5u.com熱心網友回復:
我試圖在我的環境中重現相同的結果并得到以下結果:
我創建了一個測驗用戶并分配了與您相同的角色,如下所示:

現在我使用測驗用戶的憑據登錄到 Azure 門戶并嘗試清除已洗掉的密鑰保管庫,如下所示:
轉到 Azure 門戶 -> 密鑰保管庫 -> 管理已洗掉的保管庫 -> 選擇訂閱 -> 選擇密鑰保管庫 -> 清除 -> 洗掉

當我點擊Delete時,它??給了我同樣的錯誤,如下所示:

要清除軟洗掉的密鑰保管庫,用戶需要
role包括 Microsoft.KeyVault/locations/deletedVaults/purge/action等權限。請注意,只有Subscription Owner該權限。
要解決此錯誤,您需要在訂閱級別將所有者角色分配給用戶。

當我在獲得Subscription Owner角色后嘗試相同的操作時,我能夠成功清除已洗掉的密鑰保管庫,如下所示:

如果您不想分配Subscription Owner角色,您可以通過包含所需權限來創建自定義 RBAC 角色,并根據您的要求將其分配給用戶。
參考:
Azure Key Vault 恢復概述 | 微軟
Azure 自定義角色 - Azure RBAC | 微軟
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520492.html
標籤:天蓝色天蓝色活动目录地形天蓝色密钥库terraform-provider-azure
