advanced
Управление state в IaC
Защищайте state: он сопоставляет декларации с реальными ресурсами и может содержать чувствительные outputs.
State в IaC сопоставляет декларации с реальными идентичностями ресурсов. Часто содержит ID, сгенерированные имена, outputs и иногда секреты — храните удалённо с locking, контролем доступа, backup и аудитом.
| Риск | Митигация | |------|-----------| | Параллельный apply | Remote backend с locking | | Утечка state | RBAC, шифрование, не публичные buckets | | Потеря state | Backup и документированное восстановление | | Ручные правки | Редко, с review и backup |
terraform {
backend "s3" {
bucket = "org-tf-state"
key = "api/prod/terraform.tfstate"
dynamodb_table = "tf-locks"
encrypt = true
}
}
На интервью: почему потеря state опасна, как параллельные apply портят state и когда import или state move поддерживают рефакторинг.
Типовые ошибки: local state в коммитах; один state file на все окружения; правки state без backup.
Компромисс — операционная гибкость (ручные фиксы) против целостности source of truth инфраструктуры.
Чеклист:
- Remote state с locking.
- Ограничение доступа и шифрование at rest.
- Backup перед «хирургией» state.
- State как чувствительные операционные данные.