Перейти к содержанию
HexaTransfer
Вернуться к блогу
Облако и хранение

Жизненный цикл файлов: от создания до удаления

Управляйте файлами на протяжении всего их жизненного цикла. Политики создания, активного использования, архивирования и безопасного удаления.

Управление жизненным циклом файлов определяет, что происходит с каждым файлом на каждом этапе: создание (теги, классификация, шифрование), активное использование (горячее хранилище, версионирование, управляемый обмен), неактивность (переход в IA или cool-уровень через 30–90 дней), архивирование (Glacier Deep Archive или Azure Archive), и уничтожение (криптографическое стирание плюс запись аудита). Хорошо спроектированный жизненный цикл снижает затраты на хранение на 60–80%, удовлетворяя 152-ФЗ о персональных данных, ограничение хранения GDPR Article 5(1)(e) и требования НК РФ к хранению финансовых документов — всё это применяется политикой, а не ручными усилиями. Секрет — написать политику как код и протестировать на небольшой выборке перед применением к петабайтам.

Этап 1: Создание с намерением

Жизненный цикл файла начинается при создании. Метаданные, установленные в этот момент, определяют всё последующее: класс хранения, уровень конфиденциальности, владелец, проект. Конечная точка загрузки, не захватывающая эти данные, вынуждает ручное тегирование, которое никогда не происходит.

Минимальный набор метаданных при загрузке:

  • owner: идентификатор пользователя AD/SSO или сервисный аккаунт
  • created-by-app: система, записавшая файл
  • content-class: документ, лог, медиа, бэкап, временный
  • retention-class: nk-5y, 152fz-delete-on-request, temp-30d, indefinite
  • confidentiality: публичное, внутреннее, ограниченный доступ, секретное

Встраивайте через S3 Object Tags или Azure Blob Index Tags при PutObject. Lambda, валидирующая обязательные теги и отклоняющая загрузки без них, поддерживает каталог чистым с первого дня.

Этап 2: Активное использование в горячем уровне

Активно используемые файлы живут в самом быстром, самом дорогом уровне: S3 Standard ($0,023/ГБ), Azure Hot ($0,0184/ГБ), GCS Standard ($0,020/ГБ). Важна задержка (менее 100 мс), важна пропускная способность, паттерны доступа непредсказуемы.

В процессе активного использования:

  • Версионирование включено для защиты от перезаписей и случайных удалений
  • Логи доступа направляются в SIEM для аудита
  • Шифрование с управляемыми клиентом ключами KMS
  • Presigned URL для внешнего обмена (максимум 7 дней)

Типичное время в горячем уровне: 30–90 дней. После этого частота доступа обычно падает достаточно, чтобы более холодные уровни окупились.

Этап 3: Переход в тёплое хранилище

После 30 дней без доступа большинство файлов переходят в уровни Infrequent Access: S3 Standard-IA ($0,0125/ГБ), Azure Cool ($0,0152/ГБ), GCS Nearline ($0,010/ГБ). Задержка извлечения остаётся менее 100 мс, но появляется стоимость извлечения — S3 IA берёт $0,01/ГБ при извлечении.

Lifecycle-правило для этого перехода:

{
  "ID": "active-to-ia",
  "Status": "Enabled",
  "Filter": {"Prefix": "documents/"},
  "Transitions": [{"Days": 30, "StorageClass": "STANDARD_IA"}]
}

Следите за минимальным размером объекта — S3 IA берёт за 128 КБ на объект, даже если он 4 КБ. Объекты меньше 128 КБ стоят больше в IA, чем в Standard. Фильтруйте lifecycle-правила, исключая мелкие объекты через ObjectSizeGreaterThan: 131072.

Этап 4: Архивирование для длинного хвоста

Файлы, к которым не обращались 90+ дней, редко понадобятся снова, но могут быть предметом требований хранения. Перемещайте их в уровни холодного архива: S3 Glacier Flexible Retrieval ($0,0036/ГБ), S3 Glacier Deep Archive ($0,00099/ГБ), Azure Archive ($0,00099/ГБ), GCS Archive ($0,0012/ГБ).

Задержки извлечения становятся значительными:

  • Glacier Instant Retrieval: миллисекунды
  • Glacier Flexible Retrieval: 3–5 часов стандартно, 1–5 минут ускоренно
  • Glacier Deep Archive: 12 часов стандартно, 48 часов массово
  • Azure Archive: до 15 часов регидратации

Подбирайте уровень под реалистичный SLA восстановления. Не кладите квартальные аудиторские файлы в Deep Archive, если аудиторы уведомляют за 24 часа.

Этап 5: Удержание для соответствия требованиям

Нормативные требования часто обязывают хранить файлы дольше бизнес-полезности:

  • НК РФ: финансовые документы — минимум 5 лет
  • 152-ФЗ: персональные данные — не дольше цели обработки; право на удаление
  • Трудовой кодекс РФ: кадровые документы — 75 лет для приказов о приёме/увольнении
  • 402-ФЗ о бухучёте: первичные документы — минимум 5 лет
  • GDPR (европейские данные): по мере необходимости для заявленной цели

Реализуйте через тег-управляемое хранение и WORM-хранилище:

  • Тег retention-class управляет временем lifecycle
  • S3 Object Lock в режиме Compliance предотвращает удаление в течение периода хранения — даже root не может удалить
  • Тег юридического удержания (legal-hold: true) замораживает переходы lifecycle бессрочно
  • Журнал аудита фиксирует все доступы и изменения тегов

Этап 6: Безопасное уничтожение

Итоговое удаление закрывает жизненный цикл. «Безопасное» означает, что данные невосстановимы и действие задокументировано.

Подходы:

  • Мягкое удаление + отложенная очистка: помечаем удалённым, очищаем через 30 дней (допускает восстановление)
  • Криптографическое стирание: удаление ключа шифрования превращает шифртекст в шум
  • Физическая перезапись: три прохода по DoD 5220.22-M (только для on-prem)

Для облачного объектного хранилища криптографическое стирание — практический метод. Каждый бакет или класс объектов использует KMS-ключ; удаление ключа делает объекты невосстановимыми в течение минут. AWS, Azure и GCP поддерживают этот паттерн. Логируйте удаление через CloudTrail.

Требования к журналу аудита: фиксируйте ключ объекта, VersionId, временную метку, актора, код причины и matching-правило хранения. Храните журнал аудита дольше описываемых им данных — при удалении файлов через 7 лет, журнал удаления храните 10 лет.

Обмен файлами в разных стадиях жизненного цикла

Файлы в разных стадиях жизненного цикла обмениваются по-разному. Активный проектный файл: ссылка Drive с правами редактора. Архивный договор, нужный внешнему юристу: восстановление в тёплый уровень, генерация presigned URL, удаление тёплой копии после взаимодействия.

Для разового обмена архивными файлами инструмент передачи устраняет сложность предоставления внешнего доступа к архивной системе. HexaTransfer отправляет до 10 ГБ со сквозным шифрованием AES-256-GCM и одноразовой ссылкой — извлекаете архивный файл, отправляете, готово. Архив остаётся нетронутым; юрист получает необходимое без провизионирования IAM-роли.

Паттерн Policy-as-Code

Кодируйте каждое lifecycle-правило в Terraform, CloudFormation, Pulumi или Bicep. Никогда не кликайте вручную в консоли. Преимущества:

  • Ревью через pull requests
  • История версий изменений политик
  • Пробный прогон через terraform plan
  • Откат через revert коммита

Пример фрагмента Terraform:

resource "aws_s3_bucket_lifecycle_configuration" "docs" {
  bucket = aws_s3_bucket.docs.id
  rule {
    id     = "tiering"
    status = "Enabled"
    transition { days = 30  storage_class = "STANDARD_IA" }
    transition { days = 90  storage_class = "GLACIER_IR" }
    transition { days = 365 storage_class = "DEEP_ARCHIVE" }
    expiration { days = 2555 }
  }
}

Коммит, ревью, применение. Тестируйте на dev-бакете сначала. Разворачивайте в продакшен, постепенно расширяя prefix-фильтры.

Измерение эффективности жизненного цикла

Отслеживайте ежемесячно:

  • Общее хранилище по уровням (горячий/тёплый/архивный)
  • Стоимость по уровням
  • Распределение возраста объектов
  • Частота извлечений из холодных уровней (высокая частота означает неправильные уровни)
  • Частота удалений и причины

S3 Storage Lens, Azure Cost Management и GCP storage insights производят эти дашборды. Здоровый зрелый lifecycle: 10% горячий, 20% тёплый, 70% архивный, с холодным извлечением менее 1% в год. Всё остальное означает, что политику нужно настраивать.

Упражнение по проектированию жизненного цикла

При проектировании lifecycle для новой рабочей нагрузки ответьте на пять вопросов:

  1. Какие регуляторные требования хранения применяются?
  2. Каков реалистичный паттерн доступа через 30, 90, 365 дней?
  3. Каково допустимое время восстановления, если нужен старый файл?
  4. Каков триггер удаления — время, событие, запрос?
  5. Каково требование к доказательствам аудита?

Ответы диктуют расписание уровней, блокировки хранения, возможность юридического удержания и конвейер аудита. Получите эти пять ответов перед написанием Terraform. Большинство историй с неудачным lifecycle начинаются с команды, пропустившей фазу вопросов и сразу скопировавшей чужую политику.

Попробуйте на hexatransfer.com — бесплатно, без регистрации, до 10 ГБ.

Безопасная отправка больших файлов со сквозным шифрованием

Передавайте файлы до 10 ГБ бесплатно со сквозным шифрованием. Регистрация не требуется. Ваши файлы шифруются в браузере перед загрузкой — никто другой не может их прочитать.

Отправить файл