Configura la tua infrastruttura DevSecOps e la toolchain CI per la distribuzione di un'applicazione sicura
Utilizza questa esercitazione per la configurazione e il provisioning automatizzati dell'infrastruttura per le tue toolchain CI e CD utilizzando un modello di avvio rapido basato su Terraform. Il modello utilizza le procedure ottimali DevSecOps di conformità e sicurezza. Il template utilizza uno spazio di lavoroIBM Cloud® Schematics, che automatizza la creazione dell'infrastruttura richiesta per distribuire in modo sicuro la tua applicazione a Kubernetes o Red Hat® OpenShift®. Il template utilizza una struttura di pipeline della toolchain DevSecOps IBM Cloud® Continuous Delivery. La toolchain è preconfigurata per la fornitura continua con integrazione dell'inventario, gestione delle modifiche, raccolta delle prove e distribuzione.
IBM Cloud Schematics fornisce Terraform come servizio, in modo da consentirti di utilizzare un linguaggio di scripting di alto livello per modellare le risorse che desideri impiegare nel tuo ambiente IBM Cloud e permetterti di abilitare lo IaC (Infrastructure as Code). Terraform è un software open source sviluppato da HashiCorp. Terraform consente un provisioning delle risorse prevedibile e coerente per creare rapidamente ambienti cloud complessi e multilivello.
In questa esercitazione, segui tre semplici passi per creare un workspace Schematics, applicare un piano di esecuzione Terraform e aggiornare il valore delle proprietà di ambiente. Quando applichi il piano, lo spazio di lavoro Schematics configura la tua infrastruttura sicura. Questa infrastruttura è condivisibile con il tuo team e funziona per i modelli di toolchain CD e CI DevSecOpsA methodology that integrates security practices with the software development and operations lifecycle. The goal of the merge is to prioritize the balance of development speed and security..
La configurazione dell'infrastruttura automatizzata crea le risorse di cui viene automaticamente eseguito il provisioning utilizzando i valori predefiniti dai modelli CD e CI Ops DevSec. Puoi trovare i valori predefiniti nella sezione Variabili dello spazio di lavoro Schematics. Vengono create le seguenti risorse:
- Un cluster in IBM Cloud® Kubernetes Service o Red Hat OpenShift su IBM Cloud.
- Un'istanza e un bucket IBM Cloud Object Storage standard.
- IBM Cloud® Secrets Manager. Tieni presente che è consentita solo un'istanza Secrets Manager. Se hai già un servizio Secrets Manager, assicurati di sovrascrivere il valore
predefinito
sm_service_name
nel passo 2. - Chiave di firma immagine GPG.
- Una toolchainDevSecOps CI completamente funzionale che crea, verifica e distribuisce un'applicazione Node.js di esempio utilizzando le procedure ottimali DevSecOps di conformità e sicurezza.
Prima di iniziare
- Per completare questa esercitazione, utilizza un account Pagamento a consumo o Sottoscrizione IBM Cloud dove sei il proprietario o hai l'accesso di amministratore completo. Se hai già un account IBM Cloud e devi aggiornarlo, vedi Aggiornamento del tuo account.
- Installa la CLI IBM Cloud se vuoi interagire con gli elementi della toolchain o dell'infrastruttura dopo che sono stati creati.
- Ottenere un GitLab Personal Access Token. Immettere un nome per il token di accesso personale. Crea il tuo token nella stessa regione della tua toolchain CI. Assicurati di copiare e salvare il token perché ne hai bisogno in un secondo momento e non puoi accedervi di nuovo.
- Crea una chiave API IBM Cloud. Assicurati di copiare e salvare o scaricare il valore della chiave API perché ne hai bisogno in un secondo momento e non puoi accedervi di nuovo.
Crea un workspace Schematics
-
Fare clic su una delle seguenti opzioni per la destinazione di distribuzione cluster. Questa azione ti porta alla pagina Distribuisci a IBM Cloud in cui crei uno workspace Schematics. Completare i campi richiesti in tale pagina e fare quindi clic su Avanti.
In base all'opzione selezionata, il template Terraform corrispondente da questo repository viene importato automaticamente nel nuovo spazio di lavoro Schematics.
-
Verificare le informazioni, quindi fare clic su Crea. Viene creato lo spazio di lavoro Schematics e viene visualizzata la pagina delle impostazioni per l'area di lavoro Schematics.
Applica piano di esecuzione Terraform
-
Nella sezione Variabili della pagina delle impostazioni Schematics, immetti i valori per ogni variabile. I campi obbligatori non hanno valori predefiniti. È possibile sovrascrivere i valori predefiniti.
Se sovrascrivi il valore
sm_service_name
, il piano di esecuzione Terraform utilizza la risorsa esistente invece di creare una nuova risorsa. -
Per la variabile
gitlab_token
, immetti il token di accesso personale che hai ottenuto precedentemente. -
Per la variabile
ibmcloud_api_key
, immetti la chiave API IBM Cloud che hai ottenuto precedentemente. -
Per la variabile
registry_namespace
, immetti un valore dello spazio dei nomi del registro del contenitore. Per creare uno spazio dei nomi, vedi Container Registry Namespaces. -
Per la variabile
kube_version
, eseguire:ibmcloud ks versions
su una riga comandi per visualizzare le versioni disponibili. -
Facoltativo. Se hai già un'istanza Secrets Manager, immettetola come nome per la variabile
sm_service_name
. Altrimenti, non modificare questa variabile. -
Facoltativo. Se vuoi modificare la dimensione o l'ubicazione del tuo cluster, puoi sovrascrivere le seguenti variabili:
datacenter
,default_pool_size
,machine_type
,hardware
,public_vlan_num
oprivate_vlan_num
(i valori predefiniti sono per il data center dal12/us-south ). -
Facoltativo. Fare clic su Genera piano. Questa azione crea un piano di esecuzione Terraform e verifica la presenza di errori di sintassi nella configurazione. Nella pagina dei lavori Schematics, puoi esaminare i file di log per rilevare eventuali errori e le risorse IBM Cloud che devono essere create, modificate o eliminate per ottenere lo stato corretto del modello Terraform.
-
Una volta immessi tutti i valori per le variabili e soddisfatti delle modifiche, fare clic su Applica piano per eseguire il codice dell'infrastruttura.
Questo passo richiede del tempo per essere completato (generalmente 20-30 minuti, ma può richiedere più tempo), a causa della creazione di un nuovo cluster Kubernetes o OpenShift.
-
Nella pagina dei lavori Schematics, puoi visualizzare il log espandendo il nome del lavoro.
-
Una volta applicato il piano, visualizza l'URL della toolchain IBM Cloud DevSecOps CI. L'URL si trova alla fine del file di log su una riga che inizia con
View the toolchain at:
.
Se applichi il tuo piano una seconda volta, il cluster Kubernetes o il cluster OpenShift precedentemente creato e tutte le applicazioni ad esso distribuite vengono eliminati e viene creato un nuovo cluster. Tuttavia, se si sovrascrive il nome cluster predefinito, viene utilizzato tale cluster.
Distribuisci l'applicazione
Segui questa procedura per eseguire la pipeline.
- Vai alla toolchain DevSecOps CI appena creata.
- Fai clic su Git tile che inizia con
compliance-app
. - Per attivare il pr-pipeline, aggiornare del testo nel file
README.md
e quindi avviare una PR rispetto al ramomain
. - Nel campo Diramazione di destinazione, modificare il nome del ramo da
main
in un altro elemento. Ad esempio,mybranch
. - Assicurarsi che la check box "Avvia una nuova richiesta di unione con queste modifiche" sia selezionata.
- Fare clic su Conferma modifiche.
- Facoltativo. Nella pagina Nuova richiesta di unione, aggiungere una descrizione.
- Fare clic su Crea richiesta di unione.
pr - pipeline nella ci-toolchain viene attivato. Verifica che la pipeline sia in esecuzione completando questa procedura:
-
Ritorna alla tua toolchain CI e fai clic sul tile Delivery Pipeline per il tuo
pr-pipeline
. Nella pagina del dashboard pr - pipeline, puoi vedere il pr - pipeline in esecuzione. -
Per visualizzare l'avanzamento, fare clic sul link
pr-pipeline
.Figura 1. pr - dashboard pipeline
Note:
-
Se vengono rilevate delle vulnerabilità, il passo code - pr - finish non riesce.
-
Per trovare le vulnerabilità, vai a
code-unit-tests
>run-stage
per visualizzare i log. (istantanea) -
Risolvi le vulnerabilità e poi viene attivato il pr - pipeline.
-
Torna al tile del repository dell'applicazione.
-
Nel riquadro di navigazione, fare clic su Unisci richieste.
-
Selezionare la RdA.
-
Facoltativo. Fare clic sul pulsante Approva (in caso contrario, viene visualizzato un errore alla fine dell'esecuzione di ci - pipeline).
-
Selezionare "Elimina ramo di origine."
-
Fare clic su Unisci.
L'unione di questa RdA attiva automaticamente la ci-pipeline. Per verificare, torna al tile ci - pipeline nella toolchain e verifica che la pipeline sia in esecuzione. Fare clic sul link della pipeline per visualizzare l'avanzamento.
Questo passo distribuisce l'applicazione al cluster appena creato. L'URL dell'applicazione si trova nella parte inferiore del file di log nel passo deploy-dev
> run-stage
di ci-pipeline.
Passi successivi
Continua alla sezione "Esplora la tua toolchain CI" dell'esercitazione successiva ed esegui le pipeline CI - PR e CI. Quindi, continua attraverso il resto dei passi in tale esercitazione per distribuire un'applicazione sicura.
In qualsiasi momento, è possibile visualizzare tutte le risorse create con questa esercitazione facendo clic sull'icona Menu e selezionando Elenco risorse.
Puoi visualizzare la tua istanza Schematics, cluster, IBM Cloud Object Storage, il servizio Secrets Manager, il servizio di fornitura continua e la toolchain.