Vai al contenuto
HexaTransfer
Torna al blog
Cloud e archiviazione

Archiviazione automatizzata dei file: imposta e dimentica

Imposta workflow automatizzati per l'archiviazione dei file. Definisci regole, pianifica l'archiviazione e garantisci la conformità alle politiche di conservazione.

L'archiviazione automatizzata dei file sposta i file inattivi dallo storage caldo ai livelli freddi in base a una pianificazione, senza che nessuno debba cliccare nulla. Le regole S3 Lifecycle, Azure Blob Lifecycle Management e GCS Object Lifecycle consentono di scrivere criteri del tipo "dopo 90 giorni senza accesso, sposta in Glacier Deep Archive; dopo 7 anni, elimina salvo tag legal-hold". Si impostano una volta, si testano su un campione dell'1% e il sistema recupera dal 50 all'80% dei costi di storage rispettando le regole di conservazione — SOX 7 anni, HIPAA 6 anni, minimizzazione dei dati ai sensi del GDPR e del Codice Privacy italiano — senza interventi manuali.

Scegliere il trigger: età, accesso o tag

Tre trigger di archiviazione dominano il mercato. Le regole basate sull'età (object.age > 90d) sono le più semplici e funzionano per dati a decadimento temporale come log, transazioni o esportazioni email. Le regole basate sull'accesso (S3 Intelligent-Tiering, che traccia i timestamp dell'ultimo accesso) sono più intelligenti per dataset con pattern di accesso imprevedibili: un file di audit finanziario può restare dormiente per 11 mesi e diventare critico al mese 12.

Le regole basate sui tag (tag retention-class = sox-7y) danno agli utenti e alle applicazioni un controllo esplicito. Un team di compliance può contrassegnare i file retention-class: hipaa-6y all'ingestion, e le regole del lifecycle archiviano di conseguenza senza dover modificare la regola quando cambiano le categorie. Combinale: l'età come default, i tag per le eccezioni.

Scrivere la policy in YAML o JSON

Le configurazioni lifecycle S3 usano XML o JSON; Azure usa JSON; GCS usa JSON. Una regola S3 rappresentativa per un archivio documentale:

{
  "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}
    }
  ]
}

Versiona la policy in Git. Ogni modifica viene rivista in una pull request, applicata con Terraform o CloudFormation e tracciata nel log CI. Le policy modificate manualmente dalla console deriva no e si rompono.

Test prima della produzione

Una lifecycle policy che elimina il bucket sbagliato è un danno professionale irreparabile. Testa prima su un prefisso ristretto. Crea documents/test/ con file campione e una policy di test dedicata che si applica solo a quel prefisso. Usa durate brevi — Days: 1 — per far scattare le transizioni rapidamente.

Controlla i risultati con aws s3api list-objects-v2 --prefix documents/test/ e verifica che le storage class siano cambiate come previsto. Poi allarga il filtro. Per i bucket ad alto rischio (legale, finance), esegui la policy in dry-run se il provider lo supporta, o simula con uno script che riporta cosa succederebbe senza applicare le modifiche.

Le durate minime di storage non sono negoziabili

Le regole lifecycle rispettano gli addebiti per durata minima di storage. Spostare un oggetto in Glacier Flexible Retrieval ed eliminarlo dopo 7 giorni genera comunque un addebito per 90 giorni. Deep Archive addebita 180 giorni minimi. Una regola mal progettata che porta oggetti da Standard a Deep Archive all'eliminazione entro 30 giorni paga tre volte: una per la transizione, una per la durata minima, una per l'egress se si ripristina.

Il pattern sicuro: transita verso un livello più freddo solo se prevedi che l'oggetto vi rimanga almeno per la durata minima. Se i file vengono in genere eliminati dopo 60 giorni, non portarli attraverso Deep Archive (minimo 180 giorni). Fermati a Standard-IA.

Gestire legal hold ed eccezioni

Ogni sistema di archiviazione ha bisogno di una via d'uscita per il contenzioso. Un tag come legal-hold: true deve esentare gli oggetti dall'eliminazione lifecycle. Implementa con un filtro della regola che esclude gli oggetti taggati:

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

Combinato con S3 Object Lock in modalità Governance o Compliance, gli oggetti con tag legal-hold diventano immutabili fino al rilascio. La modalità Compliance impedisce persino la cancellazione da root, che è quanto si aspettano i requisiti WORM di FINRA 4511, SEC 17a-4 e HIPAA §164.316.

Automatizzare la pipeline di tagging

L'archiviazione vale quanto i tag che la guidano. Automatizza il tagging all'ingestion: una Lambda attivata da S3 ObjectCreated esamina il file e applica i tag content-type, department, retention-class. Per i dati esistenti non ancora taggati, esegui un job di tagging batch con S3 Batch Operations.

Fonti per i valori dei tag:

  • Estensione del file e magic bytes (un .pdf con "GDPR" nei metadati riceve il tag compliance)
  • Sorgente di upload (una chiave API collegata all'app finance auto-tagga finance)
  • Content scanning (Amazon Macie rileva dati PII e tagga di conseguenza)
  • Input utente all'upload (un form con dropdown Reparto)

I tag costano $0,01 per 10.000 richieste di tag in S3; vale l'investimento per un targeting preciso del lifecycle.

Audit trail dell'archiviazione

Registra ogni azione lifecycle. CloudTrail cattura gli eventi LifecycleTransition e LifecycleExpiration. Convogliali in Athena, Splunk o Datadog per una cronologia interrogabile. Quando un revisore chiede "quando è stato spostato in Glacier questo contratto del 2019", la query deve rispondere in secondi.

Includi nell'audit log:

  • Chiave oggetto e VersionId
  • Transizione da/a storage class
  • Trigger (età, tag, esplicito)
  • Timestamp
  • ID della policy corrispondente

Conserva l'audit log almeno quanto richiede la conservazione dei dati — se archivi per 7 anni, tieni l'audit lifecycle per 7 anni più un buffer. Il Garante della Privacy italiano può richiedere evidenza documentale delle politiche di conservazione in sede di ispezione.

Archiviazione cross-region e cross-cloud

Per il disaster recovery, gli archivi devono risiedere in una seconda region o cloud. S3 Cross-Region Replication può puntare a una storage class diversa nella destinazione: replica verso eu-west-1 direttamente in Glacier Deep Archive. Azure supporta qualcosa di simile con RA-GRS e object replication. GCS ha replicazione multi-region e turbo.

Per l'archiviazione cross-cloud (AWS primario, Backblaze B2 secondario), rclone con cron esegue job di sync pianificati. La copia secondaria garantisce indipendenza da interruzioni specifiche del vendor, da attacchi ransomware che colpiscono l'IAM di un singolo provider, o da controversie di fatturazione.

Archivi pronti al ripristino

Un archivio che non riesci a ripristinare è solo un'eliminazione lenta. Documenta il percorso di ripristino per ogni livello:

  • Glacier Instant Retrieval: GET diretto, nessun ripristino necessario
  • Glacier Flexible Retrieval: RestoreObject con Tier=Standard (3-5 ore) o Expedited (1-5 minuti)
  • Glacier Deep Archive: RestoreObject con Standard (12 ore) o Bulk (48 ore)
  • Azure Archive: Set Blob Tier a Hot/Cool, 15 ore di rehydration

Esercitati trimestralmente. Scegli un oggetto archiviato a caso, ripristinalo, verificalo rispetto all'hash del manifest e cronometra l'intero processo. I ripristini non testati si scoprono nel modo più costoso durante gli incidenti.

Gestire trasferimenti di archiviazione una tantum

Il lifecycle automatizzato gestisce lo stato stazionario, ma a volte è necessario spostare immediatamente un batch specifico di 50 GB — i file di un dipendente in uscita, la chiusura di un progetto cliente. Per questi casi, uno strumento di trasferimento manuale con verifiche di integrità è preferibile a modificare le policy lifecycle. HexaTransfer sposta file fino a 10 GB con cifratura end-to-end AES-256-GCM e un link monouso, utile per consegnare archivi a consulenti legali esterni o a un successore senza dovergli dare accesso all'intero bucket di archivio.

Imposta la lifecycle policy, automatizza il tagging, convoglia gli audit log e il sistema funzionerà da solo. Rivedi il cost dashboard trimestralmente; aggiusta le soglie quando il pattern di accesso cambia. È tutto quello che serve — una volta configurato, richiede meno attenzione degli ordini del caffè.

Provalo su hexatransfer.com — gratuito, senza account, max 10 GB.

Invia file di grandi dimensioni in modo sicuro con crittografia end-to-end

Trasferisci file fino a 10 GB gratuitamente con crittografia end-to-end. Nessun account necessario. I tuoi file vengono crittografati nel browser prima del caricamento — nessun altro può leggerli.

Invia un file