heygrc
Risposta

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.

  1. 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.

  2. 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.

  3. 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.

config/payments.ts+1 -1
- const key = "<the live key, pasted inline>"+ const key = process.env.PAYMENTS_SECRET_KEYconst client = new Payments(key)
heygrcISO 27001 A.8.24

La chiave viene letta da un secret gestito a runtime invece di risiedere nel repository.