【问题标题】:How can I use an Azure ARM template to deploy VMs into Resource Group "A" and reference an existing key vault in Resource Group "B"?如何使用 Azure ARM 模板将 VM 部署到资源组“A”并引用资源组“B”中的现有密钥保管库?
【发布时间】:2018-07-20 14:18:16
【问题描述】:

我已经在网上寻求帮助,但在这个特定问题上几乎没有任何内容。我的用例是我需要创建一个 ARM 模板,将访问策略添加到一个资源组中的现有 Azure 密钥保管库,但将 VM 部署到第二个资源组中。

我可以部署 VM,为其分配托管服务标识 (MSI),并将这些 MSI 添加到已存在的密钥保管库的 accessPolicy 中,所有相同的 ARM 模板。问题是,密钥保管库必须与我正在部署的 VM 位于同一资源组中。

当我尝试使用与以前相同的密钥保管库将 VM 部署到不同的资源组时,我遇到了几个错误之一,具体取决于我如何构建 ARM 模板:

  1. 如果我将 Key Vault 作为 ARM 模板中的资源引用,我会收到错误消息“名称 (keyvault-name) 已在使用中(代码:VaultAlreadyExists)

  2. 如果我只是尝试将密钥保管库 accessPolicy 用作顶级资源,则会收到一条错误消息,指出“无法对嵌套资源执行请求的操作。未找到父资源密钥保管库名称”(代码: ParentResourceNotFound)

真的令人费解,因为当我尝试第二种方法时,我将虚拟机启动到与虚拟机相同的资源组中,它工作得很好。

非常感谢任何帮助!

干杯,

-马舒

【问题讨论】:

  • 你能发布你的ARM模板吗?否则我很难弄清楚是什么问题

标签: azure azure-resource-manager azure-keyvault arm-template


【解决方案1】:

您需要在嵌套模板中执行部署的一部分 - 然后使用该部署上的订阅/资源组属性来匹配您要部署到的资源组(例如 A 或 B)。

例如(假设您的 KeyVault 位于资源组 B 中): 1) 将您的虚拟机部署到 A 组(并创建 MSI) 2) 在配置 MSI 后,在同一模板中将嵌套部署添加到组 B(KV 所在的位置)

看到这个: https://docs.microsoft.com/en-us/azure/templates/microsoft.resources/deployments

注意资源上的订阅/资源组属性 - 这将允许您部署到不同的资源组,如果需要,甚至可以部署到不同的订阅。

还有:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-cross-resource-group-deployment

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2019-07-17
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多