Добавление разрешений ADF для хранилища ключей в ARM - PullRequest
0 голосов
/ 31 марта 2020

По сути, я пытаюсь добавить возможность для фабрики данных, чтобы иметь возможность получать секреты из хранилища ключей через шаблон хранилища ключей ARM, поэтому он применяется к выпуску.

Однако, проблема возникает, когда я пытаюсь выпустить проект, я получаю сообщение об ошибке, говорящее о том, что фабрика данных не находится в той же группе ресурсов (что было отчасти ожидаемо), однако я не вижу способа передачи в группу ресурсов по порядку чтобы функция видела правильную группу ресурсов, в которой находится фабрика данных.

"accessPolicies": [

          {
            "tenantId": "[subscription().tenantId]",
            "objectId": "[reference(concat('Microsoft.DataFactory/factories/', parameters('DataFactoryName')),'2018-06-01','Full').identity.principalId]",
            "permissions": {
              "secrets": [
                "Get"
              ]
            }
          }

Может кто-нибудь помочь

1 Ответ

2 голосов
/ 01 апреля 2020

Добавьте параметр OtherGroupName в parameters, значение OtherGroupName должно быть именем группы ресурсов вашей фабрики данных.

"OtherGroupName":{
    "type": "String"
}

Затем используйте accessPolicies, как показано ниже:

 "accessPolicies": [
                    {
                        "tenantId": "[subscription().tenantId]",
                        "objectId": "[reference(ResourceId(parameters('OtherGroupName'), 'Microsoft.DataFactory/factories', parameters('DataFactoryName')),'2018-06-01','Full').identity.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"
        },
        "DataFactoryName": {
            "type": "String"
        },
        "OtherGroupName":{
            "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('OtherGroupName'), 'Microsoft.DataFactory/factories', parameters('DataFactoryName')),'2018-06-01','Full').identity.principalId]",
                        "permissions": {
                            "keys": [],
                            "secrets": [
                                "Get"
                            ],
                            "certificates": []
                        }
                    }
                ],
                "enabledForDeployment": false,
                "enabledForDiskEncryption": false,
                "enabledForTemplateDeployment": false,
                "enableSoftDelete": true
            }
        }
    ]
}

Я проверяю его с powershell New-AzResourceGroupDeployment, он отлично работает.

enter image description here

Регистрация на портале:

enter image description here

...