Proteggere i deployment

Questo documento descrive le best practice per proteggere i deployment.

Crea e applica i criteri di deployment

Per proteggere gli ambienti di runtime, definisci criteri per il deployment e convalida la conformità alle norme prima e dopo il deployment. La definizione di un criterio che consenta solo il codice firmato da attestatori predefiniti aiuta a limitare i deployment e a eseguire il deployment solo di codice proveniente da origini attendibili.

Ecco alcuni esempi di criteri di implementazione:

  • Nessuna vulnerabilità nota con una gravità superiore a Media
  • Il codice sorgente proviene da un repository di codice sorgente attendibile
  • La compilazione è stata eseguita da un servizio di compilazione attendibile
  • Gli artefatti di compilazione che stai eseguendo provengono da un repository di artefatti attendibile

Genera metadati

Per convalidare questi requisiti, devi fornire i metadati relativi agli elementi della compilazione.

Creare origini

La provenienza della build è una raccolta di dati verificabili su una build, ad esempio i digest delle immagini create, le posizioni delle origini di input, la toolchain di build e la durata della build. SLSA, un framework per la valutazione della postura di sicurezza, fornisce un modello per la provenienza e i requisiti per la provenienza. La provenienza è una delle categorie di requisiti del framework e ogni requisito è associato a livelli SLSA in modo da poter implementare gradualmente le mitigazioni.

  • Per la garanzia SLSA di livello 1, la provenienza deve essere disponibile.
  • Per la garanzia SLSA di livello 2, la provenienza deve essere generata e i consumatori devono essere in grado di verificarne l'autenticità e l'integrità.
  • I livelli SLSA 3 e 4 hanno requisiti più stringenti per la firma della provenienza e per la profondità dei dettagli dei dati sulla provenienza.

Alcuni servizi di compilazione generano metadati sull'origine della compilazione.

Vulnerabilità

Il software di analisi delle vulnerabilità controlla il codice sorgente e gli elementi di build per verificare la presenza di vulnerabilità note. Artifact Analysis può scansionare automaticamente le immagini container di cui è stato eseguito il push in Artifact Registry per rilevare eventuali vulnerabilità. Per verificare la presenza di vulnerabilità negli elementi prima di archiviarli, puoi utilizzare l'API On-Demand Scanning in un ambiente di sviluppo locale o in una pipeline CI/CD, ad esempio un passaggio di build di Cloud Build.

Configurare l'applicazione dei criteri

Una volta ottenuti i metadati relativi agli elementi di cui è possibile eseguire il deployment, hai bisogno di strumenti per applicare le tue norme.

In Google Cloud, puoi configurare un criterio in Autorizzazione binaria per i tuoi deployment. L'autorizzazione binaria applica i criteri per i tentativi di deployment su piattaforme basate su container supportate. Può anche eseguire la convalida continua dei criteri per i workload in esecuzione su GKE, Cloud Run e GKE Enterprise.

I controlli di pre-deployment possono bloccare tutte le immagini che non sono nell'elenco di immagini esenti, in modo che venga eseguito il deployment solo di immagini attendibili da registry attendibili. I criteri possono anche richiedere attestati, ovvero documenti digitali che indicano che l'immagine è stata creata correttamente con una procedura obbligatoria specifica. Ad esempio, un'attestazione può indicare che un'immagine è:

La convalida continua estende la convalida dei criteri all'ambiente post-deployment. Se è abilitata, l'autorizzazione binaria fornisce la convalida durante tutto il ciclo di vita del pod registrando regolarmente la conformità ai criteri in Cloud Logging. Questa operazione è utile in una serie di situazioni. Ad esempio, se modifichi il criterio dopo aver eseguito il deployment di un contenitore, la convalida continua registra i pod che violano il criterio aggiornato. Inoltre, registra le violazioni delle norme per i pod di cui è stato eseguito il deployment con simulazione o breakglass.

Utilizzare i servizi di deployment con controlli

Il controllo degli accessi al deployment ti consente di approvare o rifiutare i deployment in punti specifici della procedura di deployment utilizzando un servizio CI/CD autonomo o un servizio CI/CD integrato con un sistema di automazione dei processi. I deployment controllati impediscono agli utenti non autorizzati di apportare modifiche agli ambienti delle applicazioni. Forniscono un'ulteriore supervisione al processo di implementazione e una maggiore visibilità delle approvazioni.

In Google Cloud, Cloud Deploy offre un servizio completamente gestito per il deployment dei carichi di lavoro su Google Kubernetes Engine. La funzionalità di implementazione a livello di gruppo consente agli utenti di specificare se è necessaria un'approvazione per la promozione a un target.

Monitora i tuoi carichi di lavoro

I carichi di lavoro sono applicazioni in esecuzione su piattaforme basate su container come GKE e Cloud Run. Idealmente, i carichi di lavoro di cui esegui il deployment devono avere una configurazione rafforzata che limiti la loro superficie di attacco.

Verificare la presenza di problemi di configurazione nei workload su più cluster può essere difficile da eseguire manualmente su larga scala. Google Cloud fornisce dashboard in Cloud Run e GKE per visualizzare gli approfondimenti sulla sicurezza per i carichi di lavoro.

La dashboard sulla postura di sicurezza di GKE fornisce indicazioni per rafforzare la postura di sicurezza dei tuoi cluster in base ai consigli di Google. Include la scansione automatica della configurazione dei carichi di lavoro, che controlla la presenza di problemi di configurazione noti in tutti i carichi di lavoro. GKE controlla ogni carico di lavoro di cui è stato eseguito il deployment in base alle best practice di settore pertinenti, ad esempio le norme degli standard di sicurezza dei pod. GKE valuta la gravità dei problemi rilevati e restituisce log e consigli utili. Puoi utilizzare Cloud Logging per ottenere un tracciato verificabile dei problemi per una migliore generazione di report e osservabilità. Per istruzioni su come visualizzare gli approfondimenti sulla sicurezza nella dashboard della postura di sicurezza di GKE, consulta Eseguire il deployment su GKE e visualizzare gli approfondimenti sulla sicurezza.

Cloud Run contiene un riquadro della sicurezza che mostra insight sulla sicurezza della catena di approvvigionamento del software, come le informazioni sulla conformità a livello di build SLSA, l'origine della build e le vulnerabilità rilevate nei servizi in esecuzione. Per istruzioni su come visualizzare gli insight sulla sicurezza nel riquadro degli insight sulla sicurezza di Cloud Run, consulta Esegui il deployment su Cloud Run e visualizza gli insight sulla sicurezza.

Google Cloud offre anche altri servizi e funzionalità per migliorare la tua strategia di sicurezza durante il ciclo di vita dello sviluppo software. Per ulteriori informazioni, consulta la panoramica della catena di fornitura del software.

Passaggi successivi