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

Questo documento descrive come convalidare l'infrastruttura come codice (IaC) in base ai criteri dell'organizzazione e ai detector 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 funzionalità di convalida dell'IaC supporta solo i rilevatori di Security Health Analytics e i criteri dell'organizzazione.

La convalida dell'infrastruttura come codice 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 Google Cloud organizzazione. 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 al tuo 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 dell'IaC.

Attiva il livello Security Command Center Premium o Enterprise

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

  1. Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the organization.
    3. 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.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Vai a IAM
    2. Seleziona l'organizzazione.
    3. Fai clic su Concedi l'accesso.
    4. Nel campo Nuove entità, inserisci il tuo identificatore utente. In genere si tratta dell'indirizzo email di un Account Google.

    5. Nell'elenco Seleziona un ruolo, seleziona un ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
    7. Fai clic su Salva.

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

    Configura Google Cloud CLI

    In the Google Cloud console, activate Cloud Shell.

    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 che utilizzi l'imitazione dell'account di servizio per l'autenticazione alle API di Google, anziché le credenziali utente, esegui questo comando:

    gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

    Per maggiori informazioni, vedi Impersonificazione del service account.

    Definisci le tue policy

    Definisci i criteri dell'organizzazione e i detector 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 Google Cloud asset 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 criteri.
    • 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'infrastruttura come codice (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.

    Utilizzare Google Cloud CLI per creare un report di convalida IaC

    Per creare un report di convalida IaC:

    1. Nella gcloud CLI, esegui terraform init.

      Verifica di eseguire il provider Terraform versione v5.5 o successive. Se necessario, esegui l'upgrade all'ultima versione 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 di 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.json
      

      Sostituisci quanto segue:

      • PARENT: L'organizzazione in cui creare il report di convalida IaC. Google Cloud 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 dell'IAC. Per ottenere informazioni sull'operazione, consulta Visualizzare le informazioni su un'operazione di deployment della postura.

    Passaggi successivi