Questa pagina descrive come proteggere la catena di fornitura del software configurando Autorizzazione binaria per consentire solo le immagini container create da Cloud Build di cui eseguire il deployment.
Per configurare questo controllo del deployment, devi richiedere built-by-cloud-build
nel criterio di Autorizzazione binaria. Cloud Build
crea automaticamente l'attestatore built-by-cloud-build
nel progetto quando
esegui una build che genera immagini. Una volta create le immagini, Cloud Build le firma e crea automaticamente le attestazioni. Alle ore
per il deployment, Autorizzazione binaria verifica le attestazioni
built-by-cloud-build
attestatore. È consentito eseguire il deployment delle immagini verificate.
Il deployment delle immagini che non superano la verifica non è consentito e l'errore viene registrato negli audit log di Cloud.
Per la guida end-to-end che descrive come utilizzare le registrazioni di Cloud Build metadati e Autorizzazione binaria, consulta Utilizzare la provenienza firmata e Autorizzazione binaria.
Prima di iniziare
Per utilizzare questa funzionalità, devi prima svolgere i seguenti passaggi:
- Configura Autorizzazione binaria per la tua piattaforma.
Configura Cloud Build e crea un'immagine.
Configura il criterio
In questa sezione configurerai il criterio di Autorizzazione binaria per richiedere il
built-by-cloud-build
attestatore.
Per consentire il deployment solo delle immagini create da Cloud Build, esegui la seguenti passaggi:
Console
Vai alla pagina Autorizzazione binaria nella console Google Cloud:
Nella scheda Norme, fai clic su Modifica criterio.
Nella finestra di dialogo Modifica criterio, seleziona Consenti solo le immagini che sono state approvati da tutti i seguenti attestatori.
Fai clic su Aggiungi attestatori.
Nella finestra di dialogo Aggiungi attestatori, procedi nel seguente modo:
- Seleziona Aggiungi in base a nome progetto e attestatore ed esegui i seguenti passaggi:
- Nel campo Nome progetto, inserisci il progetto in cui esegui Cloud Build.
- Fai clic sul campo Nome attestatore e tieni presente che
L'attestatore
built-by-cloud-build
è disponibile. - Fai clic su
built-by-cloud-build
.
In alternativa, seleziona Aggiungi tramite ID risorsa attestatore. In ID risorsa attestatore, inserisci
projects/PROJECT_ID/attestors/built-by-cloud-build
Sostituzione di
PROJECT_ID
con il progetto in cui esegui in Cloud Build.
- Seleziona Aggiungi in base a nome progetto e attestatore ed esegui i seguenti passaggi:
Fai clic su Aggiungi 1 attestatore.
Fai clic su Save Policy (Salva criterio).
gcloud
Esporta il criterio esistente in un file utilizzando il seguente comando:
gcloud container binauthz policy export > /tmp/policy.yaml
Modifica il file dei criteri.
Modifica una delle seguenti regole:
defaultAdmissionRule
clusterAdmissionRules
istioServiceIdentityAdmissionRules
kubernetesServiceAccountAdmissionRules
Aggiungi un blocco
requireAttestationsBy
alla regola se non è già presente.Nel blocco
requireAttestationsBy
, aggiungiprojects/PROJECT_ID/attestors/built-by-cloud-build
Sostituzione di
PROJECT_ID
con il progetto in cui esegui Cloud Build.Salva il file delle norme.
Importa il file di criteri.
gcloud container binauthz policy import /tmp/policy.yaml
Di seguito è riportato un esempio di file di criteri che contiene il riferimento alla
built-by-cloud-build-attestor
:defaultAdmissionRule: evaluationMode: REQUIRE_ATTESTATION enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG requireAttestationsBy: - projects/PROJECT_ID/attestors/built-by-cloud-build name: projects/PROJECT_ID/policy
Sostituisci
PROJECT_ID
con l'ID progetto in cui esegui in Cloud Build.
Passaggi successivi
- Anziché impedire il deployment delle immagini, puoi utilizzare la modalità di prova per registrare le violazioni dei criteri.
- Visualizza gli eventi degli audit log per le immagini non consentite su Google Kubernetes Engine (GKE) o Cloud Run.