CloudFormation использует два механизма для идентификации своих ресурсов. Шаблон CFN имеет список созданных ресурсов, он использует фактический идентификатор, а не красивое имя, и CFN также помечает ресурсы (которые поддерживают теги) с помощью идентификатора стека.
CFN нельзя использовать для удаления ресурсов из другого стека, только стэк, который их создал, может ими управлять. Terraform позволяет вам импортировать ресурсы, созданные чем-либо еще, в новый стек, где они будут управляться.
Я использовал CFN в течение года, прежде чем перейти на Terraform (также в течение года), и я никогда не вернусь к CFN. Terraform предлагает много преимуществ по сравнению с CFN, что делает CFN действительно сложным в использовании сейчас. Такие функции, как план перед применением, модули для повторного использования, импорт ресурсов, выборочный вывод (CFN - это в основном черный ящик) и, как правило, более быстрая поддержка функций AWS (обычно API-интерфейсы выпускаются в день запуска, и вскоре после этого следует поддержка Terraform, / обычно / быстрее, чем CFN, но не всегда).