如何在 ARM 模板中同时引用系统管理标识和用户管理标识?

How to reference both System managed identity and user managed identity in ARM templates?

我想知道如何在 ARM 模板中的单个 VM 上分配系统管理标识和用户管理标识?

例如,我的 ARM 模板具有如下用户管理的身份:

"identity":{
        "type":"UserAssigned",
        "userAssignedIdentities":{
           "[resourceId(variables('userAssignedIdentitySubscription'),variables('userAssignedIdentityResourceGroup'),'Microsoft.ManagedIdentity/userAssignedIdentities', variables('userAssignedIdentityName'))]":{
           }
        }
     },

如果我想使用系统托管标识,我是否应该在标识中添加另一个类型为系统托管标识的字典?喜欢:

"identity":{
        "type":"UserAssigned",
        "userAssignedIdentities":{
           "[resourceId(variables('userAssignedIdentitySubscription'),variables('userAssignedIdentityResourceGroup'),'Microsoft.ManagedIdentity/userAssignedIdentities', variables('userAssignedIdentityName'))]":{
           }
        }
     },
    {
        "type":"SystemAssigned"
     }

或者还有其他方法吗?

我找到了答案,同时使用系统管理身份和用户管理身份,下面是简单的方法:

"identity":{
    "type":"SystemAssigned, UserAssigned",
    "userAssignedIdentities":{
       "[resourceId(variables('userAssignedIdentitySubscription'),variables('userAssignedIdentityResourceGroup'),'Microsoft.ManagedIdentity/userAssignedIdentities', variables('userAssignedIdentityName'))]":{
       }
    }
 },

查找 ARM 模板相关答案的简单提示:我通过手动创建具有两种类型身份的 VM 找到了答案,并从 Azure 门户导出 ARM 模板并找到了答案:)