Puoi utilizzare il plug-in Google Analyze Code Security per Jenkins per convalidare l'infrastruttura come codice (IaC) che fa parte del tuo progetto Jenkins. La convalida di IaC ti consente di determinare se le definizioni delle risorse Terraform violano le policy dell'organizzazione e i rilevatori di Security Health Analytics esistenti applicati alle tue Google Cloud risorse.
Per saperne di più sulla convalida di IaC, consulta Convalidare IaC in base alle Google Cloud policy dell'organizzazione.
La convalida di IaC funziona solo con i progetti freestyle di Jenkins.
Prima di iniziare
Completa questi passaggi per iniziare a utilizzare la convalida di IaC con Jenkins.
Attiva il livello Security Command Center Premium o Enterprise
Verifica che il livello Security Command Center Premium o Enterprise sia attivato a livello di organizzazione.
L'attivazione di Security Command Center abilita le API securityposture.googleapis.com e securitycentermanagement.googleapis.com.
Crea un account di servizio
Crea un account di servizio che puoi utilizzare per il plug-in Google Analyze Code Security per Jenkins.
-
Assicurati di disporre del ruolo IAM Creazione account di servizio
(
roles/iam.serviceAccountCreator) e del ruolo Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin). Scopri come concedere i ruoli. -
Nella Google Cloud console vai a Crea service account.
Vai a Crea account di servizio - Seleziona il progetto.
-
Nel campo Nome service account, inserisci un nome. La Google Cloud console compila il campo ID service account in base a questo nome.
Nel campo Descrizione service account, inserisci una descrizione. Ad esempio,
Service account for quickstart. - Fai clic su Crea e continua.
-
Concedi il ruolo Security Posture Shift-Left Validator al account di servizio.
Per concedere il ruolo, trova l'elenco Seleziona un ruolo, quindi seleziona Security Posture Shift-Left Validator.
- Fai clic su Continua.
-
Fai clic su Fine per completare la creazione del account di servizio.
Non chiudere la finestra del browser. Lo utilizzerai nel prossimo passaggio.
- Nella Google Cloud console, fai clic sull'indirizzo email del account di servizio che hai creato.
- Fai clic su Chiavi.
- Fai clic su Aggiungi chiave, quindi su Crea nuova chiave.
- Fai clic su Crea. Un file della chiave JSON viene scaricato sul computer.
- Fai clic su Chiudi.
Crea un account di servizio:
Crea una chiave dell'account di servizio:
Per saperne di più sulle autorizzazioni di convalida di IaC, consulta IAM per le attivazioni a livello di organizzazione.
Definisci le policy
Definisci le policy dell'organizzazione e i rilevatori di Security Health Analytics. Per definire queste policy utilizzando una postura di sicurezza, completa le attività descritte in Creare ed eseguire il deployment di una postura.
Installa e configura il plug-in
- Nella console Jenkins, fai clic su Manage Jenkins (Gestisci Jenkins) > Manage Plugins (Gestisci plug-in).
- Nella scheda Available (Disponibili), cerca google-analyze-code-security.
- Completa i passaggi di installazione.
- Fai clic su Manage Jenkins (Gestisci Jenkins) > Configure System (Configura sistema).
- Nella sezione Google Analyze Code Security, fai clic su Add credential (Aggiungi credenziale).
- In Organization ID (ID organizzazione), inserisci l'ID organizzazione dell' Google Cloud organizzazione che include le risorse Terraform che vuoi creare o modificare.
- In Security Command Center Credential (Credenziale Security Command Center), aggiungi la chiave del account di servizio.
- Verifica la connessione per verificare le credenziali del account di servizio.
- Fai clic su Salva.
Crea il file JSON del piano Terraform
Crea il codice Terraform. Per istruzioni, consulta Creare il codice Terraform.
Installa il plug-in Terraform per Jenkins.
Nella console Jenkins, nel progetto freestyle di Jenkins, vai alla pagina Configuration (Configurazione).
Fai clic su Source Code Management (Gestione del codice sorgente).
In Repository URL (URL repository), inserisci l'URL del codice Terraform che hai creato.
Fai clic su Build steps (Passaggi di build).
Aggiungi i seguenti passaggi:
Inizializza Terraform:
terraform initCrea un file del piano Terraform.
terraform plan -out=TF_PLAN_FILESostituisci
TF_PLAN_FILEcon il nome del file del piano Terraform. Ad esempio,myplan.tfplan.Converti il file del piano in formato JSON:
terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILESostituisci
TF_PLAN_JSON_FILEcon il nome del file del piano Terraform, in formato JSON. Ad esempio,mytfplan.json.
Aggiungi il plug-in al progetto Jenkins
- Nella console Jenkins, nel progetto freestyle di Jenkins, vai alla pagina Configuration (Configurazione).
- In Build Steps (Passaggi di build), fai clic su Add build step (Aggiungi passaggio di build) > Perform Code Scan during Build (Esegui la scansione del codice durante la build).
- Inserisci l'ID organizzazione.
- Fornisci il percorso del file del piano Terraform, in formato JSON.
(Facoltativo) Imposta i criteri di errore della build. I criteri di errore si basano sul numero di problemi di gravità critica, elevata, media e bassa rilevati dalla scansione di convalida di IaC. Puoi specificare il numero di problemi di ogni gravità consentiti e la modalità di aggregazione dei problemi (con AND o OR).
Fai clic su Fail on Asset Violation (Errore in caso di violazione degli asset).
Se vuoi che la build non vada a buon fine solo se viene raggiunto il conteggio dei problemi di tutti i livelli di gravità, seleziona AND. Se vuoi che la build non vada a buon fine se viene raggiunto il conteggio dei problemi di qualsiasi livello di gravità, seleziona OR. Ad esempio, se vuoi che la build non vada a buon fine se rileva un problema critico o un problema di gravità elevata, imposta il valore di aggregazione su OR.
Indica il numero di problemi nei vari livelli di gravità che vuoi consentire prima che la build non vada a buon fine.
Se non vuoi specificare un criterio di errore, seleziona Ignore Asset Violation (Ignora violazione degli asset).
Fai clic su Salva.
Ora puoi eseguire la build per convalidare il file del piano Terraform.
Visualizza il report sulle violazioni di IaC
Nella console Jenkins, fai clic sul workflow più recente per la build.
Fai clic su Status (Stato). I seguenti file HTML sono disponibili come artefatti di build:
- Se il plug-in è stato eseguito, il report sulle violazioni (
GoogleAnalyzeCodeSecurity_ViolationSummary.html)
Il report raggruppa le violazioni per gravità. La sezione relativa alle violazioni descrive la regola che non è stata rispettata e l'ID risorsa del piano Terraform che ha violato la regola.
- Se la build non è andata a buon fine, un report di riepilogo degli errori
- Se il plug-in è stato eseguito, il report sulle violazioni (
Risolvi eventuali violazioni nel codice Terraform prima di applicarlo.
Passaggi successivi
- Visualizza il plug-in Google Analyze Code Security.