Общие вещи описываются один раз в корневом terragrunt.hcl (backend, provider, общие inputs), а дочерние конфигурации подключают его через include и добавляют только своё: source модуля и специфичные inputs. Код модуля хранится в одном месте и переиспользуется всеми окружениями по версионированной ссылке.