Convalida il tuo IaC in base ai criteri della tua organizzazione Google Cloud

Questo documento descrive come convalidare la tua infrastruttura come codice (IaC) in base ai criteri dell'organizzazione e ai rilevatori di Security Health Analytics che hai definito nella tua organizzazione Google Cloud. IaC consente di creare e gestire le risorse cloud utilizzando linguaggi come Terraform, in modo da poter eseguire il deployment delle risorse utilizzando un flusso di lavoro di sviluppo.

La convalida di IaC consente di determinare se le definizioni delle risorse nuove o modificate violano i criteri esistenti applicati alle risorse Google Cloud (ad esempio cluster, bucket o istanza). Puoi definire questi criteri utilizzando posture di sicurezza, ma la funzionalità di convalida IaC analizza il tuo codice in base a tutti i criteri della tua organizzazione Google Cloud. La convalida IaC aiuta gli sviluppatori a identificare e risolvere eventuali problemi di sicurezza nella configurazione IaC di asset o risorse prima che vengano applicati al tuo ambiente Google Cloud.

La funzionalità di convalida IaC supporta i file di piano Terraform. Puoi convalidare il tuo piano Terraform utilizzando Google Cloud CLI oppure integrare il processo di convalida nel tuo flusso di lavoro per sviluppatori in Jenkins o GitHub.

Prima di iniziare

Completa queste attività per iniziare con la convalida IaC.

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.

Configurare le autorizzazioni

  1. Assicurati di disporre dei seguenti ruoli nell'organizzazione: Security Posture Shift-Left Validator

    Verifica i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona l'organizzazione.
    3. Nella colonna Entità, individua la riga contenente il tuo indirizzo email.

      Se il tuo indirizzo email non è in questa colonna, significa che non disponi di alcun ruolo.

    4. Nella colonna Ruolo per la riga contenente il tuo indirizzo email, controlla se l'elenco dei ruoli include quelli richiesti.

    Concedi i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona l'organizzazione.
    3. Fai clic su Concedi l'accesso.
    4. Nel campo Nuove entità, inserisci il tuo indirizzo email.
    5. Nell'elenco Seleziona un ruolo, scegli un ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ciascun ruolo aggiuntivo.
    7. Fai clic su Salva.

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

Configura Google Cloud CLI

In questa pagina puoi utilizzare gli esempi di gcloud CLI da uno dei seguenti ambienti di sviluppo:

  • Cloud Shell: per utilizzare un terminale online con gcloud CLI già configurato, attiva Cloud Shell.

    In fondo a questa pagina viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.

  • shell locale: per utilizzare gcloud CLI in un ambiente di sviluppo locale, installa e initialize gcloud CLI.

Per configurare gcloud CLI in modo da utilizzare la rappresentazione degli account di servizio per l'autenticazione con le API di Google, anziché le tue credenziali utente, esegui questo comando:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

Per ulteriori informazioni, consulta Impersonificazione degli account di servizio.

Abilita le API

Abilita le API Security posture service and Security Command Center management.

Abilita le API

Definisci i criteri

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

Crea il tuo codice Terraform

Utilizza i flussi di lavoro e gli strumenti degli sviluppatori per creare un file Terraform che includa gli asset Google Cloud che vuoi creare o modificare.

Considera quanto segue:

  • Completa l'attributo padre (progetto, cartella o organizzazione) di ogni risorsa o asset nella configurazione di Terraform.
  • Modifica separatamente gli asset e le norme. L'API non supporta la convalida dei file di piano Terraform che modificano contemporaneamente asset e criteri.
  • Utilizza solo i tipi di asset e le norme supportati. Per un elenco dei tipi di asset supportati e delle relative norme, consulta Tipi di asset supportati e norme per la convalida IaC.
  • Consulta le limitazioni per la convalida IaC.
  • Non includere informazioni sensibili come password o altre informazioni che consentono l'identificazione personale nel file del piano Terraform. Se la funzionalità di convalida rileva campi contrassegnati come sensibili nelle modifiche alle risorse, questi vengono rimossi.

Dopo aver creato il codice Terraform, puoi eseguire il report di convalida IaC. Puoi utilizzare Google Cloud CLI, Jenkins o GitHub Actions.

Utilizzare Google Cloud CLI per creare un report di convalida IaC

Per creare un report di convalida IaC, completa i seguenti passaggi:

  1. Nell'interfaccia alla gcloud CLI, esegui terraform init.

    Verifica di eseguire il provider Terraform versione 5.5 o successiva. Se necessario, esegui l'upgrade alla versione più recente del provider Google:

    terraform init -upgrade
    
  2. Converti il file del piano Terraform in formato JSON:

    terraform plan -out TF_PLAN_FILENAME
    terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
    

    Sostituisci quanto segue:

    • TF_PLAN_FILENAME: il nome del file del piano Terraform.
    • TF_PLAN_JSON_FILENAME: il nome del file che conterrà il piano Terraform in formato JSON.
  3. Crea il report di convalida IaC:

    gcloud scc iac-validation-reports create PARENT \
      --tf-plan-file=TF_PLAN_JSON_FILENAME
    

    Sostituisci quanto segue:

    • PARENT: l'organizzazione Google Cloud in cui creare il report di convalida IaC. Il formato è organizations/ORGANIZATION_ID/locations/LOCATION. LOCATION è global.
    • TF_PLAN_JSON_FILENAME: il percorso del file JSON contenente il piano IaC che vuoi convalidare.

    Ad esempio, per creare un report di convalida IaC nell'organizzazione organizations/3589215982/locations/global con un piano IaC incluso in planFile.json, esegui questo comando:

    gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
    

    Questo comando restituisce i dettagli dell'operazione per creare il report di convalida IAC. Per ottenere informazioni sull'operazione, vedi Visualizzare le informazioni su un'operazione di deployment della postura.

Passaggi successivi