Best practice di sicurezza e conformità per Batch

Questo articolo fornisce indicazioni e procedure consigliate per migliorare la sicurezza quando si usa Azure Batch.

Per impostazione predefinita, gli account Azure Batch hanno un endpoint pubblico e sono accessibili pubblicamente. Quando viene creato un pool di Azure Batch, viene effettuato il provisioning del pool in una subnet specificata di una rete virtuale di Azure. Le macchine virtuali nel pool di Batch sono accessibili, per impostazione predefinita, tramite indirizzi IP pubblici creati da Batch. I nodi di calcolo in un pool possono comunicare tra loro quando necessario, ad esempio per eseguire attività a istanze multiple, ma i nodi in un pool non possono comunicare con macchine virtuali all'esterno del pool.

Diagramma che mostra un tipico ambiente Batch.

Sono disponibili molte funzionalità che consentono di creare una distribuzione di Azure Batch più sicura. È possibile limitare l'accesso ai nodi e ridurre l'individuabilità dei nodi da Internet effettuando il provisioning del pool senza indirizzi IP pubblici. I nodi di calcolo possono comunicare in modo sicuro con altre macchine virtuali o con una rete locale/on-premises effettuando il provisioning del pool in una subnet di una rete virtuale di Azure. È anche possibile abilitare l'accesso privato dalle reti virtuali da un servizio basato su collegamento privato di Azure.

Diagramma che mostra un ambiente Batch più sicuro.

Configurazione del pool

I pool possono essere configurati in una delle due modalità di comunicazione dei nodi, classica o semplificata. Nel modello di comunicazione dei nodi classico, il servizio Batch avvia la comunicazione con i nodi di calcolo; inoltre, i nodi di calcolo devono anche comunicare con Archiviazione di Azure. Nel modello di comunicazione semplificata dei nodi, i nodi di calcolo avviano la comunicazione con il servizio Batch. A causa dell'ambito ridotto delle connessioni in ingresso/in uscita necessarie e della mancata necessità dell'accesso in uscita ad Archiviazione di Azure per l'operazione di base, è consigliabile usare il modello di comunicazione semplificata dei nodi. Il modello di comunicazione dei nodi classico verrà ritirato il 31 marzo 2026.

I pool devono anche essere configurati con impostazioni di sicurezza avanzate, tra cui Trusted Launch (richiede immagini VM Gen2 e dimensioni di VM compatibili), abilitazione dell'avvio protetto, vTPM e crittografia nell'host (richiede una dimensione di macchina virtuale compatibile).

Autenticazione batch degli account

L'accesso all'account Batch supporta due metodi di autenticazione: Chiave condivisa e Microsoft Entra ID.

È consigliabile usare Microsoft Entra ID per l'autenticazione dell'account Batch, Alcune funzionalità di Batch richiedono questo metodo di autenticazione, incluse molte delle funzionalità correlate alla sicurezza descritte qui. Il meccanismo di autenticazione dell'API del servizio per un account Batch può essere limitato solo all'ID Microsoft Entra usando la proprietà allowedAuthenticationModes . Quando questa proprietà è impostata, le chiamate API che usano l'autenticazione Shared Key vengono rifiutate.

Modalità di allocazione del pool di account Batch

Quando si crea un account Batch, è possibile scegliere tra due modalità di allocazione del pool:

  • Servizio Batch: opzione predefinita, in cui le risorse del set di scalabilità di macchine virtuali sottostanti usate per allocare e gestire i nodi del pool vengono create nelle sottoscrizioni di proprietà di Batch e non sono direttamente visibili nella portale di Azure. Sono visibili solo i pool e i nodi di Batch.
  • Sottoscrizione utente: le risorse del set di scalabilità di macchine virtuali sottostanti vengono create nella stessa sottoscrizione dell'account Batch. Queste risorse sono quindi visibili nella sottoscrizione, oltre alle risorse batch corrispondenti.

Con la modalità di sottoscrizione utente, le macchine virtuali Batch e altre risorse vengono create direttamente nella sottoscrizione quando viene creato un pool. La modalità di sottoscrizione utente è necessaria se si vogliono creare pool di Batch usando istanze di macchine virtuali riservate di Azure, usare Criteri di Azure nelle risorse del set di scalabilità di macchine virtuali e/o gestire la quota di core nella sottoscrizione (condivisa tra tutti gli account Batch nella sottoscrizione). Per creare un account Batch in modalità Sottoscrizione utente, è anche necessario registrare la sottoscrizione in Azure Batch e associare l'account ad Azure Key Vault.

Limitare l'accesso agli endpoint di rete

Endpoint batch di rete

Per impostazione predefinita, per comunicare con gli account Batch, i pool di Batch e i nodi del pool, vengono usati endpoint con indirizzi IP pubblici.

API dell’account batch

Quando viene creato un account Batch, viene creato un endpoint pubblico usato per richiamare la maggior parte delle operazioni per l'account usando un'API REST. L'endpoint dell'account ha un URL di base usando il formato https://{account-name}.{region-id}.batch.azure.com. L'accesso all'account Batch è protetto, con la comunicazione con l'endpoint dell'account crittografato tramite HTTPS e ogni richiesta autenticata usando la chiave condivisa o l'autenticazione di Microsoft Entra.

Azure Resource Manager

Oltre alle operazioni specifiche dell'account Batch, operazioni di gestione si applicano sia ai singoli account Batch sia a più account Batch. Si accede a queste operazioni di gestione tramite Azure Resource Manager.

Le operazioni di gestione batch tramite Azure Resource Manager vengono crittografate tramite HTTPS e ogni richiesta viene autenticata usando l'autenticazione Microsoft Entra.

Nodi di calcolo del pool di Batch

Il servizio Batch comunica con un agente del nodo Batch che viene eseguito su ogni nodo del pool. Ad esempio, il servizio indica all'agente del nodo di eseguire un'attività, arrestarla o ottenere i file per un'attività. La comunicazione con l'agente del nodo è abilitata da uno o più servizi di bilanciamento del carico, il cui numero dipende dal numero di nodi in un pool. Il servizio di bilanciamento del carico inoltra la comunicazione al nodo desiderato, con ogni nodo indirizzato da un numero di porta univoco. Per impostazione predefinita, i servizi di bilanciamento del carico hanno indirizzi IP pubblici associati. È anche possibile accedere in remoto ai nodi del pool tramite RDP o SSH, vedere Configurare l'accesso remoto ai nodi di calcolo in un pool di Azure Batch.

Sistema operativo del nodo di calcolo batch

Batch supporta sia i sistemi operativi Linux che Windows. Batch supporta Linux con un agente del nodo corrispondente per un sottoinsieme di distribuzioni del sistema operativo Linux. È consigliabile mantenere aggiornato il sistema operativo con le patch più recenti fornite dal fornitore del sistema operativo.

È consigliabile abilitare l'aggiornamento automatico del sistema operativo per i pool di batch, che consente all'infrastruttura di Azure sottostante di coordinare gli aggiornamenti nel pool. Questa opzione può essere configurata in modo che non interrompa l'esecuzione dell'attività. L'aggiornamento automatico del sistema operativo non è supportato per tutti i sistemi operativi supportati da Batch. Per altre informazioni, vedere la Matrice di supporto per l'aggiornamento automatico del sistema operativo dei set di scalabilità di macchine virtuali. Per i sistemi operativi Windows, assicurarsi di non abilitare la proprietà virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates quando si usa l'aggiornamento automatico del sistema operativo nel pool di batch.

Il supporto batch per immagini e agenti del nodo viene gradualmente dismesso nel tempo, in genere allineato alle tempistiche di supporto del publisher. È consigliabile evitare di usare immagini con date di fine vita (EOL) imminenti o immagini che hanno superato la propria data EOL. È responsabilità dell'utente rivedere periodicamente le date EOL pertinenti ai pool ed eseguire la migrazione dei carichi di lavoro prima che si verifichi la data EOL. Se si usa un'immagine personalizzata con un agente del nodo specificato, assicurarsi di rispettare le date di fine del supporto di Batch per l'immagine da cui deriva o con cui è allineata l'immagine personalizzata. Un'immagine senza una data batchSupportEndOfLife specificata indica che tale data non è stata ancora determinata dal servizio Batch. L'assenza di una data non indica che la rispettiva immagine sarà supportata per un periodo illimitato. È possibile aggiungere o aggiornare una data EOL in futuro in qualsiasi momento. Le date EOL possono essere individuate tramite l'ListSupportedImagesAPI, PowerShell o interfaccia della riga di comando di Azure.

Windows OS Transport Layer Security (TLS)

L'agente del nodo Batch non modifica le impostazioni predefinite a livello di sistema operativo per le versioni SSL/TLS o l'ordinamento della suite di crittografia. In Windows, le versioni SSL/TLS e l'ordine della suite di crittografia sono controllati a livello di sistema operativo e pertanto l'agente del nodo Batch adotta le impostazioni impostate dall'immagine usata da ogni nodo di calcolo. Anche se l'agente del nodo Batch tenta di usare le impostazioni più sicure disponibili quando possibile, può comunque essere limitato dalle impostazioni a livello di sistema operativo. È consigliabile esaminare le impostazioni predefinite a livello di sistema operativo e impostarle in modo appropriato per la modalità più sicura utilizzabile per i requisiti del flusso di lavoro e dell'organizzazione. Per altre informazioni, vedere Manage TLS per l'imposizione dell'ordine della suite di crittografia e Impostazioni del Registro di sistema TLS per il controllo della versione SSL/TLS per SSP Schannel. Si noti che alcune modifiche alle impostazioni richiedono un riavvio per avere effetto. È consigliabile usare un sistema operativo più recente con impostazioni predefinite di sicurezza moderne o un'immagine personalizzata con impostazioni modificate anziché l'applicazione di tali impostazioni con un'attività di avvio di Batch.

Limitazione dell'accesso agli endpoint batch

Sono disponibili diverse funzionalità per limitare l'accesso ai vari endpoint batch, soprattutto quando la soluzione usa una rete virtuale.

Usare endpoint privati

collegamento privato di Azure consente l'accesso ai servizi PaaS di Azure e ai servizi di proprietà del cliente/partner ospitati in Azure tramite un endpoint privato nella rete virtuale. È possibile usare collegamento privato per limitare l'accesso a un account Batch dall'interno della rete virtuale o da qualsiasi rete virtuale con peering. Le risorse mappate al collegamento privato sono accessibili anche in locale tramite peering privato attraverso la VPN o Azure ExpressRoute.

Per usare gli endpoint privati, è necessario configurare un account Batch in modo appropriato al momento della creazione; la configurazione dell'accesso alla rete pubblica deve essere disabilitata. Dopo la creazione, gli endpoint privati possono essere creati e associati all'account Batch. Per altre informazioni, vedere Usare endpoint privati con gli account Azure Batch.

Creare gruppi nelle reti virtuali

I nodi di calcolo in un pool di Batch possono comunicare tra loro, ad esempio per eseguire attività a istanze multiple, senza richiedere una rete virtuale. Tuttavia, per impostazione predefinita, i nodi in un pool non possono comunicare con macchine virtuali esterne al pool in una rete virtuale che hanno indirizzi IP privati, ad esempio server licenze o file server.

Per consentire ai nodi di calcolo di comunicare in modo sicuro con altre macchine virtuali o con una rete locale, è possibile configurare un pool in modo che si trovi in una subnet di una rete virtuale di Azure.

Quando i pool hanno endpoint IP pubblici, la subnet deve consentire la comunicazione in ingresso dal servizio Batch per poter pianificare le attività ed eseguire altre operazioni sui nodi di calcolo e la comunicazione in uscita per comunicare con Archiviazione di Azure o altre risorse in base alle esigenze del carico di lavoro. Per i pool nella configurazione della macchina virtuale, Batch aggiunge gruppi di sicurezza di rete (NSG) a livello di interfaccia di rete collegato ai nodi di calcolo. Questi gruppi di sicurezza di rete hanno regole per consentire quanto segue:

  • Traffico TCP in ingresso da indirizzi IP del servizio Batch
  • Traffico TCP in ingresso per l'accesso remoto
  • Traffico in uscita su qualsiasi porta verso la rete virtuale (può essere modificato in base alle regole del gruppo di sicurezza di rete a livello di subnet)
  • Traffico in uscita su qualsiasi porta verso Internet (può essere modificato in base alle regole del gruppo di sicurezza di rete a livello di subnet)

Non è necessario specificare gruppi di sicurezza di rete a livello di subnet della rete virtuale, perché Batch configura i propri gruppi di sicurezza di rete. Se si dispone di un gruppo di sicurezza di rete associato alla subnet in cui vengono distribuiti i nodi di calcolo batch o se si desidera applicare regole del gruppo di sicurezza di rete personalizzate per eseguire l'override delle impostazioni predefinite applicate, è necessario configurare questo gruppo di sicurezza di rete con almeno le regole di sicurezza in ingresso e in uscita per consentire la comunicazione del servizio Batch ai nodi del pool e la comunicazione dei nodi del pool con Archiviazione di Azure.

Per altre informazioni, vedere Creare un pool di Azure Batch in una rete virtuale.

Creare pool con indirizzi IP pubblici statici

Per impostazione predefinita, gli indirizzi IP pubblici associati ai pool sono dinamici; vengono creati quando viene creato un pool e gli indirizzi IP possono essere aggiunti o rimossi quando viene ridimensionato un pool. Quando le applicazioni di attività in esecuzione nei nodi del pool devono accedere a servizi esterni, potrebbe essere necessario limitare l'accesso a tali servizi a indirizzi IP specifici. In questo caso, la presenza di indirizzi IP dinamici non sarà gestibile.

È possibile creare risorse di indirizzi IP pubblici statici nella stessa sottoscrizione dell'account Batch prima della creazione del pool. È quindi possibile specificare questi indirizzi durante la creazione del pool.

Per altre informazioni, vedere Creare un pool di Azure Batch con indirizzi IP pubblici specificati.

Creare pool senza indirizzi IP pubblici

Per impostazione predefinita, a tutti i nodi di calcolo in un pool di configurazione di macchine virtuali di Azure Batch vengono assegnati uno o più indirizzi IP pubblici. Questi endpoint vengono usati dal servizio Batch per pianificare le attività e per la comunicazione con i nodi di calcolo, incluso l'accesso in uscita a Internet.

Per limitare l'accesso a questi nodi e ridurne l'individuabilità da Internet, è possibile effettuare il provisioning del pool senza indirizzi IP pubblici.

Per altre informazioni, vedere Creare un pool senza indirizzi IP pubblici.

Limitare l'accesso remoto ai nodi del pool

Per i pool creati con una versione dell'API precedente a 2024-07-01, Batch per impostazione predefinita consente a un utente del nodo con connettività di rete di connettersi esternamente a un nodo di calcolo in un pool di Batch usando RDP o SSH.

Per limitare l'accesso remoto, creare i pool usando una versione dell'API 2024-07-01 o successiva.

Per limitare l'accesso remoto ai nodi nei pool creati dall'API con versione precedente a 2024-07-01, usare uno dei metodi seguenti:

  • Configurare PoolEndpointConfiguration per negare l'accesso. Il gruppo di sicurezza di rete appropriato verrà associato al pool.
  • Crea il pool senza indirizzi IP pubblici. Per impostazione predefinita, questi pool non possono essere accessibili all'esterno della rete virtuale.
  • Associare un NSG alla VNet per negare l'accesso alle porte RDP o SSH.
  • Non creare utenti nel nodo. Senza alcun utente nodo, l'accesso remoto non sarà possibile.

Crittografa i dati

Crittografare i dati in transito

Tutte le comunicazioni con l'endpoint dell'account Batch (o tramite Azure Resource Manager) devono usare HTTPS. È necessario usare https:// negli URL dell'account Batch specificati nelle API quando ci si connette al servizio Batch.

I client che comunicano con il servizio Batch devono essere configurati per l'uso di Transport Layer Security (TLS) 1.2.

Cifrare i dati batch a riposo

Alcune delle informazioni specificate nelle API batch, ad esempio i certificati dell'account, i metadati di processi e attività e le righe di comando delle attività, vengono crittografate automaticamente quando vengono archiviate dal servizio Batch. Per impostazione predefinita, questi dati vengono crittografati usando chiavi gestite dalla piattaforma Azure Batch univoche per ogni account Batch.

È anche possibile crittografare questi dati usando chiavi gestite dal cliente. Azure Key Vault viene usato per generare e archiviare la chiave, con l'identificatore di chiave registrato nel tuo account Batch.

Crittografare i dischi dei nodi di calcolo

Per impostazione predefinita, i nodi di calcolo batch hanno due dischi: un disco del sistema operativo e l'unità SSD temporanea locale. I file e le directory gestiti da Batch si trovano nell'unità SSD temporanea, ovvero il percorso predefinito per i file, ad esempio i file di output delle attività. Le applicazioni di attività batch possono usare il percorso predefinito nell'unità SSD o nel disco del sistema operativo.

Per una maggiore sicurezza, crittografare questi dischi usando una delle funzionalità di crittografia dischi di Azure seguenti:

Important

Crittografia dischi di Azure per le pool di Batch verrà ritirata il 15 settembre 2028. Migra le configurazioni che possono utilizzare Crittografia dischi di Azure per la crittografia del disco temporaneo alla crittografia a livello di host prima della data di ritiro. Per i passaggi di valutazione e migrazione dell'impatto, consulta Crittografia dischi di Azure retirement.

Accedere in modo sicuro ai servizi dai nodi di calcolo

Usare Identità gestite del pool con le autorizzazioni di accesso appropriate configurate per l'identità gestita assegnata dall'utente per accedere ai servizi di Azure che supportano l'identità gestita, incluso Azure Key Vault. Se è necessario effettuare il provisioning dei certificati nei nodi batch, usare l'estensione di vm di Azure Key Vault disponibile con l'identità gestita del pool per installare e gestire i certificati nel pool di Batch. Per altre informazioni sulla distribuzione di certificati da Azure Key Vault con identità gestita nei pool di Batch, vedere Abilitare la rotazione automatica dei certificati in un pool di Batch.

Governance e conformità

Conformità

Per aiutare i clienti a soddisfare i propri obblighi di conformità in settori e mercati regolamentati in tutto il mondo, Azure gestisce un ampio portfolio di offerte di conformità.

Queste offerte si basano su vari tipi di garanzie, tra cui certificazioni formali, attestazioni, convalide, autorizzazioni e valutazioni prodotte da società di controllo indipendenti di terze parti, nonché modifiche contrattuali, autovalutazioni e documenti guida per i clienti prodotti da Microsoft. Esaminare la panoramica completa delle offerte di conformità per determinare quali possono essere rilevanti per le soluzioni Batch.

Criteri di Azure

Criteri di Azure consente di applicare gli standard organizzativi e di valutare la conformità su vasta scala. I casi d'uso comuni per Criteri di Azure includono l'implementazione della governance per la coerenza delle risorse, la conformità alle normative, la sicurezza, i costi e la gestione.

A seconda della modalità di allocazione del pool e delle risorse a cui applicare un criterio, usare Criteri di Azure con Batch in uno dei modi seguenti:

  • Direttamente, usando la risorsa Microsoft.Batch/batchAccounts. È possibile usare un subset delle proprietà per un account Batch. Ad esempio, la tua policy può includere aree di account Batch valide, modalità di allocazione pool consentite e se una rete pubblica è abilitata per gli account.
  • Indirettamente, usando la risorsa Microsoft.Compute/virtualMachineScaleSets. Gli account Batch con la modalità di allocazione del pool nella sottoscrizione utente possono avere criteri impostati sulle risorse del set di scalabilità di macchine virtuali create nella sottoscrizione dell'account Batch. Ad esempio, consentire determinate dimensioni di VM e assicurarsi che determinate estensioni vengano eseguite in ogni nodo del pool.

Passaggi successivi