Получение текущей версии в ARM-шаблоне для секрета - PullRequest
0 голосов
/ 03 января 2019

Я получил этот секрет с именем «StorageConnectionString», который вставляется в мое хранилище ключей из ARM:

{
  "type": "Microsoft.KeyVault/vaults/secrets",
  "name": "[concat(variables('keyVaultName-v'),'/','StorageConnectionString')]",
  "apiVersion": "2018-02-14",
  "properties": {
    "contentType": "text/plain",
    "value": "OmittedStorageConntionString"
  },
  "dependsOn": [
    "[resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName-v'))]"
  ]
}

Есть ли способ, с помощью которого я могу ссылаться и получать URL текущей версии (или просто идентификатора версии) вставленного секретного кода из ARM? Я хочу сослаться на него из переменной среды, как упомянуто здесь: https://azure.microsoft.com/en-us/blog/simplifying-security-for-serverless-and-web-apps-with-azure-functions-and-app-service/ в разделе «Настройки приложения Sourcing из Key Vault». Я хочу установить параметр среды @Microsoft.KeyVault(SecretUri=secret_uri_with_version) в моей функции Azure.

Если это невозможно, есть ли другой способ установить строку подключения?

1 Ответ

0 голосов
/ 03 января 2019

Вопрос был моим последним средством, и сразу после того, как я опубликовал это, я нашел ответ здесь: https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references#reference-syntax (в документации) "[concat('@Microsoft.KeyVault(SecretUri=', reference(variables('storageConnectionStringResourceId')).secretUriWithVersion, ')')]".

РЕДАКТИРОВАТЬ Следуя вышеупомянутому, вы можете ссылаться на секрет в шаблоне ARM и получить URL-адрес секрета с включенной версией.

Создать секрет:

{
  "type": "Microsoft.KeyVault/vaults/secrets",
  "name": "[concat(variables('keyVaultName-v'),'/', variables('queueStorageConnectionStringSecretName-v'))]",
  "apiVersion": "2018-02-14",
  "properties": {
    "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('queueStorageName-v'), ';AccountKey=', listKeys(variables('storageAccountResourceId'),'2015-05-01-preview').key1)]"
  }

И тогда вы можете ссылаться на него в своем приложении функций

    {
      "name": "StorageQueueConnectionString",
      "value": "[concat('@Microsoft.KeyVault(SecretUri=', reference(variables('queueStorageConnectionStringSecretNameResourceId-v')).secretUriWithVersion, ')')]"
    }

Затем в своей функции вы можете ссылаться на StorageQueueConnectionString в привязке

[Queue("queueName", Connection ="StorageQueueConnectionString")]
            ICollector<string> outputQueueItem

Таким образом, у вас нетссылаться на строку подключения в переменных окружения (или коде), делая ваше приложение более безопасным.В этом примере требуется идентификация, назначенная системой (или назначенная пользователем) между приложением функций и хранилищем.В настоящее время я пытаюсь создать хранилище, и я сделал код, который можно найти здесь: https://github.com/mslot/Microservices. Код не красивый!Я пробую много вещей, связанных с хранилищем ключей и привязками между различными объектами Azure.

...