![](/img/trans.png)
[英]Adding role assignments to multiple Azure subscriptions for a managed identity using terraform
[英]Managed Identity Azure Role Assignments?
我正在嘗試通過 ARM 模板將服務總線接收器角色添加到用戶分配的托管標識。
這是模板
// User Assigned Managed Identity
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"apiVersion": "2018-11-30",
"name": "MyManagedIdentity",
"location": "[resourceGroup().location]",
},
// User Assigned Managed Identity Role
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2020-04-01-preview",
"name": "[guid(resourceGroup().id)]",
"dependsOn": [
"[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/','MyManagedIdentity')]"
],
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/090c5cfd-751d-490a-894a-3ce6f1109419",
"principalId": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', 'MyManagedIdentity'), '2018-11-30').principalId]",
}
},
它返回此錯誤。
狀態消息:不允許更新租戶 ID、應用程序 ID、主體 ID 和 scope。 (代碼:RoleAssignmentUpdateNotPermitted)
我不確定出了什么問題。
principalId 應該來自我認為的托管身份。 以及來自服務總線角色 id 的 roleDefinitionId。
您面臨的問題是,當您首次部署 ARM 模板時,最近創建的身份尚未完全復制,因此您可能會注意到列出了安全主體(用戶、組、服務主體或托管身份)作為未找到未知類型的身份。
當您嘗試通過重新部署模板來更新相同的角色分配時,它會給您錯誤“不允許更新租戶 ID、應用程序 ID、主體 ID 和 scope ”,因為具有相同 ID 的角色分配已經存在並且它不允許更新它。
更好的選擇是您首先使用單獨的模板創建身份,然后創建角色分配。 對於Azure Service Bus Data Receiver ,模板中的 ID 應為:
/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0
有關詳細信息,請參閱此文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.