Недавно мы создали политику Azure, которая обязывает определенный набор тегов присутствовать на всех ресурсах. Эта политика блокирует развертывания, которые не содержат обязательные теги в развертывании. Однако некоторые тегируемые ресурсы, такие как Vnets, не имеют возможности добавлять теги во время развертывания, если вы не используете шаблон ARM. Похоже, что Terraform также пытается развернуть Vnet в качестве отдельного шага перед добавлением тегов, что приводит к сбою развернутых Terraform Vnets, даже если предоставлены правильные теги. С помощью Terraform, если предоставляется шаблон ARM, он обойдет эту проблему.
Как получить ресурсы развертывания Terraform, такие как Vnets, без использования шаблона ARM и без ограничения политики azure? В идеале я хотел бы иметь возможность исключить развертывания ресурсов, инициированных Terraform, из политики Azure, но я не могу найти способ отличить развертывания Terraform от обычных развертываний веб-портала Azure в политике Azure.
Некоторые другие идеи:
- Используйте Terraform для создания временного тега в группе ресурсов, указывающего «Освободить эти ресурсы». Удалите этот тег после завершения сценария Terraform. Ссылка на этот тег в политике Azure и освобождение развертываний, если тег существует. Это решение в порядке, но я бы предпочел более элегантное
- Использование Terraform, чтобы добавить группу ресурсов в качестве исключения к Политике во время выполнения, а затем вернуться после
- Обновлять политику, чтобы она не требовалась Теги на ресурсах, которые не поддерживают тегирование при первоначальном развертывании без шаблонов ARM
Есть ли более элегантное решение, кроме упомянутых выше вариантов?