Convalida la tua IaC in base ai criteri dell'organizzazione Google Cloud

Questo documento descrive come convalidare la tua infrastruttura come codice (IaC) rispetto alle policy dell'organizzazione e ai rilevatori di Security Health Analytics che hai definito nella tua Google Cloud organizzazione. IaC ti 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 funzionalità di convalida IaC supporta solo le policy dell'organizzazione e i rilevatori di Security Health Analytics.

La convalida di IaC ti consente di determinare se le definizioni delle risorse nuove o modificate violano le policy esistenti applicate alle Google Cloud risorse (ad esempio cluster, bucket o istanza). Puoi definire queste policy utilizzando security postures, ma la funzionalità di convalida IaC analizza il codice e lo confronta con le policy effettive definite nelle posture di cui è stato eseguito il deployment nella tua Google Cloud organizzazione. La convalida IaC aiuta gli sviluppatori a identificare e correggere eventuali problemi di sicurezza nella configurazione IaC di asset o risorse prima che vengano applicati al tuo Google Cloud ambiente.

La funzionalità di convalida IaC supporta i file di pianificazione di Terraform. Puoi convalidare il piano Terraform utilizzando Google Cloud CLI oppure puoi integrare il processo di convalida nel flusso di lavoro di sviluppo di Cloud Build, Jenkins o GitHub Actions.

Prima di iniziare

Completa questi passaggi per iniziare a utilizzare 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

    Assicurati di avere il seguente ruolo o i seguenti ruoli nell'organizzazione: Security Posture Shift-Left Validator

    Controlla i ruoli

    1. Nella Google Cloud console vai alla pagina IAM.

      Vai a IAM
    2. Seleziona l'organizzazione.
    3. Nella colonna Entità, trova tutte le righe che identificano te o un gruppo di cui fai parte. Per scoprire i gruppi di cui fai parte, contatta l' amministratore.

    4. Per tutte le righe che ti specificano o ti includono, controlla la colonna Ruolo per verificare se l'elenco dei ruoli include i ruoli richiesti.

    Concedi i ruoli

    1. Nella Google Cloud console 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 identificatore dell'utente. In genere si tratta dell'indirizzo email di un Account Google.

    5. Fai clic su Seleziona un ruolo, quindi cerca il ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
    7. Fai clic su Salva.

Per saperne di più sulle autorizzazioni di convalida IaC, consulta IAM per le attivazioni a livello di organizzazione.

Configura Google Cloud CLI

Nella Google Cloud console, attiva Cloud Shell.

Attiva Cloud Shell

Nella parte inferiore della Google Cloud console viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già inclusa e installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

Per configurare gcloud CLI in modo che utilizzi la simulazione dell'identità dei account di servizio per l'autenticazione alle API di Google, anziché le tue credenziali utente, esegui questo comando:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

Per saperne di più, consulta Simulazione dell'identità dei service account.

Abilita API

Abilita le API Security Posture e Security Center Management.

Ruoli richiesti per abilitare le API

Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

Abilita le API

Definisci le policy

Definisci le policy dell'organizzazione e i rilevatori di Security Health Analytics. Per definire queste policy utilizzando una security posture, completa le attività descritte in Creare ed eseguire il deployment di una postura.

Crea il codice Terraform

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

Considera quanto segue:

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

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

Utilizza Google Cloud CLI per creare un report di convalida IaC

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

  1. In gcloud CLI, esegui terraform init.

    Verifica di eseguire la versione 5.5 o successive del provider Terraform. Se necessario, esegui l'upgrade all'ultima versione del provider Google:

    terraform init -upgrade
    
  2. Converti il file di pianificazione di 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 di pianificazione di 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.json
    

    Sostituisci quanto segue:

    • PARENT: L' Google Cloud organizzazione 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 che contiene 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 il seguente comando:

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

    Questo comando restituisce i dettagli dell'operazione per la creazione del report di convalida IaC. Per ottenere informazioni sull'operazione, consulta Visualizzare le informazioni su un'operazione di deployment della postura.

Passaggi successivi