Questo documento fornisce una panoramica di Autorizzazione binaria.
Che cos'è Autorizzazione binaria?
Autorizzazione binaria è un prodotto Google Cloud che puoi utilizzare per implementare misure di sicurezza della catena di fornitura del software durante lo sviluppo e il deployment di applicazioni basate su container.
Che cosa fa Autorizzazione binaria?
Puoi utilizzare Autorizzazione binaria per:
Monitoraggio: puoi configurare la continua convalida (CV) con criteri della piattaforma basati su controlli (anteprima) per monitorare periodicamente che le immagini container associate ai pod in esecuzione siano conformi a un criterio da te definito. Se le immagini non sono conformi al criterio, CV genera le voci di log in Cloud Logging.
Applica: puoi configurare l'applicazione di Autorizzazione binaria per fare in modo che le immagini di cui viene eseguito il deployment in una delle piattaforme basate su container supportate siano conformi a un criterio da te definito. Il deployment delle immagini conformi al criterio è consentito, altrimenti non ne è consentito il deployment.
Quali piattaforme supporta Autorizzazione binaria?
Autorizzazione binaria supporta le seguenti piattaforme:
- Google Kubernetes Engine (GKE): esegue immagini in cluster ospitati su Google Cloud.
- Cloud Run: esegue applicazioni containerizzate su una piattaforma serverless completamente gestita.
- Cloud Service Mesh (anteprima): gestisce un mesh di servizi affidabile on-premise o su Google Cloud.
- Cluster GKE: esegue le immagini nei cluster GKE.
Prodotti correlati ad Autorizzazione binaria
Autorizzazione binaria fa parte di un'architettura di deployment che include i seguenti prodotti correlati:
- Artifact Registry, Container Registry e altri registri che archiviano le immagini di cui vuoi eseguire il deployment.
- Artifact Analysis fornisce informazioni sulle vulnerabilità che puoi utilizzare con Autorizzazione binaria per controllare il deployment. Artifact Analysis archivia separatamente i metadati attendibili utilizzati nel processo di autorizzazione.
- Monitoraggio della sicurezza, una dashboard che puoi utilizzare per valutare la security posture delle applicazioni nei prodotti Google Cloud interdipendenti, tra cui Autorizzazione binaria.
- Cloud Build, che produce attestazioni e provenienza che Autorizzazione binaria può utilizzare per l'applicazione e il monitoraggio.
- Cloud Deploy è un servizio gestito di distribuzione continua, che automatizza la distribuzione delle applicazioni in una serie di ambienti di destinazione in una sequenza definita.
Autorizzazione binaria si basa sulla specifica Kritis, che fa parte del progetto open source Grafeas.
Contesto
La sicurezza della catena di fornitura del software mira a garantire che il software venga acquisito, creato, testato, rilasciato e distribuito in base alle best practice e agli standard interni.
Le architetture basate su container consentono ai team di sviluppare sistemi altamente disaccoppiati, ad esempio quelli basati su architetture di microservizi, e incoraggiano l'uso di pratiche di sviluppo a breve termine, tra cui l'integrazione continua (CI) e il deployment continuo (CD).
In un ambiente di sviluppo basato su container, è possibile eseguire il deployment delle immagini in una successione di cluster, ad esempio test, gestione temporanea e rilascio, che fanno parte della catena di fornitura del software.
Autorizzazione binaria ha lo scopo di ridurre il rischio di deployment di software difettoso, vulnerabile o non autorizzato in questo tipo di ambiente. Utilizzando questo servizio, puoi impedire il deployment delle immagini se non soddisfano un criterio da te definito.
Sebbene Autorizzazione binaria non prescriva processi interni o best practice, ti aiuta ad applicare le tue pratiche limitando il deployment delle immagini che non hanno superato i controlli richiesti.
Lifecycle
Un ciclo di vita del deployment per le immagini può essere costituito dalle seguenti fasi, in cui il completamento di una fase è un prerequisito per il passaggio a quella successiva, ad esempio:
- Build e test delle unità
- Deployment in un ambiente di sviluppo in cui gli utenti non sono interessati
- Deployment in un ambiente di QA, dove solo gli utenti interni sono interessati
- Il deployment in un ambiente canary, che interessa solo una parte degli utenti esterni
- Deployment in produzione
Ogni fase può avere il proprio ambiente di deployment, ad esempio un cluster GKE o un progetto Google Cloud, e i propri criteri che devono essere soddisfatti prima che un'immagine possa passare alla fase successiva. Autorizzazione binaria consente di definire le regole in base alle quali un'immagine passa da una fase all'altra e fornisce i mezzi per applicarle.
Attestazioni
I casi d'uso più comuni di Autorizzazione binaria sono le attestations. Un'attestazione certifica che un'immagine specifica ha completato una fase precedente, come descritto in precedenza. Configura il criterio di Autorizzazione binaria per verificare l'attestazione prima di consentire il deployment dell'immagine. Al momento del deployment, anziché ripetere le attività completate nelle fasi precedenti, Autorizzazione binaria deve verificare solo l'attestazione.
I casi d'uso che coinvolgono le attestazioni includono i seguenti:
Verifica della build, in cui Autorizzazione binaria utilizza le attestazioni per verificare che un'immagine sia stata creata da un sistema di compilazione specifico o da una pipeline di integrazione continua (CI).
Per informazioni su come configurare una pipeline CI basata su Cloud Build, in grado di creare un'attestazione, consulta Integrazione di Cloud Build.
Analisi delle vulnerabilità, in cui l'immagine creata da CI è stata anche analizzata alla ricerca di vulnerabilità da Artifact Analysis. In questo caso, l'attestazione viene creata solo se le vulnerabilità identificate soddisfano un criterio di firma delle vulnerabilità.
Scopri come configurare una pipeline CI di analisi delle vulnerabilità con Voucher o Kritis Signer.
Controllo manuale, quando una persona, ad esempio un rappresentante QA, crea manualmente l'attestazione.
Per scoprire come creare manualmente un'attestazione, consulta Creare attestazioni.
Consulta Inizia a utilizzare la console Google Cloud per un tutorial sull'attestazione end-to-end.
Funzionalità
Autorizzazione binaria fornisce:
- Un modello di criteri che consente di descrivere i vincoli in base ai quali è possibile eseguire il deployment delle immagini
- Un modello di attestazione che consente di definire autorità attendibili che possono attestare o verificare il completamento dei processi richiesti nel tuo ambiente prima del deployment
- Un applicazione forzata in fase di deployment che impedisce il deployment delle immagini che violano il criterio
Modello dei criteri
Autorizzazione binaria implementa un modello di criteri, in cui un criterio è un insieme di regole che regola il deployment delle immagini container. Le regole di un criterio forniscono criteri specifici che un'immagine deve soddisfare prima di poterne eseguire il deployment.
Per saperne di più sul modello dei criteri di Autorizzazione binaria e su altri concetti, consulta Concetti chiave.
Configurazione
Per configurare Autorizzazione binaria, devi prima abilitare il servizio per i progetti Google Cloud che costituiscono la pipeline di deployment e autorizzazione.
Poi devi definire il criterio che specifica i vincoli in base ai quali è possibile eseguire il deployment delle immagini container. Se il criterio richiede attestazioni prima del deployment, devi anche configurare attestatori che possono verificare le attestazioni prima di consentire il deployment delle immagini associate.
Per configurare Autorizzazione binaria, consulta le seguenti guide:
- Configura Autorizzazione binaria su GKE
- Configura Autorizzazione binaria sui cluster GKE (anteprima)
- Configura Autorizzazione binaria su Cloud Run
Autorizzazione
Prima di poter eseguire il deployment di un'immagine, tutti i firmatari richiesti devono creare un'attestazione che verifichi che l'immagine sia pronta per il passaggio alla fase successiva del deployment. L'attestazione è un record che contiene il percorso e il digest del registro dell'immagine, firmato digitalmente utilizzando la chiave di crittografia privata del firmatario.
Per saperne di più sull'autorizzazione, consulta Utilizzare le attestazioni.
Applicazione forzata
Quando esegui il deployment di un'immagine, Autorizzazione binaria controlla il criterio e applica tutte le regole rilevate che ne regolano il deployment.
Se l'immagine supera i vincoli definiti nel criterio, Autorizzazione binaria consente il deployment. In caso contrario, il servizio blocca il deployment e scrive un messaggio in Cloud Audit Logs che descrive il motivo per cui l'immagine non è conforme.
Per visualizzare gli eventi di applicazione di Autorizzazione binaria in Cloud Audit Logs, consulta le seguenti guide:
- Visualizza audit log (GKE)
- Visualizza audit log (Cloud Run)
- Visualizza gli audit log (cluster GKE) (anteprima)
Per ulteriori informazioni sul deployment, consulta le seguenti guide:
- Eseguire il deployment dei container (GKE)
- Esegui il deployment dei container (esempio di cluster GKE) (anteprima)
- Usa Autorizzazione binaria con Cloud Run
Convalida continua
La convalida continua (CV) con criteri della piattaforma basati su controllo è una funzionalità di Autorizzazione binaria che controlla periodicamente i metadati delle immagini container associate ai pod in esecuzione per garantire la continua conformità ai criteri.
Autorizzazione binaria sicura con i Controlli di servizio VPC
Controlli di servizio VPC migliora la tua capacità di mitigare il rischio di copia o trasferimento non autorizzati dei dati dalle risorse e dai servizi gestiti da Google.
Per saperne di più sulla protezione delle risorse relative a Autorizzazione binaria, consulta Sicurezza con i Controlli di servizio VPC.
Software Delivery Shield
Autorizzazione binaria fa parte della soluzione Software Delivery Shield. Software Delivery Shield è una soluzione di sicurezza della catena di fornitura del software end-to-end completamente gestita che aiuta a migliorare l'approccio di sicurezza dei flussi di lavoro e degli strumenti degli sviluppatori, delle dipendenze software, dei sistemi CI/CD utilizzati per creare ed eseguire il deployment del software e ambienti di runtime come Google Kubernetes Engine e Cloud Run. Per scoprire come utilizzare Autorizzazione binaria con altri componenti di Software Delivery Shield per migliorare il livello di sicurezza della catena di fornitura del software, consulta la panoramica di Software Delivery Shield.
Passaggi successivi
- Per tutorial completi end-to-end, consulta quanto segue:
- Configura un criterio di Autorizzazione binaria per Cloud Service Mesh (anteprima) utilizzando la console Google Cloud o lo strumento a riga di comando.