È facile pensare che, lavorando con i container, la sicurezza dell’host smetta di contare. È esattamente il contrario: ogni nodo Kubernetes è una macchina che si avvia da un’immagine, e una violazione dell’host compromette tutti i pod che ospita. La AMI del nodo è quindi un tassello critico della sicurezza.
Hai tre strade: usare le AMI ottimizzate ufficiali così come sono, usarle come base e personalizzarle, oppure costruire la tua. Per una produzione seria, personalizzare o costruire su una base irrobustita è la scelta consigliata.
Cosa deve contenere una buona AMI di nodo
- Base ottimizzata per il runtime dei container, con containerd e kubelet configurati correttamente.
- Hardening CIS del sistema operativo e, quando serve, del CIS Benchmark for Kubernetes stesso.
- Patch aggiornate del kernel e dei componenti, con ricostruzione periodica.
- Agenti necessari —log, metriche, sicurezza— preinstallati per un avvio rapido.
- Nessun segreto o credenziale incorporata; identità tramite IAM Roles for Service Accounts (IRSA) o equivalente.
- Configurazione minima: elimina pacchetti e servizi che un nodo non usa.
Opzioni di immagine per EKS
| Opzione | Vantaggio | Quando sceglierla |
|---|---|---|
| AMI EKS ottimizzata (AL2023) | Ufficiale, mantenuta da AWS | Punto di partenza generale |
| Bottlerocket | SO minimale orientato ai container, immutabile | Massima sicurezza e superficie minima |
| AMI personalizzata | Controllo totale su hardening e agenti | Requisiti di conformità stringenti |
Scegli la base del nodo in base al tuo equilibrio tra controllo e comodità.
Bottlerocket: prima i container
Bottlerocket è un sistema operativo minimalista di AWS pensato esclusivamente per eseguire container. La sua superficie d’attacco è minuscola, è immutabile e si aggiorna per immagine —non con patch a caldo—, il che si sposa benissimo con la filosofia dell’infrastruttura immutabile. Se la tua priorità è la sicurezza del nodo con il minimo sforzo di manutenzione, merita una valutazione seria.
Aggiornare i nodi senza dolore
Una AMI di nodo irrobustita serve solo se mantieni i nodi aggiornati. Qui il modello immutabile dà il meglio:
- Sostituisci, non applicare patch: pubblica una nuova versione di AMI e ruota i nodi.
- Rolling update del gruppo di nodi: svuota con cordon e drain e sostituisci nodo per nodo.
- Managed Node Groups o Karpenter per automatizzare la sostituzione con nuove AMI.
- PodDisruptionBudgets perché la rotazione non intacchi la disponibilità dei tuoi servizi.
Errori frequenti
- Usare per mesi la AMI ottimizzata di default senza aggiornarla.
- Incorporare le credenziali del cluster nell’immagine invece di usare identità federata.
- Dimenticare l’hardening del kubelet stesso e dei permessi del filesystem.
- Non limitare l’accesso SSH ai nodi: idealmente zero SSH e accesso solo via SSM.
Domande frequenti
Mi serve una AMI personalizzata o basta quella ottimizzata di EKS?
Per iniziare, quella ottimizzata ufficiale è un buon punto di partenza. Se hai requisiti di conformità o sicurezza stringenti, personalizzala o costruisci la tua con hardening e agenti propri.
Bottlerocket sostituisce una normale AMI Linux?
Per nodi che eseguono solo container sì: offre una superficie d’attacco minore e aggiornamento immutabile. Non è adatto a carichi che richiedono un SO generalista.
Come aggiorno i nodi quando pubblico una AMI nuova?
Con un rolling update del gruppo di nodi: si svuotano e si sostituiscono in modo progressivo rispettando i PodDisruptionBudgets, così il servizio non ne risente.
In imaxe.cloud progettiamo immagini base irrobustite, ideali come fondamenta dei tuoi nodi Kubernetes.



