Proteggi il tuo archiviazione code di Azure

archiviazione code di Azure fornisce l'accodamento dei messaggi tra i componenti dell'applicazione. Poiché i messaggi spesso portano riferimenti a risorse sensibili - identificatori di oggetti, URL di callback e stato dell'applicazione - devi proteggere sia l'autorizzazione della coda sia la gestione dei contenuti dei messaggi.

Annotazioni

Questo articolo tratta pratiche di sicurezza specifiche di archiviazione code di Azure. Per indicazioni sulla sicurezza a livello di account, consulta Proteggere il tuo account Archiviazione di Azure.

Gestione delle identità e dell'accesso

  • Usa Microsoft Entra ID con identità gestite per produttori di code e consumatori: assegna i ruoli integrati Storage Queue Data Messenger, Storage Queue Data Processor e Storage Queue Data Reader all'identità gestita di ciascun servizio che interagisce con la coda. Scegli il ruolo che si adatta all'operazione. Un servizio di invio di messaggi non dovrebbe detenere i diritti di elaborazione. Per ulteriori informazioni, vedere Autorizzare l'accesso alle code utilizzando Microsoft Entra ID.

  • Ambito delle assegnazioni di ruolo del controllo degli accessi basato sui ruoli (RBAC) per la coda specifica: l'ambito a livello di coda è supportato per i ruoli dati integrati della coda. Assegnare al livello della coda anziché a livello dell'account di archiviazione quando un servizio deve accedere a una sola coda in un account con più code.

  • Limitare i token SAS a una singola coda e a operazioni specifiche sui messaggi: La firma di accesso condiviso (SAS) della coda supporta separatamente le autorizzazioni add, update, process e read. Concedi solo ciò di cui il chiamante ha bisogno. Un ricevitore webhook che accoda gli eventi deve ottenere solo add, non process. Per ulteriori informazioni, vedi Delegating Access with a Shared Access Signature (Delega dell'accesso con una firma di accesso condiviso).

Protezione dei dati

I messaggi sono protetti a riposo e in transito dalle impostazioni di crittografia e TLS dell'account, ma non sono controllati individualmente oltre l'autorizzazione a livello di coda. Progetta il contenuto dei messaggi per evitare di concentrare dati sensibili nella coda.

  • Non inserire segreti o credenziali nei messaggi della coda: Memorizza i segreti in Azure Key Vault e inserisci un riferimento (identificatore segreto) nel messaggio. Gli utenti recuperano il segreto in fase di elaborazione usando la propria identità. Qualsiasi cosa inserita in un messaggio è visibile a ogni principale presente process o read presente nella coda ed è scritta nei log di archiviazione.

  • Cifrare i payload di messaggi contenenti dati sensibili a livello applicativo: per i messaggi che devono trasportare dati sensibili, cifrare il payload con una chiave di Key Vault prima di accodarlo. Questo aggiunge un livello indipendente dalla crittografia lato storage e limita l'esposizione se un consumatore viene compromesso. Per maggiori informazioni, vedi Crittografia lato client per Archiviazione di Azure.

  • Impostare un time-to-live (TTL) ragionevole del messaggio: i messaggi persistono finché non vengono elaborati, scadono o la coda viene scaricata. Un TTL lungo aumenta la finestra durante la quale i dati sensibili obsoleti sono recuperabili. Abbina TTL alla latenza di elaborazione attesa più un margine di sicurezza.

Registrazione e monitoraggio

  • Abilita le impostazioni diagnostiche per le operazioni in coda: invia StorageRead, StorageWrite, e StorageDelete categorie a Log Analytics in modo che le singole operazioni della coda siano verificabili. Monitorare il metodo di autorizzazione (Entra ID, chiave condivisa, SAS, anonima) per rilevare un uso improprio. Per ulteriori informazioni, consulta Monitoring archiviazione code di Azure.

  • Sposta i messaggi non elaborativi in una coda non elaborativa dedicata: configura il consumatore per rilevare i messaggi che superano la soglia di conteggio di rimozione coda e spostali in una coda <queue-name>-poison per un'indagine offline. L'accumulo nella coda non elaborabile è un indicatore di sicurezza, non soltanto operativo. Per maggiori informazioni, vedere Gestire i messaggi non elaborabili nelle funzioni attivate dalla coda.

  • Avviso sulla crescita della coda di veleno: Configura gli avvisi di Monitoraggio di Azure sul conteggio dei messaggi in ogni coda di veleni in modo che una crescita inaspettata innescasca l'indagine.

  • Avviso in caso di schemi anomali di rimozione dalla coda ed eliminazione: picchi di operazioni DeleteMessage da identità impreviste, oppure volumi elevati di attività di sola rimozione dalla coda senza alcuna elaborazione successiva possono indicare che un utente malintenzionato sta svuotando una coda per nascondere attività. Avvisa in caso di scostamenti dal normale profilo di traffico della coda.

Passaggi successivi