2

У меня есть шаблон для создания ключевого хранилища и его секрет. У меня также есть шаблон рабочей ткани, который требует 3 вещи из хранилища ключей: URI Vault, URL-адрес сертификата и отпечаток сертификата.Значения ключей хранилища от параметров развертывания и связанных шаблонов

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

У меня есть два вопроса.

  1. Как получить 3 значения в шаблоне руки. Powershell выводит их как «ResourceId» ключевого хранилища, «идентификатор» секретности и «версию» секретности. Моя попытка:

    "sourceVaultValue": { 
        "value": "resourceId('Microsoft.KeyVault/vaults/', parameters('keyVaultName')" 
        }, 
    "certificateThumbprint": { 
        "value": "[listKeys(resourceId('secrets', parameters('secretName')), '2015-06-01')" 
        }, 
    "certificateUrlValue": { "value": "[concat('https://', parameters('keyVaultName'), '.vault.azure.net:443/secrets/', parameters('secretName'), resourceId('secrets', parameters('secretName')))]" 
    

Но certificateUrlValue неверен. Вы можете видеть, что я пытался с и без listKeys, но ни один из них не работал ... (Отпечаток находится внутри самого certUrl)

  1. Если бы я получил правильные значения, я хотели бы попробовать передать их в качестве параметров для следующего шаблона. В рассматриваемом шаблоне есть еще несколько параметров, чем 3, которые я хочу передать. Итак, возможно ли иметь элемент parametersLink для ссылки на файл параметров, а также элемент параметров только для этих 3? Или есть намеченный способ сделать это?

Приветствия

+0

Ed - только для того, чтобы убедиться, что это фрагмент JSON над секцией выходов шаблона, который создает секреты? –

+0

Это было не изначально. Я использовал его в элементе параметров для связанного шаблона, затем переместил его в выходной раздел для тестирования. Мне кажется, что мне может понадобиться «ссылка» перед ними? Я не могу проверить atm tho. Мы должны будем снова созвать завтра :) –

ответ

2

Хорошо, попробуйте это, когда вы вернетесь к клавиатуре ...

1) для Ури, вы можете использовать выход как:

"secretUri": { 
    "type": "string", 
    "value": "[reference(resourceId('Microsoft.KeyVault/vaults/secrets', parameters('keyVaultName'), parameters('secretName'))).secretUri]" 
} 

Для # 2, вы не можете смешивать и сопоставлять ссылку и некоторые значения, это то или другое.

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

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

Помимо что я не могу придумать ничего элегантного - так как ты nt для передачи «динамических» параметров в вложенное развертывание действительно единственный способ сделать это - динамически записать файл param за ссылкой или передать все параметры в ресурс развертывания.

HTH - LMK если нет ...

+0

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

+0

Я предполагаю, что свойство «secretUri» из секретного объекта подробно описано в документации по секретам, но я не смог его найти. Я посмотрел здесь https://msdn.microsoft.com/en-us/library/azure/mt620026.aspx для документа KV, чтобы узнать, какое свойство использовать для получения идентификатора ресурса KV, и я вижу, что я должен быть способный использовать «id», но он не работает. Например, vaultUri работает: '[reference (resourceId (' Microsoft.KeyVault/vaults/', parameters (' keyVaultName '))). VaultUri]', как и tenantId .. –

+0

Итак, теперь я вижу, что элемент можно найти из проводника ресурсов. Возможно ли получить только значения, вложенные в свойства в проводнике ресурсов? –

-3
Can't Reference a secret with dynamic id !!!! 
The obvious problems with this way of doing things are: 
Someone needs to type the cleartext password which means: 
it needs to be known to anyone who provisions the environment and how do I feed it into an automated environment deployment? If I store the password in a parameter… ??????? 
    "variables": { 
    "tenantPassword": { 
     "reference": { 
     "keyVault": { 
      "ID": "[concat(subscription().id,'/resourceGroups/',parameters('keyVaultResourceGroup'),'/providers/Microsoft.KeyVault/vaults/', parameters('VaultName'))]" 
     }, 
     "secretName": "tenantPassword" 
     } 
    } 
    }, 
+0

Предлагаю вам прочитать рекомендации по переполнению стека для [Как написать хороший ответ?] (Https://stackoverflow.com/help/how-to-answer) – RobC

 Смежные вопросы

  • Нет связанных вопросов^_^