Condividi tramite


Raccomandazioni per la protezione dei segreti dell'applicazione

Si applica a questa raccomandazione della checklist di sicurezza ben progettata: Power Platform

SE:07 Proteggi i segreti delle applicazioni rafforzandone l'archiviazione, limitando l'accesso e la manipolazione e controllando tali azioni. Esegui un processo di rotazione affidabile e regolare in grado di improvvisare rotazioni per le emergenze.

Questa guida descrive i consigli per proteggere le informazioni sensibili nei carichi di lavoro. La corretta gestione dei segreti è fondamentale per mantenere la sicurezza e l'integrità dell'applicazione, del carico di lavoro e dei dati associati. La gestione impropria dei segreti può portare a violazioni dei dati, interruzione del servizio, violazioni normative e altri problemi.

Le credenziali, come le chiavi API, i token Open Authorization (OAuth) e le chiavi Secure Shell (SSH), sono segrete. I requisiti di conformità potrebbero far sì che le impostazioni di configurazione che in genere non sono considerate segrete vengano trattate come segreti dell'applicazione.

Definizioni

Termine Definizione
Certificati File digitali che contengono le chiavi pubbliche per la crittografia o la decrittografia.
Credenziali Informazioni utilizzate per verificare l'identità dell'editore o del consumatore in un canale di comunicazione.
Scansione delle credenziali Il processo di convalida del codice sorgente per assicurarsi che i segreti non siano inclusi.
Crittografia Il processo mediante il quale i dati vengono resi illeggibili e bloccati con un codice segreto.
Key Un codice segreto utilizzato per bloccare o sbloccare i dati crittografati.
Accesso con privilegi minimi Un principio Zero Trust che mira a ridurre al minimo una serie di autorizzazioni per completare una funzione di processo.
Identità gestita Identità assegnata alle risorse e gestita da Azure.
Non segreto Informazioni che non mettono a repentaglio la postura di sicurezza del carico di lavoro in caso di perdita.
Rotazione Il processo di aggiornamento regolare dei segreti in modo che, se compromessi, siano disponibili solo per un periodo di tempo limitato.
Segreto Un componente riservato del sistema che facilita la comunicazione tra i componenti del carico di lavoro. Se divulgati, i segreti possono causare una violazione.
X.509 Uno standard che definisce il formato dei certificati con chiave pubblica.

Importante

Non trattare i non segreti come segreti. I segreti richiedono un rigore operativo che non è necessario per quelli non segreti e che potrebbe comportare costi aggiuntivi.

Le impostazioni dell'applicazione che non sono segreti, come gli URL delle API necessarie all'applicazione, devono essere mantenute separate dal codice dell'applicazione o dai segreti dell'applicazione. Per archiviare la configurazione dell'applicazione, valuta la possibilità di utilizzare un connettore personalizzato o variabili di ambiente. Un'altra opzione consiste nell'utilizzare una tabella Dataverse per archiviare i metadati sulla configurazione dell'applicazione. Tuttavia, dovrai trovare un modo per inserire questi dati in un nuovo ambiente, ad esempio trasferendo i dati di configurazione dallo sviluppo al test o alla produzione. A tale scopo puoi utilizzare Flussi di dati.

Strategie di progettazione chiave

Prendi in considerazione le seguenti aree di interesse prima di archiviare e gestire i segreti:

  • I segreti creati devono essere conservati in un archivio sicuro con severi controlli di accesso.
  • La rotazione segreta è un'operazione proattiva, mentre la revoca è reattiva.
  • Solo le identità attendibili dovrebbero avere accesso ai segreti.
  • È consigliabile mantenere un audit trail per ispezionare e convalidare l'accesso ai segreti.

Crea una strategia attorno a questi punti per prevenire il furto di identità, evitare il ripudio e ridurre al minimo l'esposizione non necessaria alle informazioni.

Procedure sicure per la gestione dei segreti

È consigliabile che le chiavi abbiano tre ruoli distinti: utente, amministratore e revisore. La distinzione dei ruoli aiuta a garantire che solo le identità attendibili abbiano accesso ai segreti con il livello di autorizzazione appropriato. Istruisci sviluppatori, amministratori e altro personale interessato sull'importanza della gestione dei segreti e delle procedure consigliate per la sicurezza.

Chiavi precondivise

Puoi controllare l'accesso creando chiavi distinte per ciascun consumatore. Ad esempio, un client, come un'app o un flusso, comunica con un'API di terze parti utilizzando una chiave già condivisa. Se un altro client deve accedere alla stessa API, deve utilizzare un'altra chiave. Non condividere le chiavi anche se due consumatori hanno gli stessi modelli o ruoli di accesso. Gli ambiti del consumatore potrebbero cambiare nel tempo e non è possibile aggiornare in modo indipendente le autorizzazioni o distinguere i modelli di utilizzo dopo la condivisione di una chiave. L'accesso distinto semplifica inoltre la revoca. Se la chiave di un consumatore è compromessa, è più semplice revocarla o ruotarla senza influenzare gli altri consumatori.

Queste indicazioni si applicano a diversi ambienti. La stessa chiave non deve essere utilizzata sia per gli ambienti di preproduzione che per quelli di produzione. Se sei responsabile della creazione di chiavi precondivise, assicurati di creare più chiavi per supportare più client.

Per ulteriori informazioni, vedi Raccomandazioni per la gestione di identità e accesso.

Archiviazione dei segreti

Utilizzare un sistema di gestione dei segreti, come Azure Key Vault, per archiviare i segreti in un ambiente rafforzato, crittografare i dati inattivi e in transito e verificare l'accesso e le modifiche ai segreti. Se è necessario archiviare i segreti dell'applicazione, mantenerli all'esterno del codice sorgente per facilitarne la rotazione.

Un sistema di gestione dei segreti dedicato semplifica l'archiviazione, la distribuzione e il controllo dell'accesso ai segreti dell'applicazione. Solo le identità e i servizi autorizzati dovrebbero avere accesso agli archivi dei segreti. L'accesso al sistema può essere limitato tramite autorizzazioni. Applica sempre l'approccio con privilegi minimi quando si assegnano le autorizzazioni.

Devi inoltre controllare l'accesso a livello di segreto. Ogni segreto deve avere accesso solo a un singolo ambito di risorsa. Crea limiti di isolamento in modo che un componente possa utilizzare solo i segreti di cui ha bisogno. Se un componente isolato viene compromesso, non può ottenere il controllo di altri segreti e potenzialmente dell'intero carico di lavoro. Un modo per isolare i segreti consiste nell'usare più insiemi di credenziali delle chiavi. Non sono previsti costi aggiuntivi per la creazione di insiemi di credenziali delle chiavi aggiuntivi.

Implementa il controllo e il monitoraggio per l'accesso ai segreti. Registra chi accede ai segreti e quando identificare attività non autorizzate o sospette. Per informazioni sulla registrazione dal punto di vista della sicurezza, consulta Raccomandazioni per il monitoraggio e il rilevamento delle minacce.

Rotazione dei segreti

Metti in atto un processo che mantenga l'igiene dei segreti. La longevità di un segreto influenza la gestione di tale segreto. Per ridurre i vettori di attacco, i segreti dovrebbero essere ritirati e sostituiti con nuovi segreti il ​​più frequentemente possibile.

Gestire i token di accesso con attenzione, tenendo in considerazione la loro durata. OAuth Considera se è necessario adattare la finestra di esposizione a un periodo più breve. I token di aggiornamento devono essere archiviati in modo sicuro con un'esposizione limitata all'applicazione. Anche i certificati rinnovati dovrebbero utilizzare una nuova chiave. Per informazioni sui token di aggiornamento, vedere Secure OAuth token di aggiornamento On-Behalf-Of.

Sostituisci i segreti quando raggiungono la fine del loro ciclo di vita, non vengono più utilizzati dal carico di lavoro o se sono stati compromessi. Al contrario, non ritirare i segreti attivi a meno che non si tratti di un'emergenza. Puoi determinare lo stato di un segreto visualizzando i log di accesso. I processi di rotazione dei segreti non dovrebbero influire sull'affidabilità o sulle prestazioni del carico di lavoro. Utilizza strategie che creano ridondanza nei segreti, nei consumatori e nei metodi di accesso per una rotazione fluida.

Pratiche sicure per l'utilizzo dei segreti

In qualità di generatore o operatore di segreti, dovresti essere in grado di distribuire segreti in modo sicuro. Molte organizzazioni utilizzano strumenti per condividere in modo sicuro i segreti sia all'interno dell'organizzazione che esternamente ai partner. In assenza di uno strumento, implementa un processo per trasferire correttamente le credenziali ai destinatari autorizzati. I piani di ripristino di emergenza dovrebbero includere procedure di ripristino dei segreti. Implementa un processo per le situazioni in cui una chiave è compromessa o trapelata e deve essere rigenerata su richiesta. Considera le seguenti procedure consigliate per la sicurezza quando utilizzi i segreti:

Impedire la codifica

Non codificare i segreti come testo statico in artefatti di codice quali flussi cloud e app canvas, file di configurazione e pipeline di compilazione e distribuzione. Questa pratica ad alto rischio rende il codice vulnerabile perché i segreti sono esposti a chiunque abbia accesso in lettura.

Utilizza strumenti che rilevano periodicamente i segreti esposti nel codice dell'applicazione e creano artefatti. Puoi aggiungere questi strumenti come parte delle pipeline di distribuzione per eseguire la scansione delle credenziali prima del commit della distribuzione del codice sorgente. Esamina e bonifica regolarmente i registri delle applicazioni per garantire che nessun segreto venga inavvertitamente registrato. Puoi anche rafforzare il rilevamento tramite revisioni paritarie.

Nota

Se gli strumenti di scansione individuano un segreto, tale segreto deve essere considerato compromesso. Dovrebbe essere revocato.

Rispondere alla rotazione dei segreti

In qualità di proprietario del carico di lavoro, devi comprendere il piano e i criteri di rotazione dei segreti in modo da poter incorporare nuovi segreti con una minima interruzione per gli utenti. Quando un segreto viene ruotato, potrebbe verificarsi in intervallo di tempo in cui il segreto precedente non è valido, ma il nuovo segreto non è stato inserito. Durante tale periodo, il componente che il carico di lavoro sta tentando di raggiungere non riconosce le richieste. Puoi ridurre al minimo questi problemi creando una logica di ripetizione nel codice. Puoi inoltre utilizzare modelli di accesso simultaneo che consentono di avere più credenziali che possono essere modificate in modo sicuro senza influenzarsi a vicenda.

Collabora con il team operativo e partecipa al processo di gestione delle modifiche. È consigliabile informare i proprietari delle credenziali quando rimuovi una parte del carico di lavoro che utilizza credenziali non più necessarie.

Integra il recupero e la configurazione dei segreti nella pipeline di distribuzione automatizzata. Il recupero dei segreti aiuta a garantire che i segreti vengano recuperati automaticamente durante la distribuzione. Puoi inoltre utilizzare modelli di iniezione dei segreti per inserire segreti nel codice dell'applicazione o nella configurazione in fase di runtime, evitando così che i segreti vengano esposti accidentalmente ai log o al controllo della versione.

Facilitazione di Power Platform

Le sezioni seguenti descrivono le caratteristiche e le funzionalità di Power Platform che puoi utilizzare per gestire i segreti dell'applicazione.

Utilizzare i segreti di Azure Key Vault

Le variabili di ambiente consentono di fare riferimento ai segreti archiviati in Azure Key Vault. Questi segreti vengono quindi resi disponibili per l'uso nei flussi di Power Automate, ad esempio i connettori personalizzati. Tieni presente che i segreti non sono disponibili per l'uso in altre personalizzazioni o in generale tramite l'API.

I segreti effettivi vengono archiviati in Azure Key Vault e la variabile di ambiente fa riferimento alla posizione del segreto nel Key Vault. L'uso dei segreti di Azure Key Vault con le variabili di ambiente richiede la configurazione di Azure Key Vault in modo che Power Platform possa leggere i segreti specifici a cui si desidera fare riferimento. Per ulteriori informazioni, consulta Utilizzare le variabili di ambiente nelle soluzioni e Utilizzare le variabili di ambiente nei connettori personalizzati della soluzione.

Utilizzare Verifica soluzione

Con la funzionalità verifica soluzione, è possibile eseguire un controllo di analisi statica completo delle soluzioni rispetto a un set di regole di procedure consigliate e individuare rapidamente gli schemi problematici. Dopo il completamento della verifica, riceverai un report dettagliato che elenca i problemi identificati, i componenti e il codice interessati nonché collegamenti alla documentazione che descrive il modo in cui risolvere ogni problema. Esamina le regole di Verifica soluzione disponibili nella categoria Sicurezza. Per altre informazioni, vedi Utilizzare la verifica della soluzione per convalidare le soluzioni.

Utilizzare le azioni CyberArk

CyberArk offre una piattaforma di sicurezza delle identità che fornisce una protezione end-to-end di identità umane e di macchine. I flussi desktop di Power Automate consentono di recuperare le credenziali da CyberArk. Per altre informazioni, consulta Azioni CyberArk.

Elenco di controllo della sicurezza

Fai riferimento alla serie completa di elementi consigliati.