Questo documento descrive come convalidare la tua infrastruttura come codice (IaC) in base alle policy dell'organizzazione e ai detector di Security Health Analytics che hai definito nella tua organizzazione Google Cloud . L'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 funzionalità di convalida dell'IaC supporta solo i criteri dell'organizzazione e i rilevatori di Security Health Analytics.
La convalida dell'IaC ti consente di determinare se le definizioni delle risorse nuove o modificate violano le norme esistenti applicate alle tue risorseGoogle Cloud (ad esempio cluster, bucket o istanza). Puoi definire queste norme utilizzando le posture di sicurezza, ma la funzionalità di convalida IaC analizza il codice e lo confronta con le norme effettive definite nelle posture implementate nella tua organizzazione Google Cloud . La convalida dell'IaC aiuta gli sviluppatori a identificare e correggere eventuali problemi di sicurezza nella configurazione IaC di asset o risorse prima che vengano applicati all'ambienteGoogle Cloud .
La funzionalità di convalida IaC supporta i file di piano Terraform. Puoi convalidare il piano Terraform utilizzando Google Cloud CLI oppure puoi integrare il processo di convalida nel flusso di lavoro per sviluppatori di Cloud Build, Jenkins o GitHub Actions.
Prima di iniziare
Completa queste attività per iniziare a utilizzare la convalida IaC.
Attiva il livello Premium o Enterprise di Security Command Center
Verifica che il livello Security Command Center Premium o Enterprise sia attivato a livello di organizzazione.
L'attivazione di Security Command Center abilita le API securityposture.googleapis.com e securitycentermanagement.googleapis.com.
Configurare le autorizzazioni
-
Nella console Google Cloud 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 a quali gruppi appartieni, contatta il tuo 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 console Google Cloud 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 successivo.
- Fai clic su Salva.
Assicurati di disporre dei seguenti ruoli nell'organizzazione: Security Posture Shift-Left Validator
Controlla i ruoli
Concedi i ruoli
Per saperne di più sulle autorizzazioni di convalida dell'IaC, consulta IAM per le attivazioni a livello di organizzazione.
Configura Google Cloud CLI
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud 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à 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 service account 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.
Definisci le tue policy
Definisci le policy dell'organizzazione e i rilevatori di Security Health Analytics. Per definire queste policy utilizzando una postura di sicurezza, completa le attività descritte in Creare e implementare una postura.
Crea il codice Terraform
Utilizza i tuoi flussi di lavoro e strumenti per sviluppatori per creare un file Terraform che includa gli asset Google Cloud che vuoi creare o modificare.
Considera quanto segue:
- Compila l'attributo padre (il progetto, la cartella o l'organizzazione) di ogni risorsa o asset nella configurazione Terraform.
- Modifica gli asset e le norme separatamente. L'API non supporta la convalida dei file di piano Terraform che modificano contemporaneamente asset e policy.
- Utilizza solo tipi di asset e norme supportati. Per un elenco dei tipi di asset e delle norme supportati, consulta Tipi di asset e norme supportati per la convalida dell'infrastruttura come codice.
- Esamina le limitazioni per la convalida dell'IaC.
- Non includere informazioni sensibili come password o altre informazioni che consentono l'identificazione personale nel file di piano Terraform. Se la funzionalità di convalida rileva campi contrassegnati come sensibili nelle modifiche alle 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:
In gcloud CLI, esegui
terraform init.Verifica di eseguire Terraform provider versione v5.5 o successive. Se necessario, esegui l'upgrade all'ultima versione del provider Google:
terraform init -upgradeConverti 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 di piano 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'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 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 dell'IAC. Per ottenere informazioni sull'operazione, consulta Visualizzare le informazioni su un'operazione di deployment della postura.
Passaggi successivi
- Rivedi il tutorial di esempio.
- Integra la convalida IaC con il tuo flusso di lavoro Cloud Build.
- Integra la convalida dell'IaC con le tue GitHub Actions o il tuo progetto Jenkins.
- Gestisci la tua postura di sicurezza.