Quando usi S3 SSE chiunque abbia le credenziali IAM corrette può leggere e / o scrivere i tuoi oggetti S3, proprio come se tu non stessi usando SSE. A prima vista sembra che l'unico vantaggio aggiunto sia che i dati sono protetti da situazioni in cui qualcuno accede a S3 in modalità offline, come dischi o backup (che dubito di AWS, è molto più probabile che facciano affidamento su solo la replica). Tuttavia, penso che sia necessario confrontarlo con l'alternativa per ottenere i veri benefici:
Ci sono due componenti necessari per la crittografia lato client con S3: una chiave di crittografia e credenziali IAM per l'autenticazione e l'autorizzazione. Quando si utilizza la crittografia lato server, sono necessarie solo credenziali IAM.
Quando si utilizza la crittografia lato client è necessario distribuire la chiave di crittografia a tutte le macchine che hanno accesso in lettura e / o scrittura ai dati crittografati su S3. In entrambi i casi è inoltre necessario distribuire le credenziali IAM.
Se le tue macchine sono compromesse, la tua chiave di crittografia è compromessa. È possibile invalidare le credenziali IAM non appena si conosce l'interruzione e, se si utilizzano ruoli IAM o credenziali IAM temporanee, l'utente malintenzionato ha accesso ai propri dati solo se hanno il controllo della macchina (il che è abbastanza grave, ma potrebbe non essere la fine del mondo, devi anche pensare a cosa succederà dopo). Con la crittografia lato client, l'utente malintenzionato avrà la chiave di crittografia e tutti i dati crittografati con la chiave di crittografia compromessa dovranno essere reencrittati. Con la crittografia lato server non dovrai ricodificare i tuoi dati, perché né tu né l'utente malintenzionato avranno la chiave di crittografia.
Anche se non si ha un'interruzione, ci sono situazioni in cui la chiave di crittografia può essere compromessa, se un laptop viene perso o rubato, se qualcuno che non conosce una e-mail migliore a qualcuno, o se qualcuno si chiude e non puoi essere completamente sicuro che non abbiano preso le cose con loro. A questo punto la chiave di crittografia è compromessa e probabilmente dovresti ricodificare tutti i tuoi dati. Questo può essere molto lavoro. Con la crittografia lato server tutto ciò che devi fare è invalidare le credenziali IAM e rilasciarne di nuove.
Ci sono probabilmente dei modi per mitigare i problemi con la crittografia lato client che ho menzionato sopra, ma a me sembra che usare SSE con S3 abbia un minor numero di aspetti negativi rispetto alla gestione da solo.
Infine, c'è il problema di quanto sia sicuro lasciare AWS a gestire le tue chiavi di crittografia:
Secondo AWS il sistema che gestisce le chiavi di crittografia è separato da S3, con l'intenzione che se qualcuno interrompe l'accesso a S3 dall'esterno non otterrà i tuoi dati perché non avranno le chiavi di crittografia. Se si inseriscono solo nel sistema di gestione delle chiavi (che probabilmente non è direttamente accessibile dall'esterno), non avranno i tuoi dati perché non hanno accesso a S3. Devono entrare in entrambi S3 e nel sistema di gestione delle chiavi per accedere ai tuoi dati.
Se invece si inseriscono nel data center fisico, potrebbero avere accesso sia al sistema di gestione delle chiavi che a S3 allo stesso tempo, ma la domanda è se questo rende le cose più semplici o meno. Penso che prima di tutto dobbiamo affidarci ad AWS per adottare misure di sicurezza appropriate per impedire alle persone di entrare nei loro data center, e in secondo luogo che per ottenere effettivamente le chiavi dal sistema di gestione delle chiavi devi fare qualcosa di più di semplicemente strattona alcune unità disco. Per quanto ho visto, AWS non pubblica esattamente come è protetto il sistema di gestione delle chiavi, più che dire che è protetto con più livelli di sicurezza. È una speculazione, ma la crittografia del disco è probabilmente uno di questi.