Proteggere la distribuzione di Servizio Azure Kubernetes (AKS)

Servizio Azure Kubernetes (AKS) fornisce un ambiente Kubernetes gestito per la distribuzione e il funzionamento di applicazioni in contenitori. Microsoft gestisce il piano di controllo Kubernetes, mentre si è responsabili della protezione dei carichi di lavoro, della configurazione dei nodi, della rete, dell'identità e dei dati nei cluster. Quando distribuisci AKS, è importante seguire le procedure consigliate in materia di sicurezza per proteggere questa superficie condivisa durante l'intero ciclo di vita del cluster.

Questo articolo fornisce raccomandazioni sulla sicurezza per proteggere la distribuzione del servizio Azure Kubernetes. Molti di questi controlli sono preconfigurati in AKS Automatic, che crea i cluster a partire da una configurazione di base rafforzata, e sono disponibili in AKS Standard, dove è possibile abilitarli e gestirli. Per i concetti alla base di questi controlli, incluso il funzionamento della sicurezza del servizio Azure Kubernetes nella pipeline da compilazione a runtime, vedere Concetti di sicurezza per applicazioni e cluster nel servizio Azure Kubernetes.

Le raccomandazioni sulla sicurezza in questo articolo implementano i principi Zero Trust: "Verificare in modo esplicito", "Usare l'accesso con privilegi minimi" e "Presupporre violazione". Per indicazioni complete su Zero Trust, vedere Zero Trust Guidance Center.

Sicurezza specifica del servizio

AKS combina primitive di sicurezza Kubernetes con i controlli della piattaforma Azure. Le raccomandazioni seguenti consentono di risolvere i problemi di protezione avanzata specifici dell'esecuzione di un cluster Kubernetes gestito, tra cui l'integrità del nodo, la provenienza delle immagini e l'isolamento del carico di lavoro.

Protezione avanzata del cluster e dei nodi

  • Mantenere i cluster in una versione di Kubernetes supportata con aggiornamenti automatici del cluster: registrare i cluster in un canale di aggiornamento automatico in modo che il piano di controllo e i pool di nodi ricevano patch Kubernetes che risostituiscono vulnerabilità note senza intervento manuale. Per altre informazioni, vedere Aggiornare automaticamente un cluster AKS.
  • Applicare automaticamente gli aggiornamenti della sicurezza del sistema operativo del nodo: configurare il canale di aggiornamento automatico del sistema operativo del nodo in modo che i nodi ricevano patch di sicurezza del sistema operativo linux e Windows in base a una cadenza definita. Per altre informazioni, vedi Aggiornare automaticamente le immagini del sistema operativo dei nodi del cluster AKS.
  • Applicare gli standard di ammissione di sicurezza dei pod: applicare gli standard di sicurezza dei pod di base o con restrizioni a livello di spazio dei nomi per impedire pod con privilegi, condivisione dello spazio dei nomi host e montaggi di volumi non sicuri. Per altre informazioni, vedi Proteggi i pod in AKS.
  • Distribuire pool di nodi abilitati per FIPS per carichi di lavoro regolamentati: abilitare i pool di nodi abilitati per FIPS, che usano moduli crittografici convalidati FIPS 140-3, quando i carichi di lavoro devono soddisfare requisiti come la conformità FedRAMP. Per altre informazioni, vedi Abilitare lo standard FIPS (Federal Information Processing Standard) per i pool di nodi di AKS.
  • Non eseguire carichi di lavoro multi-tenant ostili in un cluster condiviso: un cluster Kubernetes standard non è un limite di sicurezza rigido tra tenant non attendibili, perché il dominio di sicurezza è l'intero cluster anziché un singolo nodo. Per i carichi di lavoro che richiedono un isolamento rigoroso, usare cluster fisicamente isolati, dimensioni di nodo VM isolate o il sandboxing dei pod. Per altre informazioni, vedere Procedure consigliate per l'isolamento del cluster in AKS.

Sicurezza dell'immagine del contenitore e della supply chain

  • Limitare le distribuzioni ai registri contenitori attendibili: usare il componente aggiuntivo Criteri di Azure per imporre che i pod possano eseguire il pull delle immagini solo da registri approvati, ad esempio i registri privati Registro Azure Container, in modo che le immagini pubbliche non attendibili non possano essere eseguite nel cluster. Per altre informazioni, vedere Secure your AKS clusters with Criteri di Azure (Proteggere i cluster del servizio Azure Kubernetes con Criteri di Azure.
  • Rimuovere immagini vulnerabili inutilizzate con Image Cleaner: abilitare Image Cleaner per rimuovere automaticamente le immagini non aggiornati dai nodi e ridurre la superficie di attacco lasciata da immagini vulnerabili. Per altre informazioni, vedi Usa Image Cleaner per ripulire le immagini vulnerabili in AKS.
  • Analizzare i registri ed eseguire carichi di lavoro con Microsoft Defender per contenitori: rilevare immagini vulnerabili e configurazioni errate nel Registro di sistema e nei cluster prima e dopo la distribuzione. Per altre informazioni, vedere Panoramica di Microsoft Defender per contenitori.

Sicurezza di rete

Per impostazione predefinita, il server API di AKS è raggiungibile tramite un endpoint pubblico e il traffico in uscita del cluster non è soggetto ad alcuna restrizione. La limitazione dell'accesso in ingresso al piano di controllo e al traffico in uscita dai carichi di lavoro è tra le modifiche più efficaci che è possibile apportare per ridurre la superficie di attacco di rete del cluster.

Gestione delle identità e degli accessi

AKS autentica le identità del cluster e dei carichi di lavoro tramite Microsoft Entra ID e autorizza l'accesso tramite Azure RBAC e Kubernetes RBAC. Usare le identità gestite e l'autorizzazione supportata da Entra anziché credenziali statiche o account Kubernetes autonomi.

  • Usa un'identità gestita per il cluster: configura il cluster in modo che usi un'identità gestita, così AKS accede alle risorse di Azure senza credenziali statiche dell'entità servizio che devono essere ruotate. Per altre informazioni, vedere Usare un'identità gestita in Servizio Azure Kubernetes (AKS).
  • Usare l'identità del carico di lavoro per l'accesso dei pod alle risorse di Azure: Federare gli account di servizio Kubernetes con le identità del carico di lavoro di Microsoft Entra in modo che i pod ottengano token per le risorse di Azure senza archiviare segreti. Per altre informazioni, vedere Usare ID dei carichi di lavoro di Microsoft Entra con AKS.
  • Integrare l'autenticazione del cluster con Microsoft Entra ID: abilitare l'integrazione di Microsoft Entra in modo che gli utenti e i gruppi eseguano l'autenticazione nel cluster con le identità Entra anziché i certificati condivisi. Per ulteriori informazioni, vedere Integrazione Microsoft Entra gestita da AKS.
  • Autorizzare l'accesso all'API di Kubernetes con Azure RBAC: usare Azure RBAC per l'autorizzazione di Kubernetes e assegnare i ruoli predefiniti di AKS (servizio Azure Kubernetes RBAC Reader, servizio Azure Kubernetes RBAC Writer, servizio Azure Kubernetes RBAC Admin e servizio Azure Kubernetes RBAC Cluster Admin) a livello di cluster o di spazio dei nomi per concedere l'accesso secondo il principio del privilegio minimo. Per altre informazioni, vedere Concetti relativi all'autorizzazione del cluster.
  • Disabilita gli account Kubernetes locali: disattiva gli account locali in modo che tutto l'accesso al cluster passi attraverso Microsoft Entra ID e non possa bypassare l'autorizzazione basata su Entra tramite la credenziale statica di amministratore del cluster. Per altre informazioni, vedere Gestire gli account locali con l'integrazione di Microsoft Entra gestita da AKS.
  • Applicare l'accesso condizionale per gli amministratori del cluster: applicare criteri di accesso condizionale che richiedono l'autenticazione a più fattori e i dispositivi conformi per le identità Entra che possono creare, aggiornare o eliminare cluster del servizio Azure Kubernetes e gestire i pool di nodi, le reti e le assegnazioni di ruolo. Per maggiori informazioni, vedi Richiedere MFA per la gestione Azure.

Protezione dei dati

AKS crittografa per impostazione predefinita i dati archiviati nei dischi gestiti. Configurate i controlli seguenti per proteggere i segreti Kubernetes e usare chiavi fornite dal cliente quando i requisiti di conformità lo richiedono.

  • Crittografare i segreti Kubernetes in etcd con un servizio di gestione delle chiavi: abilitare la crittografia dei dati del Servizio di gestione delle chiavi in modo che gli oggetti segreti Kubernetes vengano crittografati a livello di applicazione prima che vengano scritti in etcd, usando chiavi gestite dalla piattaforma o chiavi gestite dal cliente in Azure Key Vault. Per ulteriori informazioni, vedi Concetti relativi alla crittografia dei dati archiviati per AKS.
  • Archiviare i segreti dell'applicazione in Azure Key Vault: usare il provider di Azure Key Vault per il driver CSI dell'archivio segreti per montare segreti, chiavi e certificati da Key Vault anziché archiviarli come segreti Kubernetes in testo non crittografato. Per altre informazioni, vedi Usare il provider di Azure Key Vault per Secrets Store CSI Driver in AKS.
  • Usare chiavi gestite dal cliente per dischi dati e nodi: crittografare i dischi del sistema operativo e dei dati con chiavi personalizzate in Key Vault quando è necessario controllare il ciclo di vita della chiave di crittografia. Per altre informazioni, vedere Bring Your Own Keys (BYOK) con i dischi di Azure in AKS.
  • Abilitare la crittografia basata su host: attivare la crittografia basata su host in modo che i dischi temporanei e le cache del disco del sistema operativo/dati nella macchina virtuale del nodo siano crittografati inattivi nell'host. Per altre informazioni, vedi Crittografia basata su host in AKS.

Registrazione e monitoraggio

Raccogli dati di telemetria del cluster, del control plane e dei carichi di lavoro in modo da poter rilevare e indagare sulle minacce ai danni dei tuoi cluster AKS.

  • Monitorare i cluster con Informazioni dettagliate sui contenitori: abilitare Informazioni dettagliate sui contenitori per raccogliere metriche e log dei nodi e contenitori per i cluster in un'area di lavoro Log Analytics. Per altre informazioni, vedere Monitorare Servizio Azure Kubernetes (AKS).
  • Raccogli i log di controllo del control plane con le impostazioni di diagnostica: configura le impostazioni di diagnostica per inviare a Log Analytics le categorie di log del server API Kubernetes e dei log di controllo (kube-audit, kube-audit-admin e guard) per le indagini sulla sicurezza. Per ulteriori informazioni, vedi Riferimento ai dati di monitoraggio di AKS.
  • Abilitare il rilevamento delle minacce con Microsoft Defender per contenitori: attivare Defender per i contenitori per ricevere avvisi di rilevamento delle minacce di runtime per nodi del cluster, carichi di lavoro e piano di controllo Kubernetes. Per altre informazioni, vedere Panoramica di Microsoft Defender per contenitori.

Conformità e governance

Usare Criteri di Azure per applicare le configurazioni di sicurezza in modo coerente nei cluster del servizio Azure Kubernetes e impedire la distribuzione dei carichi di lavoro non conformi.

  • Applicare la configurazione del cluster e del carico di lavoro con Criteri di Azure per il servizio Azure Kubernetes: abilitare il componente aggiuntivo Criteri di Azure e assegnare l'iniziativa di criteri predefinita del servizio Azure Kubernetes per controllare e applicare controlli quali registri approvati, limiti delle risorse e contenitori con privilegi bloccati. Per altre informazioni, vedere Secure your AKS clusters with Criteri di Azure (Proteggere i cluster del servizio Azure Kubernetes con Criteri di Azure.
  • Applica le protezioni della distribuzione per le procedure consigliate di Kubernetes: abilita le protezioni della distribuzione per convalidare le risorse del cluster in base alle procedure consigliate di AKS in modalità di avviso o applicazione. Per altre informazioni, vedere Usare protezioni di distribuzione per applicare le procedure consigliate nel servizio Azure Kubernetes.
  • Assegnare definizioni di criteri predefiniti del servizio Azure Kubernetes per applicare controlli specifici: assegnare definizioni di Criteri di Azure predefinite per il servizio Azure Kubernetes per applicare singoli controlli, ad esempio richiedere intervalli IP autorizzati o cluster privati, disabilitare i contenitori con privilegi e applicare i servizi di bilanciamento del carico interni. Per altre informazioni, vedere Definizioni predefinite di Criteri di Azure per AKS.

Backup e ripristino

Proteggere lo stato del cluster e i dati dell'applicazione in modo da poter eseguire il ripristino da eliminazione accidentale, danneggiamento o aggiornamento non riuscito.

  • Eseguire il backup dello stato del cluster e dei volumi persistenti con backup del servizio Azure Kubernetes: usare il backup del servizio Azure Kubernetes con un insieme di credenziali di backup per pianificare i backup delle risorse del cluster e dei volumi persistenti supportati da Disco di Azure e File di Azure (SMB) e per ripristinare uno spazio dei nomi o un intero cluster. Per altre informazioni, vedere Che cos'è Servizio Azure Kubernetes (AKS) backup?.
  • Concedere l'accesso al backup con accesso attendibile anziché con autorizzazioni estese: abilitare l'accesso attendibile affinché l'insieme di credenziali di backup possa accedere al cluster con autorizzazioni limitate all'ambito necessario, anziché richiedere un accesso amministrativo continuativo. Per altre informazioni, vedere Abilitare le risorse Azure per accedere ai cluster del servizio Azure Kubernetes tramite Accesso attendibile.

Passaggi successivi