Отдельные backend key/prefix или отдельные buckets на dev/stage/prod; либо отдельные root-модули/репозитории. Изоляция state снижает риск уничтожить prod, целясь в dev.
Разбор
- Разные AWS accounts — сильная изоляция.
- Одинаковый код + разные tfvars/workspace — слабее, но проще.
- CI role per env с least privilege.
- Не шарьте один state на все env «для удобства».
Итог
Один state — один blast radius; режьте env по key/account.