Questa pagina contiene informazioni sui concetti relativi ad Autorizzazione binaria.
Criteri
Un criterio di Autorizzazione binaria, noto anche come criterio di singolo progetto, è un insieme di regole che regolano il deployment delle immagini container.
La convalida continua (CV) utilizza una un tipo diverso di criterio, chiamato criterio della piattaforma.
Una norma è composta dalle seguenti parti:
- Regole di deployment
- Elenco di immagini esenti
Puoi configurare un criterio in uno dei seguenti modi:
- Console Google Cloud
- Comandi
gcloud
Quando utilizzi i comandi gcloud
, esporti e modifichi una definizione del criterio
in formato YAML prima di importarli nuovamente nel tuo progetto. Il formato YAML
riflette la struttura interna di un criterio nell'archiviazione di Autorizzazione binaria.
Per ulteriori informazioni su questo formato, consulta
Riferimento YAML per i criteri.
Ogni progetto Google Cloud può avere esattamente un criterio. Devi configurare il criterio nel progetto in cui esegui la piattaforma di deployment. In un configurazione di singoli progetti, il criterio e tutti i criteri (attestatori e attestati) risiedono in lo stesso progetto. Per stabilire la separazione dei compiti: puoi utilizzare una configurazione con più progetti. In questa configurazione, di deployment in un progetto, gli attestatori possono risiedere in un altro progetto e le attestazioni possono trovarsi anche in un altro progetto.
Per configurare e utilizzare Autorizzazione binaria sulle piattaforme supportate, consulta Configurazione per piattaforma.
Guarda un esempio di configurazione con più progetti per GKE.
Regole
Quando configuri un criterio, ne definisci le regole. Definizione delle regole i vincoli che le immagini devono soddisfare prima di poterne eseguire il deployment. Un criterio ha una regola predefinita e può avere regole specifiche, a seconda della piattaforma. Per saperne di più, consulta Tipi di regole supportate per piattaforma.
Ogni regola può essere configurata con una modalità di valutazione e una modalità di applicazione, ad esempio una regola può richiedere che un'immagine dispone di un'attestazione firmata prima del deployment.
Regola predefinita
Ogni criterio ha una regola predefinita. Questa regola si applica a qualsiasi richiesta di deployment
che non corrisponde a una regola specifica. In un file YAML dei criteri, la regola predefinita è
specificato nel nodo defaultAdmissionRule
.
Per ulteriori informazioni sulla configurazione della regola predefinita, consulta l'argomento Configurazione di un criterio.
Regole specifiche
È possibile aggiungere una o più regole specifiche a un criterio. Questo tipo di si applica alle immagini di cui deve essere eseguito il deployment in cluster, account di servizio o identità. Il supporto di regole specifiche varia in base a completamente gestita. Per saperne di più, consulta Tipi di regole supportate per piattaforma.
In un file YAML dei criteri, ogni regola specifica del cluster viene specificata
clusterAdmissionRule
nodo.
Tipi di regole supportate per piattaforma
La tabella seguente mostra i tipi di regole supportati per ogni piattaforma di deployment.
Piattaforma | Regola predefinita | Regola specifica |
---|---|---|
GKE | Supportato | Cluster Spazi dei nomi Kubernetes Account di servizio Kubernetes |
Cloud Run | Supportato | Non supportata |
Cluster collegati a GKE | Supportato | Cluster Spazi dei nomi Kubernetes Account di servizio Kubernetes |
GKE su AWS | Supportato | Cluster Spazi dei nomi Kubernetes Account di servizio Kubernetes |
Google Distributed Cloud | Supportato | Cluster Spazi dei nomi Kubernetes Account di servizio Kubernetes |
Google Distributed Cloud | Supportato | Cluster Spazi dei nomi Kubernetes Account di servizio Kubernetes |
Cloud Service Mesh | Supportato | Identità dei servizi Cloud Service Mesh |
Modalità di valutazione
Ogni regola ha una modalità di valutazione che specifica il tipo di vincolo che
La regola viene applicata a Autorizzazione binaria. La modalità di valutazione di una regola viene specificata utilizzando la proprietà evaluationMode
nel file YAML del criterio.
Esistono tre modalità di valutazione:
- Consenti tutte le immagini: consente il deployment di tutte le immagini.
- Non consentire alcuna immagine: impedisce il deployment di tutte le immagini.
- Richiedi attestazioni: richiede al signer di firmare digitalmente del digest dell'immagine e creare un'attestazione prima del deployment. Al momento del deployment, l'applicazione forzata di Autorizzazione binaria utilizza un attestatore per verificare la firma nell'attestazione prima di eseguire il deployment dell'immagine.
Modalità di applicazione
Ogni regola ha anche una modalità di applicazione, che specifica l'azione acquisite da GKE quando un'immagine non è conforme alla regola. Una regola può avere le seguenti modalità di applicazione:
Blocca e audit log: blocca il deployment di immagini non conformi. regola e scrive un messaggio nell'audit log per indicare il motivo per cui l'immagine non è stato eseguito il deployment.
Dry run: solo audit log: la modalità dry run è una modalità di applicazione forzata in un criterio che consente il deployment di immagini non conformi, ma scrive dettagli su il deployment in Cloud Audit Logs. La modalità dry run consente di testare ad esempio nel tuo ambiente di produzione, prima dell'applicazione. entra in vigore.
La maggior parte delle regole di produzione utilizza la modalità di applicazione forzata di Blocca e audit log. Dry run: solo audit log viene utilizzato principalmente per testare un criterio nella dell'ambiente di lavoro prima che entri in vigore.
La modalità di applicazione forzata per una regola viene specificata utilizzando
enforcementMode
nel
YAML dei criteri.
Vedi Visualizzare gli audit log (GKE, Google Distributed Cloud, Cloud Service Mesh) oppure Visualizza audit log (Cloud Run) per ulteriori informazioni sui messaggi scritti in Cloud Audit Logs.
di una convalida continua
La Convalida continua (CV) è una funzionalità di Autorizzazione binaria che periodicamente verifica la continuità delle immagini associate ai pod in esecuzione la conformità.
Immagini esenti
Un'immagine esente è un'immagine esente dalle regole delle norme.
Autorizzazione binaria consente sempre il deployment di immagini esenti. Ogni progetto ha una lista consentita di immagini esenti specificata dal percorso del registry. Immagini nel percorso
gcr.io/google_containers/*
, k8s.gcr.io/**
e altri percorsi sono esenti da
perché contengono risorse necessarie per fare in modo che GKE
può avviare un cluster correttamente con il criterio predefinito attivo.
Per aggiungere un'immagine esente alla lista consentita, aggiungi l'elemento al file dei criteri:
admissionWhitelistPatterns: - namePattern: EXEMPT_IMAGE_PATH
Sostituisci EXEMPT_IMAGE_PATH
con il percorso dell'immagine da escludere. Per escludere altre immagini, aggiungi altre voci - namePattern
. Scopri di più su admissionWhitelistPatterns
.
Pattern della lista consentita
Per inserire nella lista consentita tutte le immagini la cui posizione del registro corrisponde a quella specificata percorso:
gcr.io/example-project/*
Per inserire nella lista consentita tutte le immagini il cui percorso nel registro è una qualsiasi sottodirectory del
percorso specificato (ad es. gcr.io/example-project/my-directory/helloworld
):
gcr.io/example-project/**
Per inserire un'immagine specifica nella lista consentita:
gcr.io/example-project/helloworld
Per inserire nella lista consentita una versione specifica di un'immagine in base al tag:
gcr.io/example-project/helloworld:latest gcr.io/example-project/helloworld:my-tag
Per inserire nella lista consentita tutte le versioni e tutti i tag di un'immagine:
gcr.io/example-project/helloworld:*
Per inserire nella lista consentita una versione specifica di un'immagine in base al suo digest:
gcr.io/example-project/helloworld@sha256:77b0b75136b9bd0fd36fb50f4c92ae0dbdbbe164ab67885e736fa4374e0cbb8c
Scopri di più sull'utilizzo delle sintesi delle immagini container.
Scopri come gestire le immagini esenti nella console Google Cloud utilizzando lo strumento a riga di comando. o utilizzando l'API REST.
Immagini di sistema gestite da Google
Attendi tutte le cause di tutte le immagini di sistema gestite da Google Autorizzazione binaria per escludere un elenco di immagini di sistema gestite da Google da per un'ulteriore valutazione delle norme. Quando questa impostazione è attiva, le immagini che vengono richiesti da GKE non sono bloccati dall'applicazione forzata dei criteri. Il criterio di sistema viene valutato prima e in aggiunta alla valutazione dei criteri dell'utente.
Puoi attivare o disattivare questa impostazione utilizzando il
globalPolicyEvaluationMode
nel file YAML del criterio. Puoi visualizzare i contenuti del sistema
con il seguente comando:
gcloud alpha container binauthz policy export-system-policy
Attestazioni
Un'attestazione è un documento digitale che certifica un'immagine. Durante il deployment, Autorizzazione binaria verifica l'attestazione prima consente il deployment dell'immagine.
Il processo di creazione di un'attestazione a volte è chiamato firma di un'immagine. Viene creata un'attestazione dopo la creazione di un'immagine. Ciascuna di queste immagini ha un digest unico a livello globale. Un signer firma l'immagine digest utilizzando una chiave privata di una coppia di chiavi e utilizza per creare l'attestazione. Al momento del deployment, l'autorizzazione binaria l'applicazione forzata utilizza la chiave pubblica dell'attestatore per verificare la firma nell'attestazione. Generalmente un attestatore corrisponde a un solo firmatario.
Un'attestazione indica che l'immagine associata è stata creata da di eseguire correttamente uno specifico processo richiesto. Ad esempio, se la firma è stata apposta da un rappresentante della funzione di controllo qualità (QA), l'attestazione potrebbe indicare che l'immagine ha superato tutti i test funzionali end-to-end richiesti in un ambiente di staging.
Per attivare le attestazioni in Autorizzazione binaria, il valore evaluationMode
del criterio
impostato su REQUIRE_ATTESTATION
.
Scopri come creare e utilizzare attestatori e attestazioni.
Firmatari
Un signer è una persona o un processo automatizzato che crea un attestazione firmando un descrittore di immagine univoco con una chiave privata. L'attestazione viene verificata in data il tempo di deployment in base alla chiave pubblica corrispondente archiviata un attestatore prima del deployment dell'immagine associata.
Scopri come creare e utilizzare attestatori e attestazioni.
Attestatori
Un attestatore è una risorsa Google Cloud utilizzata da Autorizzazione binaria per verificare la attestazione al momento del deployment dell'immagine. Gli attestatori contengono la chiave pubblica che corrisponde alla chiave privata utilizzata da un firmatario per firmare il digest dell'immagine e creare l'attestazione. La L'applicazione di Autorizzazione binaria utilizza l'attestatore al momento del deployment per limitare le istanze il deployment delle immagini può essere eseguito a coloro che hanno un file attestazione verificabile creata prima del deployment.
Gli attestatori sono spesso gestiti dal personale delle operazioni di sicurezza, che anche gestire le coppie di chiavi pubbliche e private, mentre i firmatari sono in genere tecnici, QA DevOps o personale di conformità responsabili della produzione di cui è possibile eseguire il deployment, firmandole con la chiave privata e creando delle attestazioni prima di tentare di eseguirne il deployment.
Gli attestatori hanno:
- Una nota di Artifact Analysis corrispondente
- Una o più chiavi pubbliche di crittografia corrispondenti alla chiave privata utilizzata dal firmatario per creare un'attestazione.
Quando configuri un criterio che contiene una regola Richiedi attestazioni,
devono aggiungere un attestatore per ogni persona o processo che deve eseguire la verifica
per assicurarti che l'immagine sia pronta per il deployment. Puoi aggiungere attestatori utilizzando
la console Google Cloud, l'interfaccia gcloud
o il REST di Autorizzazione binaria
tramite Google Cloud CLI
o tramite l'API Compute Engine.
Scopri come creare e utilizzare attestatori e attestazioni.
Chiavi crittografiche
Autorizzazione binaria utilizza le firme digitali per verificare le immagini al momento del deployment se il criterio contiene una regola Richiedi attestazioni.
Viene generata una coppia di chiavi. La chiave privata viene utilizzata dal signer per firma un descrittore di immagine. Viene creata un'attestazione.
Quindi, nel criterio viene creato e archiviato un attestatore. La una chiave pubblica che corrisponde alla chiave privata utilizzata per la firma. e allegata all'attestatore.
Quando si tenta di eseguire il deployment di un'immagine, Autorizzazione binaria utilizza gli attestatori nel criterio per verificare le attestazioni dell'immagine. Se l'attestazione può essere viene eseguito il deployment dell'immagine.
L'autorizzazione binaria supporta due tipi di chiavi:
Le chiavi PKIX possono essere archiviate localmente, esternamente o in Cloud Key Management Service.
Crea una chiave di crittografia e un attestatore.
Note di Artifact Analysis
Autorizzazione binaria utilizza Artifact Analysis per archiviare i metadati attendibili utilizzati nella procedura di autorizzazione. Per ogni attestatore devi creare un'analisi Artifact Analysis nota. Ogni attestazione viene archiviata come occorrenza di questo nota.
Quando Autorizzazione binaria valuta una regola che richiede che gli attestatori abbiano ha verificato un'immagine, controlla lo spazio di archiviazione di Artifact Analysis per vedere se sono presenti le attestazioni richieste.