Azure 如何在同一ARM模板中授予VM对密钥库的访问权限
我正在尝试创建一个ARM模板,该模板能够配置VM和密钥库。VM标识设置为“SystemAssigned”类型。请参阅下面的代码片段:Azure 如何在同一ARM模板中授予VM对密钥库的访问权限,azure,azure-virtual-machine,azure-keyvault,arm-template,Azure,Azure Virtual Machine,Azure Keyvault,Arm Template,我正在尝试创建一个ARM模板,该模板能够配置VM和密钥库。VM标识设置为“SystemAssigned”类型。请参阅下面的代码片段: ... "name": "[variables('VM1')]", "type": "Microsoft.Compute/virtualMachines", "identity": { "type": "SystemAssigned" }, "
...
"name": "[variables('VM1')]",
"type": "Microsoft.Compute/virtualMachines",
"identity": {
"type": "SystemAssigned"
},
"apiVersion": "2019-07-01",
...
我希望能够授予VM访问Vault中机密的权限。为此,需要检索accessPolicies
的tenantID
和ObjectID
。对于我正在使用的租户:
“tenantId”:“[subscription().tenantId]”,
是否有类似的方法来引用在同一模板中创建的VM的ObjectID
谢谢 您需要使用引用来获取VM的托管服务标识的对象id(主体id),以分配对KeyVault的访问权 我看到KeyVault需要租户ID和对象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'))]"
]
}
有时命名可能会有点混乱,它最近被清理了一点,但在某一点上,主体Id、对象Id和应用程序Id或多或少可以互换使用。