Puoi utilizzare l'azione Analizza la sicurezza del codice per convalidare l'infrastruttura come codice (IaC) che fa parte del flusso di lavoro di GitHub Actions. La convalida di IaC ti consente di determinare se la tua risorsa Terraform le definizioni 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 Convalida il tuo IaC in base ai criteri dell'organizzazione Google Cloud.
Prima di iniziare
Completa queste attività per iniziare a utilizzare la convalida IaC con le azioni GitHub.
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 da utilizzare per l'azione Analizza la sicurezza del codice.
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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
. - Click Create and continue.
-
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.
- Click Continue.
-
Click Done to finish creating the service account.
Per ulteriori informazioni sulle autorizzazioni di convalida IaC, consulta IAM per le attivazioni a livello di organizzazione.
Configura l'autenticazione
Configura la federazione delle identità per i carichi di lavoro con il tuo provider di identità GitHub. Per istruzioni, consulta Federazione delle identità per i carichi di lavoro.
Richiedi l'URL per il tuo token ID federazione di Workload Identity. Ad esempio:
https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
.Considera quanto segue:
PROJECT_NUMBER
è il numero di progetto per Progetto Google Cloud in cui hai configurato la federazione delle identità per i carichi di lavoro.POOL_ID
è il nome del pool.PROVIDER_ID
è il nome del tuo provider di identità.
Aggiungi l'azione di autenticazione su Google Cloud al tuo flusso di lavoro per autenticare l'azione di convalida IaC.
Definisci i criteri
Definisci criteri dell'organizzazione e Rilevatori di Security Health Analytics. Per definire questi criteri utilizzando una security posture, completa le attività in Crea una postura ed eseguine il deployment.
Crea il file JSON del piano Terraform
Creare il codice Terraform. Per le istruzioni, consulta Creare il file Terraform Google Cloud.
In GitHub Actions, inizializza Terraform. Ad esempio, se utilizzi l'azione HashiCorp - Configura Terraform, esegui il seguente comando:
- name: Terraform Init id: init run: terraform init
Crea un file di piano Terraform:
- name: Create Terraform Plan id: plan run: terraform plan -out=TF_PLAN_FILE
Sostituisci
TF_PLAN_FILE
con il nome del piano Terraform . Ad esempio,myplan.tfplan
.Converti il file del piano in formato JSON:
- name: Convert Terraform Plan to JSON id: convert run: 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 l'azione al flusso di lavoro delle azioni GitHub
- Nel repository GitHub, vai al flusso di lavoro.
- Apri l'editor del flusso di lavoro.
- Nella barra laterale di GitHub Marketplace, cerca Analyze Code Security.
- Copia la sintassi nella sezione Installazione.
- Incolla la sintassi come nuovo passaggio nel flusso di lavoro.
Sostituisci i seguenti valori:
workload_identity_provider
con il link all'URL per il token ID della federazione di Workload Identity.service_account
con l'indirizzo email dell'account di servizio che hai creato per l'azione.organization_id
con l'ID organizzazione Google Cloud.scan_file_ref
con il percorso del file del piano Terraform, in formato JSON.failure_criteria
con la soglia di errore criteri che determinano quando l'azione non riesce. I criteri di soglia si basano sul numero di problemi critici, di alta, media e bassa gravità rilevati dalla verifica della convalida IaC.failure_criteria
specifica il numero sono consentiti i problemi di ogni gravità e la modalità di aggregazione dei problemi (AND
oOR
). Ad esempio, se vuoi che l'azione non vada a buon fine se riscontra un problema critico o un problema ad alta gravità, imposta Dafailure_criteria
aCritical:1,High:1,Operator:OR
. L'impostazione predefinita èCritical:1,High:1,Medium:1,Low:1,Operator:OR
, il che significa che se la scansione di convalida IaC riscontra un problema, l'azione deve non riuscire.
Ora puoi eseguire il flusso di lavoro per convalidare il file del piano Terraform. Per eseguire flusso di lavoro, consulta la sezione Eseguire manualmente un del flusso di lavoro.
Visualizzare la segnalazione di violazione IaC
Nel tuo repository GitHub, fai clic su Azioni e seleziona il tuo flusso di lavoro.
Fai clic sull'esecuzione più recente del flusso di lavoro.
Nella sezione Elementi, il report sulla violazione (
ias-scan-sarif.json
) è disponibile in un file ZIP. Il report include i seguenti campi:- Un campo
rules
che descrive quali criteri sono stati violati dal piano Terraform. Ogni regola include unruleID
che puoi associare ai risultati inclusi nel report. - Un campo
results
che descrive le modifiche agli asset proposte violano una regola specifica.
- Un campo
Risolvi eventuali violazioni all'interno del codice Terraform prima di applicarlo.
Passaggi successivi
- Visualizza il codice sorgente dell'azione analyze-code-security-scc su GitHub.