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 как чувствительные операционные данные.