Dopo aver creato la pipeline di immagini sicure, puoi automatizzare il flusso di lavoro di generazione di immagini firmate ogni volta che apporti modifiche al codice sorgente.
Questa pagina spiega come utilizzare la pipeline di immagini per produrre immagini sicure e certificate.
Prima di iniziare
Crea la pipeline di immagini sicure e familiarizza con le risorse create dalla pipeline.
Utilizzo della pipeline
Il codice sorgente delle immagini di base si trova nel repository baseimgfct-[some number]-containers
nell'organizzazione GitHub che hai specificato durante la configurazione della pipeline di immagini sicure. Per aggiornare un'immagine, modifica il file pertinente nel repository e
invia una richiesta pull con le modifiche a un membro del team per la revisione. Quando crei la richiesta di pull, Cloud Build si attiva in YOUR_PROJECT_NAME-builder
, crea l'immagine aggiornata e la invia al repository Artifact Registry in YOUR_PROJECT_NAME-stage
.
Quando un membro del team ha testato e verificato le immagini in YOUR_PROJECT_NAME-stage
,
puoi approvare e unire la pull request. L'azione di unione crea, esegue la scansione e attesta le immagini e le invia dal progetto di staging a
YOUR_PROJECT_NAME-verified
.
I passaggi riportati di seguito descrivono il flusso di lavoro dello sviluppatore per l'utilizzo della pipeline di immagini sicure:
Vai al repository baseimgfact-[some number]-containers.
Apri la cartella corrispondente all'immagine che vuoi modificare, ad esempio
ubuntu_18_0_4
.Apporta le modifiche. Ad esempio, modifica
Dockerfile
per aggiornare un'immagine container.Seleziona Crea un nuovo ramo per questo commit e avvia una richiesta pull.
Fai clic su Proponi modifiche.
In Descrizione del commento, inserisci /gcbrun. In questo modo, solo gli utenti autorizzati possono proporre modifiche al repository.
Fai clic su Crea richiesta pull.
Quando crei una richiesta pull, la build viene attivata in
YOUR_PROJECT_NAME-builder
e l'immagine viene creata e inviata aYOUR_PROJECT_NAME-stage
.Aggiungi un membro del team che esamini la tua richiesta pull.
Dopo aver verificato manualmente l'immagine, il membro del team approva e unisce la richiesta di pull.
L'azione di unione esegue la compilazione, i test e la scansione dell'immagine per rilevare le vulnerabilità, ne attesta la conformità se si tratta di un'immagine container e poi la invia a
YOUR_PROJECT_NAME-verified
.
Specificare un criterio di sicurezza personalizzato
Se utilizzi la pipeline di immagini sicure per generare e gestire le immagini dei contenitori di base, puoi specificare un criterio di sicurezza personalizzato in base al quale viene verificata l'immagine.
YOUR_PROJECT_NAME-stage
esegue un'istanza Voucher,
che è uno strumento open source che esegue una suite di controlli sulle immagini container e
crea attestazioni di autorizzazione binaria
per le immagini. Quando un'immagine in YOUR_PROJECT_NAME-stage
è stata verificata manualmente e un membro del team unisce la richiesta pull nel repository delle immagini container di GitHub, Voucher controlla l'immagine per rilevare le vulnerabilità, che sono definite nel file di configurazione di Voucher. Al termine del controllo, se tutte le vulnerabilità identificate sono al di sotto della soglia, Voucher crea un'attestazione di autorizzazione binaria per l'immagine, che viene inviata a YOUR_PROJECT_NAME-verified
. Se una delle vulnerabilità identificate raggiunge o supera la soglia, il coupon non crea un'attestazione. Senza un'attestazione verificata, l'applicazione dell'Autorizzazione binaria impedisce di spingere l'immagine su YOUR_PROJECT_NAME-verified
.
Puoi definire i controlli eseguiti da Voucher, insieme ad altri criteri, nel file di configurazione di Voucher Server. Per istruzioni su come eseguire questa operazione, consulta Creare e configurare il server Voucher.