Best practice per l'importazione collettiva di file con crittografia lato client

Questa guida illustra le best practice per la creazione di uno strumento personalizzato per l'importazione collettiva di file con crittografia lato client (CSE) utilizzando l'API Drive.

Prendi in considerazione Drive per computer per le migrazioni self-service

Un utente può importare file dalla propria macchina locale utilizzando il client Drive per computer. Supporta completamente la crittografia lato client e consente agli utenti di crittografare e caricare i file autonomamente. La creazione di uno strumento personalizzato come descritto in questa guida è necessaria solo per importazioni collettive su larga scala, automatiche o multiutente.

Prima di iniziare

Devi capire come gestire un singolo file con crittografia lato client. Consulta Gestire singoli file CSE per scoprire i passaggi fondamentali per la crittografia, il caricamento/download e la decrittografia, inclusi la generazione di token e l'interazione con il servizio dell'elenco di controllo dell'accesso per le chiavi (KACLS).

Autenticazione con un service account

Utilizza un service account con delega a livello di dominio quando interagisci con l'API Drive. In questo modo, la tua applicazione può impersonare gli utenti, in modo da poterli scorrere in modo programmatico e caricare i file direttamente per loro conto.

Ricrea la struttura delle directory

Progetta lo strumento di importazione in modo che attraversi in modo ricorsivo i file e le cartelle di origine per rispecchiare la struttura di directory esistente su Drive. La procedura di alto livello è la seguente:

  1. Per ogni directory di origine, crea una cartella Drive corrispondente.
  2. Cripta e carica i file della directory nella cartella Drive creata.
  3. Ripeti la procedura per le sottodirectory.

Caricare i file nella posizione corretta

Carica sempre i file nella cartella Il mio Drive dell'utente corretto o in un Drive condiviso accessibile. Per trovare l'ID di un Drive condiviso o di una cartella, cercalo staticamente dall'URL web di Drive o dinamicamente utilizzando i metodi drives.list e files.list.

Evitare i duplicati

Drive consente a più file nella stessa cartella di condividere esattamente lo stesso nome file. Genera ID per i tuoi file prima di caricarli. Puoi utilizzare il metodo Drive API files.generateIds per farlo.

Memorizzando questi ID pregenerati, l'importatore può tentare di caricare ogni file nel relativo ID specifico. Se esiste già un file con questo ID, lo strumento può saltarlo in sicurezza. L'utilizzo di ID pregenerati aiuterà lo strumento a riprendersi da un arresto anomalo.

Richiedi un token CSE prima di ogni caricamento

Chiama generateCseToken per ogni file immediatamente prima del wrapping della chiave e del caricamento del file. Questo approccio garantisce che il token rifletta accuratamente lo stato attuale dei metadati associati, che possono cambiare.

Utilizzare i caricamenti ripristinabili per i file di grandi dimensioni

Utilizza i caricamenti ripresi dell'API Drive per eseguire la migrazione di file di grandi dimensioni. I caricamenti ripristinabili consentono all'importatore di riprovare a caricare i chunk non riusciti durante le interruzioni di rete, anziché riavviare l'intero caricamento del file.

Ripristinare le autorizzazioni di condivisione

Se lo strumento di importazione collettiva deve conservare le autorizzazioni di condivisione, prima cripta e carica il file, poi chiama il metodo permissions.create. Le autorizzazioni di condivisione non vengono applicate durante il caricamento del file.

Gestire la scadenza del token

Per le operazioni di lunga durata, lo script potrebbe riscontrare errori di autenticazione a causa della scadenza del token. Implementa la logica per aggiornare automaticamente i token di accesso e riprovare a caricare. Per saperne di più, consulta l'esempio open source che mostra come criptare e caricare un singolo file.

Convalida accuratamente i file importati

Esegui una convalida approfondita dopo un'importazione collettiva. Google non può decriptare e convalidare i tuoi file lato server. La sezione Convalida i file importati descrive diversi metodi per controllare a campione i singoli file.

Un metodo aggiuntivo per la verifica su larga scala, particolarmente utile dopo un'importazione collettiva, prevede l'utilizzo dello strumento di decrittografia ufficiale. Innanzitutto, scarica i contenuti criptati da Drive utilizzando Google Takeout. Quindi, prova a decriptare i file utilizzando lo strumento di decrittografia. Questa procedura consente di identificare eventuali file che non possono essere decriptati, indicando potenziali problemi nella logica di crittografia o wrapping delle chiavi dello strumento di importazione.

Informazioni su limiti e quote

I file con crittografia lato client sono soggetti ai limiti e alle quote standard di Drive. Tieni presente i limiti dei Drive condivisi, i limiti generali di file e cartelle e come gestire la tua quota. Inoltre, lo strumento di importazione deve gestire i limiti di frequenza del servizio di controllo dell'accesso per le chiavi (KACLS) e del provider di identità (IdP).