Как я могу использовать шаблон Azure ARM для развертывания виртуальных машин в группе ресурсов A и ссылаться на существующее хранилище ключей в группе ресурсов B?

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

Я могу развернуть виртуальные машины, назначить им Managed Service Identities (MSI) и добавить эти MSI в accessPolicy для уже существующего хранилища ключей - все тот же шаблон ARM. Загвоздка в том, что хранилище ключей должно находиться в той же группе ресурсов, что и виртуальные машины, которые я развертываю.

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

  1. Если я ссылаюсь на Key Vault как на ресурс в шаблоне ARM, я получаю сообщение об ошибке «имя (keyvault-name) уже используется (Код: VaultAlreadyExists)

  2. Если вместо этого я просто попытаюсь использовать accessPolicy хранилища ключей в качестве ресурса верхнего уровня, я получаю сообщение об ошибке «Невозможно выполнить запрошенную операцию над вложенным ресурсом. Имя хранилища ключей родительского ресурса не найдено» (Код: ParentResourceNotFound)

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

Любая помощь приветствуется!

Ваше здоровье,

-Маашу


person Maashu    schedule 09.02.2018    source источник
comment
Не могли бы вы опубликовать свой шаблон ARM? В противном случае мне сложно понять, в чем проблема   -  person Thomas    schedule 10.02.2018


Ответы (1)


Вам нужно будет выполнить одну часть вашего развертывания во вложенном шаблоне, а затем использовать свойства subscription / resourceGroup в этом развертывании, чтобы они соответствовали группе ресурсов, которую вы хотите развернуть (например, A или B).

Например (предположим, что ваш KeyVault находится в группе ресурсов B): 1) разверните свои виртуальные машины в группе A (и создайте MSI) 2) в том же шаблоне добавьте вложенное развертывание в группу B (где KV) после подготовки MSI.

См. Это: https://docs.microsoft.com/en-us/azure/templates/microsoft.resources/deployments

Обратите внимание на свойства подписки / resourceGroup на ресурсе - это позволит вам выполнить развертывание в другой группе ресурсов и даже в другой подписке, если это необходимо.

Также: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-cross-resource-group-deployment

person bmoore-msft    schedule 12.02.2018