Utilizzo della pipeline di immagini sicura

Dopo aver creato la pipeline di immagine sicura, puoi automatizzare il flusso di lavoro di generazione delle immagini firmate ogni volta che apporti modifiche al codice sorgente.

Questa pagina spiega come utilizzare la pipeline delle immagini per produrre immagini sicure e attestate.

Prima di iniziare

Crea la pipeline di immagini sicura e acquisisci familiarità con le risorse create dalla pipeline.

Utilizzo della pipeline

Il codice sorgente per le immagini di base si trova nel repository baseimgfct-[some number]-containers nell'organizzazione GitHub specificata durante la configurazione della pipeline di immagini sicura. Per aggiornare un'immagine, modifica il file pertinente nel repository e invia una richiesta di pull con le modifiche a un membro del team per la revisione. Quando crei la richiesta di pull, i trigger di Cloud Build in YOUR_PROJECT_NAME-builder creano l'immagine aggiornata ed eseguono il push dell'immagine nel repository Artifact Registry in YOUR_PROJECT_NAME-stage.

Dopo che un membro del team avrà testato e verificato le immagini in YOUR_PROJECT_NAME-stage, può approvare e unire la tua richiesta di pull. L'azione di unione crea, analizza e attesta le immagini ed esegue il push delle immagini dal progetto di gestione temporanea a YOUR_PROJECT_NAME-verified.

I passaggi seguenti descrivono il flusso di lavoro degli sviluppatori per l'utilizzo della pipeline per l'immagine sicura:

  1. Vai al repository baseimgfact-[some number]-containers.

  2. Apri la cartella corrispondente all'immagine che vuoi modificare, ad esempio ubuntu_18_0_4.

  3. Apporta le modifiche. Ad esempio, modifica Dockerfile per aggiornare un'immagine container.

  4. Seleziona Crea un nuovo ramo per questo commit e avvia una richiesta di pull.

  5. Fai clic su Proponi modifiche.

  6. In Descrizione commento, inserisci /gcbrun. Questo serve ad assicurare che solo gli utenti autorizzati propongano modifiche al repository.

  7. Fai clic su Crea richiesta di pull.

    Quando crei una richiesta di pull, i trigger di build in YOUR_PROJECT_NAME-builder creano l'immagine ed esegue il push dell'immagine su YOUR_PROJECT_NAME-stage.

  8. Aggiungi un membro del team per esaminare la tua richiesta di pull.

  9. Dopo aver verificato manualmente l'immagine, il membro del team approva e unisce la richiesta di pull.

    L'azione di unione crea, testa, analizza l'immagine per rilevare eventuali vulnerabilità e attesta l'immagine se si tratta di un'immagine container, quindi ne esegue il push su YOUR_PROJECT_NAME-verified.

Specifica di un criterio di sicurezza personalizzato

Se utilizzi la pipeline dell'immagine sicura per generare e gestire le immagini container 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, 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 di pull nel repository di immagini container GitHub, Voucher controlla l'immagine per verificare la presenza di vulnerabilità, definite nel file di configurazione di Voucher. Al termine del controllo, se tutte le vulnerabilità identificate scendono al di sotto della soglia, Voucher crea un'attestazione di Autorizzazione binaria per l'immagine e l'immagine viene inviata a YOUR_PROJECT_NAME-verified. Se una delle vulnerabilità identificate soddisfa o supera la soglia, il coupon non crea un'attestazione. Senza una attestazione verificata, l'applicazione forzata di Autorizzazione binaria non consente il push dell'immagine a YOUR_PROJECT_NAME-verified.

Puoi definire quali controlli esegue Voucher, insieme ad altri criteri, nel file di configurazione di Voucher Server. Per istruzioni su come eseguire questa operazione, vedi Creare e configurare il server dei coupon.