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
-
Nella Google Cloud console vai alla pagina IAM.
Vai a IAM - Seleziona l'organizzazione.
-
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.
- 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.
-
Nella Google Cloud console vai alla pagina IAM.
Vai a IAM - Seleziona l'organizzazione.
- Fai clic su Concedi l'accesso.
-
Nel campo Nuove entità, inserisci il tuo identificatore dell'utente. In genere si tratta dell'indirizzo email di un Account Google.
- Fai clic su Seleziona un ruolo, quindi cerca il ruolo.
- Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
- Fai clic su Salva.
Assicurati di avere il seguente ruolo o i seguenti ruoli nell'organizzazione: Security Posture Shift-Left Validator
Controlla i ruoli
Concedi i ruoli
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.
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.
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:
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 -upgradeConverti 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.
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/globalcon un piano IaC incluso inplanFile.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
- Esamina il tutorial di esempio.
- Integra la convalida IaC con il tuo flusso di lavoro di Cloud Build.
- Integra la convalida IaC con GitHub Actions o il tuo progetto Jenkins.
- Gestisci la security posture.