Как использовать secureObject или securestring, возвращенные из связанного шаблона ARM - PullRequest
0 голосов
/ 30 января 2019

Как использовать значение возвращенного securestring или secureObject, которое возвращается из связанного шаблона ARM?

Например, один дочерний связанный шаблон с именем CreateStorage

  1. создает учетную запись хранения Azure
  2. создает контейнеры BLOB-объектов для этой учетной записи
  3. создает ключ SAS для контейнера
  4. возвращает ключ SAS в шаблонах outputssection.

например, возвращая SAS в выходных данных шаблонов:

"outputs": {
    "createdContainerSas": {
        "type": "string",
        "value": "[concat('https://', variables('storageAccountName'), '.blob.core.windows.net/', variables('containerName'), '?', listServiceSas(variables('storageAccountName'), '2018-07-01', variables('importSasInputs')).serviceSasToken)]"
    }
}

Затем основной шаблон добавит ключ SAS в KeyVault, чтобы его могли использовать остальныеприложение.Основной шаблон получает значение следующим образом:

"value": "[reference('CreateStorage').outputs.createdContainerSas.value]"

Проблема заключается в том, что в настоящее время ключ SAS возвращается как string, что означает, что он отображается в виде простого текста в пользовательском интерфейсе развертываний Azure.

Однако когда я изменяю тип возвращаемого объекта на securestring или secureObject, то при вызове createdContainerSas.value возникает следующая ошибка:

{\r\n \"code\": \"InvalidTemplate\",\r\n \"message\": \"Unable to process template language expressions for resource '/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.Resources/deployments/CreateKeyVault' at line '310' and column '9'. 'The language expression property 'value' doesn't exist, available properties are 'type'.'\"\r\n }

Итак, свойство .valueкажется, не существует при возврате securestring или secureObject из дочерних связанных шаблонов ARM.

Документы Microsoft по https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-templates-outputs скажем

Поддержка выходных значенийте же типы, что и входные параметры шаблона.

и оба securestring и secureObject работают нормально как входные параметры шаблона, поэтому я должен что-то делать не так.

Как мнеиспользовать значение возвращенного securestring или secureObject, которое возвращается из связанного шаблона ARM?

1 Ответ

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

типы secureString \ secureObject опущены во входных данных \ выходных данных.вы не можете их «достать».они просто проходят, вот и все.Вот почему они называются secure.Они нигде не записываются.Реального обходного пути нет.

В вашем случае вы просто тянете ключи туда, где они вам нужны, вам не нужно тянуть их во вложенном шаблоне и передавать их в родительский шаблон.

...