如何在同一 ARM 模板中授予对密钥保管库的 VM 访问权限



我正在尝试创建一个能够预配 VM密钥保管库的 ARM 模板。VM 标识设置为"系统分配"类型。请参阅下面的代码片段:

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

我希望能够向 VM 授予访问保管库中机密的权限。为此,需要检索tenantIDObjectID以进行accessPolicies。对于我正在使用的租户 ID:

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

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

谢谢!

需要使用引用来获取 VM 的托管服务标识的对象 ID(主体 ID(,以分配对 KeyVault 的访问权限。请参阅此处的文档。

我看到密钥保管库需要租户 ID 和对象 ID。

模板中应已具有的租户"tenantId": "[subscription().tenantId]"

对象 ID 是 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'))]"
]
}

相关内容

最新更新