Che cos'è la politica come codice?
Policy-as-code è un approccio alla gestione delle policy in cui le policy vengono definite, aggiornate, condivise e applicate utilizzando il codice. Sfruttando l'automazione basata sul codice invece di affidarsi a processi manuali per gestire le policy, le policy-as-code consentono ai team di muoversi più rapidamente e di ridurre il potenziale di errori dovuti all'uomo.
Allo stesso tempo, un approccio di tipo policy-as-code a domini come quello della sicurezza permette di definire e gestire le policy in modi che diversi tipi di stakeholder - come gli sviluppatori e gli ingegneri della sicurezza - possono comprendere.
Questa pagina spiega come funziona la policy-as-code, perché è importante e come sfruttarla nel contesto della sicurezza.
Definizione di Policy-As-Code
Per capire cosa significa policy-as-code, bisogna innanzitutto comprendere la definizione di "policy".
In questo contesto, una policy è qualsiasi tipo di regola, condizione o istruzione che regola le operazioni o i processi IT. Una politica potrebbe essere una regola che definisce quali condizioni devono essere soddisfatte affinché un codice superi un controllo di sicurezza e possa essere distribuito, ad esempio. Oppure, potrebbe essere un insieme di procedure che vengono eseguite automaticamente in risposta a un evento di sicurezza.
La politica come codice è l'uso del codice per definire e gestire regole e condizioni. Con un approccio di tipo policy-as-code, i team scrivono le politiche utilizzando un qualche tipo di linguaggio di programmazione, come Python, YAML o Rego. Il linguaggio specifico dipende solitamente dagli strumenti di gestione e applicazione delle policy-as-code che sta utilizzando.
Quando gli ingegneri devono apportare aggiornamenti, lo fanno modificando il codice esistente. Possono anche condividere il codice con altri per dare loro visibilità alle loro politiche, utilizzando i sistemi di controllo di versione (VCS). E, ultimo ma non meno importante, possono utilizzare un motore di applicazione delle policy come codice per garantire il rispetto delle policy. Un motore di applicazione può essere un codice di policy-as-code autonomo, oppure può essere integrato in una piattaforma più grande.
Politica come codice vs. Infrastruttura come codice
Il concetto di policy-as-code può sembrare simile a Infrastructure as Code, o IaC. L'IaC, che utilizza file basati su codici per automatizzare la configurazione e il provisioning dell'infrastruttura, è una pratica comune da anni per i team operativi IT.
Mentre la IaC è vantaggiosa per i team operativi IT che devono effettuare il provisioning dell'infrastruttura, le policy-as-code possono migliorare le operazioni di sicurezza, la gestione della conformità, la gestione dei dati e molto altro ancora.
I vantaggi di Policy-as-Code
Rispetto all'alternativa - che consiste nel gestire manualmente regole, condizioni e procedure - le policy-as-code offrono diversi vantaggi critici:
- Efficienza: Quando le politiche sono definite come codice, possono essere condivise e applicate automaticamente in scala virtualmente illimitata. Questo è molto più efficiente che richiedere ai tecnici di applicare manualmente una politica ogni volta che è necessario farlo. L'aggiornamento e la condivisione delle politiche sono anche più efficienti quando le politiche sono definite in un codice chiaro e conciso, anziché essere descritte in un linguaggio umano che alcuni ingegneri potrebbero interpretare in modo diverso da altri.
- Velocità: La capacità di automatizzare l'applicazione delle policy significa anche che le policy-as-code si traducono in operazioni più rapide rispetto a un approccio manuale.
- Visibilità: Quando le politiche sono definite nel codice, è facile per tutti gli stakeholder utilizzare il codice per capire cosa succede all'interno di un sistema. Possono rivedere le regole di allerta o di bonifica semplicemente controllando quali politiche basate sul codice sono in vigore, ad esempio, invece di dover chiedere ad altri ingegneri e attendere una risposta.
- Collaborazione: Fornendo un mezzo uniforme e sistematico per gestire le politiche, le policy-as-code semplificano la collaborazione. Questo include la collaborazione non solo all'interno dello stesso team, ma anche tra diversi tipi di team, soprattutto tra gli sviluppatori (che sono abituati a pensare e a lavorare in termini di codice) e gli specialisti di altri settori, come il team addetti alla sicurezza o le operazioni IT.
- Precisione: Quando i team definiscono e gestiscono le politiche utilizzando il codice, evitano il rischio di commettere errori di configurazione quando gestiscono un sistema manualmente.
- Controllo della versione: Se tiene traccia delle diverse versioni dei suoi file di policy, man mano che vengono modificate, le policy-as-code assicurano che possa tornare facilmente ad una configurazione precedente nel caso in cui una nuova versione della policy crei un problema.
- Test e validazione: Quando le politiche sono scritte nel codice, è facile convalidarle utilizzando strumenti di auditing automatizzati. In questo modo, le policy-as-code possono contribuire a ridurre il rischio di introdurre errori critici negli ambienti di produzione.
Come utilizzare la Policy-As-Code
Il modo più semplice per trarre vantaggio dalle policy-as-code oggi è adottare strumenti che supportano nativamente le policy-as-code per qualsiasi dominio che desidera gestire con un approccio di policy-as-code.
Ad esempio, nel campo della sicurezza, Prisma Cloud, Bridgecrew e Checkov consentono ai team di definire le politiche di sicurezza utilizzando il codice. Possono anche eseguire automaticamente la scansione e l'audit dei file di policy, per rilevare configurazioni errate o vulnerabilità prima della distribuzione. Questo approccio è un modo in cui questi strumenti semplificano la gestione della postura di sicurezza del cloud.
Potrebbe anche voler esplorare strumenti come Open Policy Agent, che mira a fornire un quadro comune per l'applicazione di policy-as-code a qualsiasi dominio. Ad oggi, tuttavia, l'adozione da parte dei fornitori di framework di policy-as-code basati sulla comunità come questo rimane limitata, motivo per cui la ricerca di strumenti del fornitore con supporto nativo di policy-as-code è il percorso più semplice per implementare un approccio di policy-as-code alla sicurezza o a qualsiasi altro dominio IT.