如何在同一ARM模板中授予VM对Key Vault的访问权限

问题描述 投票:0回答:1

我正在尝试创建一个能够配置VM AND Key Vault的ARM模板。 VM身份设置为键入“ SystemAssigned”。请参见下面的代码段:

        ...
        "name": "[variables('VM1')]",
        "type": "Microsoft.Compute/virtualMachines",
        "identity": { 
            "type": "SystemAssigned"
        },
        "apiVersion": "2019-07-01",
        ...

我希望能够授予VM访问Vault中机密的权限。为此,需要检索tenantIDObjectIDaccessPolicies。对于tenantID,我正在使用:

"tenantId": "[subscription().tenantId]",

是否有类似的方法来引用在同一模板中创建的VM的ObjectID?

谢谢!

azure azure-virtual-machine azure-keyvault arm-template
1个回答
0
投票

您需要使用引用来获取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'))]"
    ]
}
© www.soinside.com 2019 - 2024. All rights reserved.