я рекомендую сделать инфрастуктурные модули по их назначению.
app,db, network, general
и да, у всех их явно прописан блок provider "aws", с переменными.
в каждом из app,db,network,general - внутри описания модулей уже структурных, таких как autoscaling, load balancer, route53 и прочее.
которым уже неявно передаётся твоё объявление provider "aws" которое ты сделал выше.
ну у меня на данный момент такое
папка terrafrom, в ней папки modules, r53_updater, sg_updater. В r53_updater, sg_updater сделан terraform init и в каждом из темплейтов прописан provider "aws" {}, повторюсь, хотел через модуль избежать этого копипаста провайдера, чтоб темплейты вызывали модуль, с предопределенными значениями и провайдером в целом