Как передать идентификатор объекта управляемой идентификации в шаблон KeyVault в Azure Blueprints - PullRequest
0 голосов
/ 11 апреля 2020

Итак, я пытаюсь раскрутить Managed Identity и KeyVault, используя Blueprints. У меня есть индивидуально работающий шаблон для каждого. Моя конечная цель состоит в том, чтобы раскрутить оба ресурса вместе с несколькими другими вместе в одном проекте. Проблема, с которой я столкнулся, заключается в том, что во время развертывания мне нужно передать идентификатор объекта моей управляемой идентификации в шаблон KeyVault. У меня есть схема установки для развертывания группы ресурсов управляемого идентификатора, затем управляемого идентификатора, за которым следуют группа keyvault и keyvault.

Развертывание работает до группы ресурсов KV, а затем происходит сбой во время развертывания keyvault. У кого-нибудь есть понимание, как это сделать?

Ниже приведены 2 рисунка, на которых показано расположение чертежа, а также раздел шаблона keyvault, где необходим идентификатор объекта.

Azure Макет чертежа:
Azure Blueprint Layout

Шаблон KeyVault, в котором находится политика доступа к управляемому удостоверению:
KeyVault Template where access policy to managed Identity is located

Ошибка Pi c:
Error Pic

Pi c ошибки на следующей странице после того, как я нажму на просмотр сведений о развертывании: Pic of the error on the next page after i click view deployment details

1 Ответ

0 голосов
/ 13 апреля 2020

Из вашего описания и снимка экрана вы хотите добавить управляемое удостоверение UserAssigned в ваш keyvault вместе с его созданием, и keyvault и управляемое удостоверение личности находятся в различных группах ресурсов.

Если это так, 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
            }
        }
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...