Come memorizzare le chiavi API e i secret senza violare l'ISO 27001 A.8.24?
il team heygrc
Non inserire mai la chiave nel codice sorgente. Leggila dall'ambiente o da un archivio gestito di secret a runtime, tieni fuori dal repository e dai log e ruota qualsiasi secret che sia stato committato. L'ISO 27001 A.8.24 (e la semplice prudenza) richiede che le chiavi siano gestite, non hardcodate.
Leggi i secret da un archivio gestito
Carica le credenziali dalle variabili d'ambiente supportate da un gestore di secret (i secret della piattaforma, un vault, una configurazione supportata da KMS cloud), risolte a runtime. Il codice fa riferimento al secret, ma non lo contiene mai.
Tienili fuori dal repository e dai log
Una chiave nel codice finisce nel repository, nella sua cronologia e in ogni clone e cache CI. Una chiave in una riga di log finisce ovunque vanno i tuoi log. Nessuna delle due situazioni può essere annullata eliminando la chiave in un commit successivo.
Ruota qualsiasi cosa sia trapelata
Se un secret è stato committato, trattalo come esposto e ruotalo. Rimuoverlo dal file corrente non lo rimuove dalla cronologia già distribuita.
- const key = "<the live key, pasted inline>"+ const key = process.env.PAYMENTS_SECRET_KEYconst client = new Payments(key)La chiave viene letta da un secret gestito a runtime invece di risiedere nel repository.