Integra la convalida IaC con Jenkins

Puoi utilizzare il plug-in di sicurezza di Google Analyze Code per Jenkins per la convalida nell'Infrastructure as Code (IaC) che fa parte del tuo progetto Jenkins. La convalida di IaC ti consente di determinare se le definizioni delle tue risorse Terraform violano i criteri dell'organizzazione esistenti e Rilevatori di Security Health Analytics applicati alle tue risorse Google Cloud.

Per ulteriori informazioni sulla convalida IaC, consulta Convalidare il codice IaC in base alla dell'organizzazione Google Cloud .

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

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 viene attivato a livello di organizzazione.

L'attivazione di Security Command Center abilita securityposture.googleapis.com e securitycentermanagement.googleapis.com API.

Crea un account di servizio

Crea un account di servizio da utilizzare per Google Analyze Code Security 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 livello di organizzazione attivazioni.

Definisci i criteri

Definisci i criteri dell'organizzazione e i rilevatori di Security Health Analytics. Per definire utilizzando una strategia di sicurezza, completa le attività in Creare eseguire il deployment della postura.

Installare e configurare il plug-in

  1. Nella console Jenkins, fai clic su Gestisci Jenkins > Gestisci i plug-in.
  2. Nella scheda Available (Disponibile), cerca google-analyze-code-security.
  3. Completa la procedura di installazione.
  4. Fai clic su Gestisci Jenkins > Configura il sistema.
  5. Nella sezione Google Analyze Code Security, fai clic su Add credenziale.
  6. In Organization ID (ID organizzazione), inserisci l'ID organizzazione per Google Cloud che include le risorse Terraform che vuoi creare o modificare.
  7. In Credenziale Security Command Center, aggiungi la chiave dell'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. Creare il codice Terraform. Per le istruzioni, consulta Creare il file Terraform Google Cloud.

  2. Installa il plug-in Terraform per Jenkins.

  3. Nella console Jenkins, nel tuo progetto freestyle in Jenkins, vai alla sezione Configurazione.

  4. Fai clic su Gestione del codice sorgente.

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

  6. Fai clic su Passaggi build.

  7. Aggiungi i seguenti passaggi:

    1. Inizializza Terraform:

      terraform init
      
    2. Creare un file del piano Terraform.

      terraform plan -out=TF_PLAN_FILE
      

      Sostituisci TF_PLAN_FILE con il nome 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 di Terraform del piano di controllo in formato JSON. Ad esempio, mytfplan.json.

Aggiungi il plug-in al tuo progetto Jenkins

  1. Nella console Jenkins, nel tuo progetto freestyle in Jenkins, vai alla sezione Configurazione.
  2. In Passaggi build, fai clic su Aggiungi passaggio build > Esegui la scansione del codice durante Creazione.
  3. Inserisci l'ID organizzazione.
  4. Specifica il percorso del file del piano Terraform in formato JSON.
  5. (Facoltativo) Imposta i criteri di errore della build. I criteri di errore si basano il numero di problemi di gravità critica, alta, media e bassa che l'IaC risposte durante la scansione di convalida. Puoi specificare quanti problemi per ogni gravità e come vengono aggregati i problemi (AND oppure OPPURE).

    1. Fai clic su Non superato per violazione della risorsa.

    2. Se vuoi che la build non vada a buon fine solo se vengono conteggiati tutti i problemi vengono raggiunti i livelli di gravità, seleziona E. Se vuoi che la build abbia errori Se viene raggiunto il numero di problemi di qualsiasi livello di gravità, seleziona OPPURE. Ad esempio, se vuoi che la build abbia esito negativo se rileva un errore problema o un problema con gravità alta, imposta il valore aggregato su OR.

    3. Indica il numero di problemi ai vari livelli di gravità che vuoi affinché la build non vada a buon fine.

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

  6. Fai clic su Salva.

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

Visualizzare la segnalazione di violazione IaC

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

  2. Fai clic su Stato. I seguenti file HTML sono disponibili come elementi della build:

    • Se il plug-in è stato eseguito, viene segnalata la violazione (GoogleAnalyzeCodeSecurity_ViolationSummary.html)

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

    • Se la build non è riuscita, viene visualizzato un report di riepilogo degli errori
  3. Risolvi eventuali violazioni all'interno del codice Terraform prima di applicarlo.

Passaggi successivi