Discovery Docker
Le discovery Docker consentono di elencare un insieme di immagini Docker a partire da un registry o da una distribuzione esistente. Le immagini Docker individuate possono quindi essere aggiunte a Cyberwatch tramite un’azione in blocco per essere scansionate.
Kubernetes via kubeconfig
Prerequisiti
Le discovery Kubernetes via kubeconfig richiedono:
- Il file kubeconfig dei cluster da scansionare, la cui autenticazione Microsoft Entra è delegata a
kubelogin- Su ogni cluster da scansionare, il diritto di elencare i pod (ruolo Lettore RBAC del servizio Azure Kubernetes)
- I prerequisiti specifici della modalità di autenticazione scelta, descritti nella sezione corrispondente più avanti
La discovery Kubernetes via kubeconfig scansiona i cluster Kubernetes descritti in un file kubeconfig per elencare tutte le immagini Docker che vi sono distribuite. Le modalità di autenticazione attualmente supportate riguardano i cluster AKS autenticati tramite Microsoft Entra.
Questa discovery è complementare alla discovery AKS: è rivolta in particolare ai cluster il cui audience Microsoft Entra è personalizzato (un server-id specifico della registrazione app, anziché l’audience AKS predefinito), che la discovery AKS standard non è in grado di raggiungere. Poiché il server-id viene letto direttamente nel file kubeconfig, questa discovery funziona qualunque sia l’audience configurato sul cluster.
La discovery richiede un set di credenziali di tipo File kubeconfig, che è possibile creare dal menu Credenziali salvate. È sufficiente incollare il contenuto del file kubeconfig (che deve contenere le sezioni clusters, contexts e users), quindi scegliere la Modalità di autenticazione corrispondente al metodo dichiarato nel file kubeconfig per autenticarsi presso i cluster.
Cyberwatch esamina tutti i contesti definiti nel file kubeconfig e scansiona ogni cluster presso il quale riesce ad autenticarsi. Un contesto che corrisponde a un’altra modalità di autenticazione o a un’altra credenziale rispetto a quella configurata viene ignorato, senza interrompere la scansione degli altri contesti.
I file kubeconfig generati per AKS delegano l’autenticazione al binario kubelogin. Cyberwatch non esegue questo binario: legge la modalità di autenticazione e i relativi parametri (in particolare il server-id) direttamente nel file, quindi ottiene il token da Microsoft Entra. Non è quindi necessaria alcuna installazione di kubelogin sul lato Cyberwatch.
AKS — Service Principal
Prerequisiti
- Un set di credenziali Microsoft Azure di tipo entità servizio, creato come per le discovery Azure, il cui ID applicazione (client) e ID tenant corrispondono a quelli indicati nel file kubeconfig
Questa modalità è adatta ai file kubeconfig il cui utente si autentica tramite un’entità servizio (Service Principal), ovvero il cui comando kubelogin ha la forma ... --login spn. Il token di accesso al cluster viene ottenuto a partire da questo set di credenziali, che funge da credenziale padre del file kubeconfig. Questo file si ottiene come segue:
az aks get-credentials --resource-group <resource-group> --name <cluster-name>
kubelogin convert-kubeconfig -l spn
Alla creazione della credenziale File kubeconfig, scegliere la modalità AKS — Service Principal, quindi selezionare il set di credenziali Microsoft Azure nel campo Credenziale Azure.
AKS — Identità del carico di lavoro
Prerequisiti
- Un’installazione di Cyberwatch ospitata in un cluster AKS e configurata con l’identità del carico di lavoro, seguendo Configurare Azure Workload Identity su AKS
Questa modalità è adatta ai file kubeconfig il cui utente si autentica tramite l’identità del carico di lavoro (Workload Identity) Microsoft Entra, ovvero il cui comando kubelogin ha la forma ... --login workloadidentity. Non è necessario alcun segreto né alcuna credenziale padre: Cyberwatch si autentica tramite l’identità federata dei propri pod. Questo file si ottiene come segue:
az aks get-credentials --resource-group <resource-group> --name <cluster-name>
kubelogin convert-kubeconfig -l workloadidentity
Alla creazione della credenziale File kubeconfig, scegliere la modalità AKS — Identità del carico di lavoro. Non è richiesta alcuna credenziale padre: i parametri di autenticazione sono derivati dall’ambiente del pod.
Se la distribuzione di Cyberwatch non è configurata con l’identità del carico di lavoro, questa modalità non può essere utilizzata: i contesti interessati verranno ignorati e segnalati come tali nel risultato della discovery.
Creare la discovery
Una volta pronto il set di credenziali, sarà possibile creare la discovery dal menu Discovery, cliccando sul pulsante Aggiungi e poi su Kubernetes via kubeconfig nella sezione Immagini Docker.
Aggiungere le immagini Docker individuate
Dall’elenco degli asset individuati, è possibile visualizzare e filtrare le immagini che non hanno asset associati. Per aggiungerle a Cyberwatch, è possibile selezionare quelle da scansionare e cliccare su Azioni in blocco > Scansiona come immagini Docker.
L’aggiunta a Cyberwatch delle immagini Docker appena individuate può essere automatizzata attivando la registrazione automatica dal modulo di modifica della discovery.
Il registry viene scelto automaticamente in base al nome dell’immagine individuata. Ad esempio, un’immagine example.com/library/hello utilizzerà automaticamente il registry Docker example.com, a condizione tuttavia che sia stato aggiunto come credenziale salvata. Se il registry è nuovo, verrà creata automaticamente una credenziale salvata, che potrà essere modificata manualmente in seguito se è richiesta un’autenticazione. Talvolta è possibile indicare un registry preferito, ma verrà utilizzato solo per le immagini individuate il cui registry presente nel nome corrisponde all’endpoint del registry.