Жизненный цикл файлов: от создания до удаления
Управляйте файлами на протяжении всего их жизненного цикла. Политики создания, активного использования, архивирования и безопасного удаления.
Управление жизненным циклом файлов определяет, что происходит с каждым файлом на каждом этапе: создание (теги, классификация, шифрование), активное использование (горячее хранилище, версионирование, управляемый обмен), неактивность (переход в 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, indefiniteconfidentiality: публичное, внутреннее, ограниченный доступ, секретное
Встраивайте через 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 для новой рабочей нагрузки ответьте на пять вопросов:
- Какие регуляторные требования хранения применяются?
- Каков реалистичный паттерн доступа через 30, 90, 365 дней?
- Каково допустимое время восстановления, если нужен старый файл?
- Каков триггер удаления — время, событие, запрос?
- Каково требование к доказательствам аудита?
Ответы диктуют расписание уровней, блокировки хранения, возможность юридического удержания и конвейер аудита. Получите эти пять ответов перед написанием Terraform. Большинство историй с неудачным lifecycle начинаются с команды, пропустившей фазу вопросов и сразу скопировавшей чужую политику.
Попробуйте на hexatransfer.com — бесплатно, без регистрации, до 10 ГБ.
Безопасная отправка больших файлов со сквозным шифрованием
Передавайте файлы до 10 ГБ бесплатно со сквозным шифрованием. Регистрация не требуется. Ваши файлы шифруются в браузере перед загрузкой — никто другой не может их прочитать.
Отправить файл