Questo documento descrive come convalidare l'infrastruttura come codice (IaC) in base ai criteri dell'organizzazione e ai rivelatori di Security Health Analytics che hai definito nella tua organizzazione Google Cloud. 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 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 i criteri esistenti applicati alle risorse Google Cloud (ad esempio cluster, bucket o istanze). Puoi definire questi criteri utilizzando posture di sicurezza, ma la funzionalità di convalida IaC analizza il codice in base a tutti i criteri della tua organizzazione Google Cloud. 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 ambiente Google Cloud.
La funzionalità di convalida IaC supporta i file del piano Terraform. Puoi convalidare il tuo piano Terraform utilizzando Google Cloud CLI oppure puoi integrare il processo di convalida nel flusso di lavoro degli sviluppatori 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 Livello Premium di Security Command Center o livello Enterprise sia attivata a livello di organizzazione.
L'attivazione di Security Command Center abilita le API securityposture.googleapis.com
e
securitycentermanagement.googleapis.com
.
Configurare le autorizzazioni
-
Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the organization.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Vai a IAM - Seleziona l'organizzazione.
- Fai clic su Concedi l'accesso.
-
Nel campo Nuove entità, inserisci il tuo identificatore utente. In genere si tratta dell'indirizzo email di un Account Google.
- Nell'elenco Seleziona un ruolo, seleziona un ruolo.
- Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni altro ruolo.
- Fai clic su Salva.
-
Per ulteriori informazioni sulle autorizzazioni di convalida IaC, consulta IAM per le attivazioni a livello di organizzazione.
Configura Google Cloud CLI
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Per configurare gcloud CLI in modo da utilizzare la rappresentazione degli account di servizio per l'autenticazione Le API di Google, invece delle credenziali utente, esegui il comando seguente:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Per ulteriori informazioni, vedi Furto d'identità degli account di servizio.
Definisci i criteri
Definisci i criteri dell'organizzazione e i rivelatori di Security Health Analytics. Per definire questi criteri utilizzando una postura di sicurezza, completa le attività descritte in Creare e implementare una postura.
Crea il tuo codice Terraform
Usa i flussi di lavoro e gli 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 principale (il progetto, la cartella o l'organizzazione) di ogni risorsa o asset nella configurazione di Terraform.
- Modifica gli asset e le norme separatamente. L'API non supporta la convalida dei file di piano Terraform che modificano contemporaneamente asset e criteri.
- Utilizza solo tipi di asset e norme supportati. Per un elenco di tipi di asset e criteri supportati, consulta Tipi di asset e criteri supportati per la convalida IaC.
- Esamina le limitazioni per la convalida IaC.
- Non includere informazioni sensibili come password o altri dati personali identificabili nel file del piano Terraform. Se la convalida rileva campi contrassegnati come sensibili nelle modifiche apportate alle risorse, campi vengono rimossi.
Dopo aver creato il codice Terraform, puoi eseguire il report di convalida IaC. Puoi utilizzare l'interfaccia a riga di comando gcloud, Cloud Build, Jenkins o GitHub Actions.
Utilizzare 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 il provider Terraform versione 5.5 o successive. Se necessario, esegui l'upgrade alla versione più recente del provider Google:
terraform init -upgrade
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 di Terraform del piano di controllo.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 per creare il report Convalida IaC. Il formato èorganizations/ORGANIZATION_ID/locations/LOCATION
.LOCATION
èglobal
.TF_PLAN_JSON_FILENAME
: il percorso del file JSON contenente il piano IaC da convalidare.
Ad esempio, per creare un report di convalida IaC nel
organizations/3589215982/locations/global
organizzazione con un piano IaC incluso inplanFile.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 la creazione della convalida IAC report. Per informazioni sull'operazione, consulta Visualizzare le informazioni su un'operazione di deployment della postura.
Passaggi successivi
- Guarda il tutorial di esempio.
- Integra la convalida IaC Flusso di lavoro di Cloud Build.
- Integra la convalida IaC Azioni GitHub o il tuo Progetto Jenkins.
- Gestisci la security posture.