Integrare la convalida IaC con Jenkins

Puoi utilizzare il plug-in di Google Analyze Code Security per Jenkins per convalidare l'infrastruttura come codice (IaC) che fa parte del tuo progetto Jenkins. La convalida dell'IaC ti consente di determinare se le definizioni delle risorse Terraform violano i criteri dell'organizzazione esistenti e i rilevatori di Security Health Analytics applicati alle risorse Google Cloud.

Per ulteriori informazioni sulla convalida dell'IaC, consulta Convalidare l'IaC in base ai criteri dell'organizzazione Google Cloud.

La convalida IaC funziona solo con i progetti freestyle di Jenkins.

Prima di iniziare

Completa queste attività per iniziare a utilizzare la convalida IaC con Jenkins.

Attiva il livello Premium o Enterprise di Security Command Center

Verifica che il livello Premium o Enterprise di Security Command Center 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 di sicurezza di analisi del codice di Google per Jenkins.

  1. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Security Posture Shift-Left Validator role to the service account.

      To grant the role, find the Select a role list, then select Security Posture Shift-Left Validator.

    6. Click Continue.
    7. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  2. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.

Per ulteriori informazioni sulle autorizzazioni di convalida IaC, consulta IAM per le attivazioni a livello di organizzazione.

Definire i criteri

Definisci i criteri dell'organizzazione e i rivelatori di Security Health Analytics. Per definire questi criteri utilizzando una postura di sicurezza, completa le attività descritte in Creare e implementare una postura.

Installa e configura il plug-in

  1. Nella console di Jenkins, fai clic su Gestisci Jenkins > Gestisci plug-in.
  2. Nella scheda Disponibile, cerca google-analyze-code-security.
  3. Completa la procedura di installazione.
  4. Fai clic su Gestisci Jenkins > Configura sistema.
  5. Nella sezione Sicurezza del codice di Google Analyze, fai clic su Aggiungi credenziale.
  6. In ID organizzazione, inserisci l'ID organizzazione per l'organizzazione Google Cloud che include le risorse Terraform che vuoi creare o modificare.
  7. In Credenziale Security Command Center, aggiungi la chiave del account di servizio.
  8. Testa la connessione per verificare le credenziali dell'account di servizio.
  9. Fai clic su Salva.

Crea il file JSON del piano Terraform

  1. Crea il codice Terraform. Per le istruzioni, consulta Creare il codice Terraform.

  2. Installa il plug-in Terraform per Jenkins.

  3. Nella console di Jenkins, nel progetto freestyle di Jenkins, vai alla pagina Configurazione.

  4. Fai clic su Gestione codice sorgente.

  5. In URL del repository, inserisci l'URL del codice Terraform che hai creato.

  6. Fai clic su Passaggi per la creazione.

  7. Aggiungi i seguenti passaggi:

    1. Inizializza Terraform:

      terraform init
      
    2. Crea un file di piano Terraform.

      terraform plan -out=TF_PLAN_FILE
      

      Sostituisci TF_PLAN_FILE con il nome del file del piano Terraform. Ad esempio, myplan.tfplan.

    3. Converti il file del piano in formato JSON:

      terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILE
      

      Sostituisci TF_PLAN_JSON_FILE con il nome del file del piano Terraform in formato JSON. Ad esempio, mytfplan.json.

Aggiungi il plug-in al progetto Jenkins

  1. Nella console di Jenkins, nel progetto freestyle di Jenkins, vai alla pagina Configurazione.
  2. In Passaggi di compilazione, fai clic su Aggiungi passaggio di compilazione > Esegui scansione del codice durante la compilazione.
  3. Inserisci l'ID organizzazione.
  4. Fornisci il percorso del file del piano Terraform in formato JSON.
  5. (Facoltativo) Imposta i criteri di errore di compilazione. I criteri di errore si basano sul numero di problemi critici, di alta, media e bassa gravità rilevati dalla scansione di convalida IaC. Puoi specificare il numero di problemi di ciascuna gravità consentiti e la modalità di aggregazione dei problemi (AND o OR).

    1. Fai clic su Non va a buon fine in caso di violazione degli asset.

    2. Se vuoi che la compilazione non vada a buon fine solo se viene raggiunto il conteggio dei problemi di tutti i livelli di gravità, seleziona E. Se vuoi che la compilazione 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 compilazione non vada a buon fine se viene rilevato un problema critico o un problema di gravità elevata, imposta il valore aggregato su OR.

    3. Indica il numero di problemi con i vari livelli di gravità che vuoi consentire prima che la compilazione non vada a buon fine.

    Se non vuoi specificare un criterio di errore, seleziona Ignora violazione.

  6. Fai clic su Salva.

Ora puoi eseguire la compilazione per convalidare il file del piano Terraform.

Visualizzare il report sulle violazioni IaC

  1. Nella console di Jenkins, fai clic sul flusso di lavoro più recente per la build.

  2. Fai clic su Stato. I seguenti file HTML sono disponibili come elementi di compilazione:

    • Se il plug-in è stato eseguito, il report sulla violazione (GoogleAnalyzeCodeSecurity_ViolationSummary.html)

    Il report raggruppa le violazioni in base alla gravità. La sezione relativa alla violazione descrive la regola non soddisfatta e l'ID della risorsa del piano Terraform che ha violato la regola.

    • Se la compilazione non è riuscita, viene visualizzato un report di riepilogo degli errori
  3. Risolvi eventuali violazioni nel codice Terraform prima di applicarlo.

Passaggi successivi