我正在尝试创建一个能够配置VM AND Key Vault的ARM模板。 VM身份设置为键入“ SystemAssigned”。请参见下面的代码段:
...
"name": "[variables('VM1')]",
"type": "Microsoft.Compute/virtualMachines",
"identity": {
"type": "SystemAssigned"
},
"apiVersion": "2019-07-01",
...
我希望能够授予VM访问Vault中机密的权限。为此,需要检索tenantID
的ObjectID
和accessPolicies
。对于tenantID,我正在使用:
"tenantId": "[subscription().tenantId]",
是否有类似的方法来引用在同一模板中创建的VM的ObjectID?
谢谢!
您需要使用引用来获取VM的托管服务标识的对象ID(主体ID),以分配对KeyVault的访问权限。 See the documentation here。
我看到KeyVault想要TenantID和Object ID。
您应该已经在模板中拥有的租户"tenantId": "[subscription().tenantId]"
并且ObjectID是PrincipalId,如下面的文档链接和示例所示。
{
"apiVersion": "2017-09-01",
"type": "Microsoft.Authorization/roleAssignments",
"name": "[parameters('rbacGuid')]",
"properties": {
"roleDefinitionId": "[variables(parameters('builtInRoleType'))]",
"principalId": "[reference(variables('vmResourceId'), '2017-12-01', 'Full').identity.principalId]",
"scope": "[resourceGroup().id]"
},
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]"
]
}