0

所以,我正在尝试启动 aManaged Identity和 a KeyVaultusing Blueprints。我有一个单独的工作模板。我的最终目标是在同一个蓝图中同时启动这两种资源以及更多资源。我遇到的问题是我需要在部署期间将托管身份的对象 ID 传递给 KeyVault 模板。我有部署托管标识资源组的蓝图设置,然后是托管标识,然后是 keyvault 组和 keyvault。

部署一直工作到 KV 资源组,然后在部署 keyvault 期间失败。有没有人知道如何做到这一点?

下面是 2 张图片,显示了蓝图的布局以及需要对象 ID 的 keyvault 模板部分。

Azure 蓝图布局:
Azure 蓝图布局

托管身份的访问策略所在的 KeyVault 模板:
托管身份的访问策略所在的 KeyVault 模板

错误图片:
错误图片

单击查看部署详细信息后,下一页上的错误图片: 单击查看部署详细信息后,下一页上的错误图片

4

1 回答 1

1

根据您的描述和屏幕截图,您希望将 UserAssigned Managed Identity 添加到您的 keyvault 以及它的创建中,并且 keyvault 和 Managed Identity 位于不同的资源组中。

如果是这样,accessPolicies应该在下面,它在我这边工作正常。

"accessPolicies": [
                    {
                        "tenantId": "[subscription().tenantId]",
                        "objectId": "[reference(ResourceId(parameters('managedIdentityRG'), 'Microsoft.ManagedIdentity/userAssignedIdentities', parameters('managedIdentityName')),'2018-11-30','Full').properties.principalId]",
                        "permissions": {
                            "keys": [],
                            "secrets": [
                                "Get"
                            ],
                            "certificates": []
                        }
                    }
                ]

我的完整模板:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vaults_joykeyvault12_name": {
            "type": "String"
        },
        "managedIdentityName": {
            "type": "String"
        },
        "managedIdentityRG":{
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.KeyVault/vaults",
            "apiVersion": "2016-10-01",
            "name": "[parameters('vaults_joykeyvault12_name')]",
            "location": "eastus",
            "tags": {},
            "properties": {
                "sku": {
                    "family": "A",
                    "name": "Standard"
                },
                "tenantId": "[subscription().tenantId]",
                "accessPolicies": [
                    {
                        "tenantId": "[subscription().tenantId]",
                        "objectId": "[reference(ResourceId(parameters('managedIdentityRG'), 'Microsoft.ManagedIdentity/userAssignedIdentities', parameters('managedIdentityName')),'2018-11-30','Full').properties.principalId]",
                        "permissions": {
                            "keys": [],
                            "secrets": [
                                "Get"
                            ],
                            "certificates": []
                        }
                    }
                ],
                "enabledForDeployment": false,
                "enabledForDiskEncryption": false,
                "enabledForTemplateDeployment": false,
                "enableSoftDelete": true
            }
        }
    ]
}
于 2020-04-13T06:30:38.200 回答