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:
- Per ogni directory di origine, crea una cartella Drive corrispondente.
- Cripta e carica i file della directory nella cartella Drive creata.
- 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).