Przejdź do treści
HexaTransfer
Wróć do bloga
Chmura i przechowywanie

Automatyczna archiwizacja plików: ustaw i zapomnij

Skonfiguruj zautomatyzowane workflow archiwizacji plików. Zdefiniuj reguły, zaplanuj archiwizację i zapewnij zgodność z politykami retencji.

Automatyczna archiwizacja plików przenosi nieaktywne pliki z gorącego storage do zimnych warstw zgodnie z harmonogramem — bez klikania przez nikogo. Reguły S3 Lifecycle, Azure Blob Lifecycle Management i GCS Object Lifecycle pozwalają pisać polityki w stylu: „po 90 dniach bez dostępu przenieś do Glacier Deep Archive; po 7 latach usuń, chyba że plik oznaczono jako legal-hold". Raz skonfigurowane, przetestowane na próbie 1% obiektów, redukują koszty storage o 50–80%, jednocześnie spełniając wymogi retencji — SOX (7 lat), HIPAA (6 lat), minimalizacja danych wynikająca z RODO — bez ręcznych przeglądów.

Wybór wyzwalacza: wiek, dostęp czy tag

Dominują trzy rodzaje wyzwalaczy archiwizacji. Reguły oparte na wieku (object.age > 90d) są najprostsze i sprawdzają się przy danych z malejącą wartością czasową, takich jak logi, transakcje czy eksporty e-maili. Reguły oparte na dostępie (S3 Intelligent-Tiering śledzący znaczniki czasu ostatniego dostępu) są mądrzejsze przy nieprzewidywalnych wzorcach odczytu — plik audytu finansowego może leżeć uśpiony przez 11 miesięcy, a w 12. stać się krytyczny.

Reguły oparte na tagach (tag retention-class = sox-7y) dają ludziom i aplikacjom jawną kontrolę. Dział compliance może oznaczyć pliki retention-class: hipaa-6y przy ingresie, a reguły cyklu życia archiwizują je odpowiednio, bez zmiany reguły przy ewolucji kategorii. Łącz oba podejścia: wiek jako domyślny, tagi jako wyjątki.

Pisanie polityki w YAML lub JSON

Konfiguracje lifecycle w S3 używają XML lub JSON; Azure i GCS używają JSON. Przykładowa reguła S3 dla repozytorium dokumentów:

{
  "Rules": [
    {
      "ID": "archive-documents",
      "Status": "Enabled",
      "Filter": {"Prefix": "documents/"},
      "Transitions": [
        {"Days": 30, "StorageClass": "STANDARD_IA"},
        {"Days": 90, "StorageClass": "GLACIER_IR"},
        {"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
      ],
      "Expiration": {"Days": 2555},
      "NoncurrentVersionExpiration": {"NoncurrentDays": 180}
    }
  ]
}

Politykę przechowuj w Gicie. Każda zmiana przechodzi przez pull request, jest wdrażana przez Terraform lub CloudFormation i audytowana w logu CI. Polityki edytowane ręcznie w konsoli rozjeżdżają się i psują.

Testowanie przed produkcją

Polityka lifecycle, która usuwa niewłaściwy bucket, może zakończyć karierę. Testuj najpierw na małym prefiksie. Utwórz documents/test/ z przykładowymi plikami i dedykowaną polityką testową działającą tylko na tym prefiksie. Używaj krótkich czasów — Days: 1 — żeby szybko przejść przez przejścia.

Sprawdź wyniki przez aws s3api list-objects-v2 --prefix documents/test/ i zweryfikuj, że klasy storage zmieniły się zgodnie z oczekiwaniami. Następnie rozszerz filtr. Dla bucketów wysokiego ryzyka (prawnych, finansowych) uruchom politykę w trybie dry-run, jeśli dostawca go obsługuje, albo zasymuluj skryptem raportującym, co by się stało — bez stosowania zmian.

Minimalne czasy przechowywania są nienaruszalne

Reguły lifecycle respektują opłaty za minimalny czas przechowywania. Przeniesienie obiektu do Glacier Flexible Retrieval i usunięcie go po 7 dniach wciąż jest rozliczane za 90 dni. Deep Archive rozlicza minimum 180 dni. Źle zaprojektowana reguła, która przenosi obiekty ze Standard do Deep Archive i usuwa je w ciągu 30 dni, płaci potrójnie — za przejście, za minimalny czas i za egress przy ewentualnym odtworzeniu.

Bezpieczny wzorzec: przechodź do zimniejszej warstwy tylko wtedy, gdy spodziewasz się, że obiekt przebywa tam przynajmniej przez minimalny okres. Jeśli pliki są typowo usuwane po 60 dniach, nie przepychaj ich przez Deep Archive (minimum 180 dni). Zatrzymaj się na Standard-IA.

Obsługa legal hold i wyjątków

Każdy system archiwizacji potrzebuje furtki na wypadek postępowań prawnych. Tag legal-hold: true powinien wykluczać obiekty z usunięcia przez lifecycle. Wdróż przez filtr reguły wykluczający otagowane obiekty:

Filter:
  And:
    Prefix: "documents/"
    Tag: {Key: "legal-hold", Value: "false"}

W połączeniu z S3 Object Lock w trybie Governance lub Compliance, obiekty z tagiem legal-hold stają się niezmienne do momentu zwolnienia blokady. Tryb Compliance uniemożliwia usunięcie nawet przez roota, czego wymagają FINRA 4511, SEC 17a-4 i wymogi WORM z HIPAA §164.316. W Polsce dodatkowym punktem odniesienia jest UODO — Urząd Ochrony Danych Osobowych — który egzekwuje zasady retencji wynikające z RODO.

Automatyzacja pipeline'u tagowania

Archiwizacja jest tylko tak dobra, jak tagi nią sterujące. Zautomatyzuj tagowanie przy ingresie: Lambda wyzwalana przez S3 ObjectCreated analizuje plik i nakłada tagi content-type, department, retention-class. Dla istniejących danych bez tagów uruchom wsadowe zadanie tagowania z S3 Batch Operations.

Źródła wartości tagów:

  • Rozszerzenie pliku i magic bytes (plik .pdf ze słowem „HIPAA" w metadanych dostaje tag healthcare)
  • Źródło uploadu (klucz API powiązany z aplikacją finansową automatycznie taguje finance)
  • Skanowanie zawartości (Amazon Macie wykrywa dane osobowe i taguje odpowiednio)
  • Dane od użytkownika przy uploade (formularz z listą rozwijaną Dział)

Tagi kosztują 0,01 USD za 10 000 żądań tagowania w S3 — warta inwestycja dla precyzyjnego targetowania lifecycle'u.

Ślad audytowy archiwizacji

Loguj każdą akcję lifecycle. CloudTrail przechwytuje zdarzenia LifecycleTransition i LifecycleExpiration. Przesyłaj je do Atheny, Splunka lub Datadoga dla queryowalnej historii. Gdy audytor zapyta „kiedy ta umowa z 2019 roku trafiła do Glacier", zapytanie powinno zwrócić wynik w ciągu sekund.

Uwzględnij w logu audytowym:

  • Klucz obiektu i VersionId
  • Przejście z/do klasy storage
  • Wyzwalacz (wiek, tag, jawny)
  • Znacznik czasu
  • ID polityki, która pasowała

Przechowuj log audytowy przynajmniej tak długo, jak wymaga tego retencja danych — jeśli archiwizujesz przez 7 lat, zachowaj log lifecycle przez 7 lat plus bufor.

Archiwizacja między regionami i chmurami

Dla disaster recovery archiwa powinny znajdować się w drugim regionie lub chmurze. S3 Cross-Region Replication może kierować do innej klasy storage w miejscu docelowym — replikuj do us-west-2 bezpośrednio do Glacier Deep Archive. Azure obsługuje podobne funkcje przez RA-GRS i replikację obiektów. GCS oferuje replikację multi-region i turbo.

Przy archiwizacji między chmurami (AWS jako primary, Backblaze B2 jako secondary) rclone z cronem uruchamia zaplanowane zadania synchronizacji. Kopia zapasowa zapewnia niezależność od awarii specyficznych dla dostawcy, ransomware atakującego IAM jednego providera czy sporów rozliczeniowych.

Archiwa gotowe do odtworzenia

Archiwum, z którego nie można przywrócić danych, to po prostu powolne usuwanie. Udokumentuj ścieżkę odtworzenia dla każdej warstwy:

  • Glacier Instant Retrieval: bezpośredni GET, bez potrzeby restore
  • Glacier Flexible Retrieval: RestoreObject z Tier=Standard (3–5 godzin) lub Expedited (1–5 minut)
  • Glacier Deep Archive: RestoreObject ze Standard (12 godzin) lub Bulk (48 godzin)
  • Azure Archive: Set Blob Tier do Hot/Cool, nawodnienie przez 15 godzin

Ćwicz kwartalnie. Wybierz losowy zarchiwizowany obiekt, przywróć go, zweryfikuj względem hasza manifestu i zmierz cały proces. Nieprzetestowane odtworzenia odkrywane są boleśnie podczas incydentów.

Jednorazowe transfery archiwalne

Automatyczny lifecycle obsługuje stan ustalony, ale czasem trzeba natychmiast przenieść konkretną partię 50 GB — pliki odchodzącego pracownika, zamknięcie projektu klienta. Do takich przypadków ręczne narzędzie transferu z weryfikacją integralności bije edytowanie polityk lifecycle. HexaTransfer przenosi pliki do 10 GB z szyfrowaniem end-to-end AES-256-GCM i jednorazowym linkiem — przydatne przy przekazywaniu archiwów zewnętrznemu radcy prawnemu lub następcy bez konieczności nadawania mu dostępu do całego bucketu.

Skonfiguruj politykę lifecycle, zautomatyzuj tagowanie, przesyłaj logi audytowe, a system będzie działał sam. Przeglądaj dashboard kosztów kwartalnie; dostosowuj progi, gdy zmienia się wzorzec dostępu. Tyle wystarczy — raz ustawione archiwum wymaga mniej uwagi niż zamówienie kawy.

Wypróbuj na hexatransfer.com — bezpłatnie, bez konta, do 10 GB.

Wysyłaj duże pliki bezpiecznie z szyfrowaniem end-to-end

Przesyłaj pliki do 10 GB za darmo z szyfrowaniem end-to-end. Bez rejestracji. Twoje pliki są szyfrowane w przeglądarce przed przesłaniem — nikt inny nie może ich odczytać.

Wyślij plik