Ogni programma di conformità ha una libreria di documenti: policy, descrizioni dei controlli, procedure, ciascuno che descrive come l'organizzazione intende comportarsi. I documenti sono necessari. Tuttavia, non è lì che la conformità ha effettivamente successo o fallisce.
Il divario tra policy e realtà
La policy di controllo degli accessi afferma il principio del minor privilegio. La policy di crittografia afferma che i dati in transito sono protetti. La policy di conservazione afferma che i dati personali vengono eliminati dopo lo scopo per cui sono stati raccolti. Queste sono affermazioni vere sull'intenzione.
Se sono affermazioni vere sul tuo sistema dipende esclusivamente dal codice: la policy IAM effettivamente distribuita, il livello minimo di TLS che il servizio applica effettivamente, il processo di eliminazione che viene effettivamente eseguito. Il divario tra il documento e la distribuzione è esattamente dove gli audit trovano le loro risultanze, e si apre un pull request ordinario alla volta.
Il diff è dove lo stato del controllo cambia
Un controllo non si degrada in silenzio. Qualcosa lo modifica: un ruolo viene ampliato, un'impostazione di crittografia viene rimossa, un limite di conservazione viene eliminato. Ciascuna di queste modifiche è un diff, scritto da qualcuno, revisionato da qualcuno, con un momento in cui avrebbe potuto essere individuato.
Se vuoi governare un controllo, governalo nel momento in cui cambia. Il documento di policy non può farlo: non sa che il diff è avvenuto. Il pull request è dove lo stato del controllo si sposta effettivamente, quindi è lì che dovrebbe essere verificato.
Evidenze che corrispondono alla realtà
Un effetto collaterale del verificare i controlli nel diff è che le tue evidenze smettono di essere una storia che assembli al momento dell'audit e iniziano a essere un registro di ciò che è effettivamente successo: questa modifica ha interessato questo controllo, ecco la clausola, ecco come è stata risolta, nel thread del PR, con timestamp.
heygrc cita il controllo specifico sulla modifica che lo interessa, quindi il percorso è ancorato al codice, non a un documento che descrive ciò che il codice dovrebbe fare.