Sicurezza delle funzioni serverless
Questo articolo descrive i servizi e le attività di Azure che il personale addetto alla sicurezza può implementare per funzioni serverless. Queste linee guida e risorse consentono di sviluppare codice sicuro e distribuire applicazioni sicure nel cloud.
Pianificazione
Gli obiettivi principali di un ambiente applicazioni serverless sicuro Funzioni di Azure sono proteggere le applicazioni in esecuzione, identificare e risolvere rapidamente i problemi di sicurezza e prevenire problemi simili futuri.
La top 10 serverless OWASP descrive le vulnerabilità di sicurezza delle applicazioni serverless più comuni e fornisce tecniche di base per identificare e proteggersi da tali vulnerabilità.
In molti casi, la pianificazione di sviluppo, distribuzione e funzionamento sicuri delle funzioni serverless è molto simile a quella di qualsiasi applicazione ospitata sul Web o nel cloud. Servizio app di Azure rende disponibile l'infrastruttura di hosting per le app per le funzioni. L'articolo Protezione Funzioni di Azure fornisce strategie di sicurezza per l'esecuzione del codice della funzione e come servizio app può aiutare a proteggere le funzioni.
Per altre informazioni su sicurezza, procedure consigliate e responsabilità condivise di Azure, vedere:
- Sicurezza in Servizio app di Azure
- Controlli di sicurezza predefiniti
- Procedure consigliate per lo sviluppo sicuro in Azure.
- Procedure consigliate per la sicurezza per le soluzioni di Azure (report PDF)
- Responsabilità condivise per il cloud computing
Distribuzione
Per preparare le applicazioni di Funzioni serverless per la produzione, il personale di sicurezza deve:
- Eseguire revisioni regolari del codice per identificare le vulnerabilità del codice e della libreria.
- Definire le autorizzazioni per le risorse necessarie per l'esecuzione di Funzioni.
- Configurare le regole di sicurezza di rete per le comunicazioni in ingresso e in uscita.
- Identificare e classificare l'accesso ai dati sensibili.
L'articolo Baseline di sicurezza di Azure per Funzioni di Azure contiene altre raccomandazioni che consentiranno di migliorare il comportamento di sicurezza della distribuzione.
Mantenere il codice sicuro
Individuare vulnerabilità ed errori di sicurezza nel codice e gestire le vulnerabilità di sicurezza nei progetti e nelle dipendenze.
Per altre informazioni, vedi:
- GitHub - Ricerca di vulnerabilità ed errori di sicurezza nel codice
- GitHub - Gestione delle vulnerabilità di sicurezza nel progetto
Eseguire la convalida dell'input
Origini eventi diverse, ad esempio l'archiviazione BLOB, i database NoSQL di Azure Cosmos DB, gli hub eventi, le code o gli eventi graph possono attivare funzioni serverless. Gli inserimenti non sono strettamente limitati agli input provenienti direttamente dalle chiamate API. Le funzioni possono utilizzare altri input dalle possibili origini evento.
In generale, non considerare attendibile l'input o fare ipotesi sulla sua validità. Usare sempre API sicure che sanificano o convalidano l'input. Se possibile, usare api che associano o parametrizzano variabili, ad esempio usando istruzioni preparate per le query SQL.
Per altre informazioni, vedi:
- Funzioni di Azure convalida dell'input con FluentValidation
- Frame di sicurezza: mitigazioni della convalida dell'input
- Convalida della richiesta di funzione trigger HTTP
- Come convalidare la richiesta di Funzioni di Azure
Proteggere gli endpoint HTTP per sviluppo, test e produzione
Funzioni di Azure consente di usare le chiavi per rendere più difficile l'accesso agli endpoint di funzione HTTP. Per proteggere completamente gli endpoint di funzione nell'ambiente di produzione, è consigliabile implementare una delle opzioni di sicurezza a livello di app per le funzioni seguenti:
- Attivare servizio app l'autenticazione e l'autorizzazione per l'app Per le funzioni. Vedere Chiavi di autorizzazione.
- Usare Gestione API di Azure (APIM) per autenticare le richieste. Vedere Importare un'app per le funzioni di Azure come API in Azure Gestione API.
- Distribuire l'app per le funzioni in un ambiente del servizio app Azure (A edizione Standard).
- Usare un piano di servizio app che limita l'accesso e implementare Frontdoor di Azure + WAF per gestire le richieste in ingresso. Vedere Creare una frontdoor per un'applicazione Web globale a disponibilità elevata.
Per altre informazioni, vedere Proteggere un endpoint HTTP nell'ambiente di produzione.
Configurare il controllo degli accessi in base al ruolo di Azure
Il controllo degli accessi in base al ruolo di Azure include diversi ruoli predefiniti di Azure che è possibile assegnare a utenti, gruppi, entità servizio e identità gestite per controllare l'accesso alle risorse di Azure. Se i ruoli predefiniti non soddisfano le esigenze dell'organizzazione, è possibile creare ruoli personalizzati di Azure.
Esaminare ogni app per le funzioni prima della distribuzione per identificare autorizzazioni eccessive. Esaminare attentamente le funzioni per applicare le autorizzazioni "privilegi minimi", assegnando a ogni funzione solo ciò che deve essere eseguito correttamente.
Usare il controllo degli accessi in base al ruolo di Azure per assegnare autorizzazioni a utenti, gruppi e applicazioni in un determinato ambito. L'ambito di un'assegnazione di ruolo può essere una sottoscrizione, un gruppo di risorse o una singola risorsa. Evitare di usare caratteri jolly quando possibile.
Per altre informazioni sul controllo degli accessi in base al ruolo di Azure, vedere:
- Che cos'è il controllo degli accessi in base al ruolo di Azure?
- Ruoli predefiniti di Azure
- Ruoli personalizzati di Azure
Usare identità gestite e insiemi di credenziali delle chiavi
Una sfida comune quando si creano applicazioni cloud è come gestire le credenziali per l'autenticazione ai servizi cloud nel codice. Le credenziali non devono mai essere visualizzate nel codice dell'applicazione, nelle workstation per sviluppatori o nel controllo del codice sorgente. Usare invece un insieme di credenziali delle chiavi per archiviare e recuperare chiavi e credenziali. Azure Key Vault consente di archiviare in modo sicuro credenziali, segreti e altre chiavi. Il codice esegue l'autenticazione in Key Vault per recuperare le credenziali.
Per altre informazioni, vedere Usare i riferimenti a Key Vault per servizio app e Funzioni di Azure.
Le identità gestite consentono alle app di Funzioni di accedere a risorse come insiemi di credenziali delle chiavi e account di archiviazione senza richiedere chiavi di accesso o stringa di connessione specifiche. Un audit trail completo nei log visualizza le identità che eseguono le richieste alle risorse. Usare il controllo degli accessi in base al ruolo di Azure e le identità gestite per controllare in modo granulare le risorse a cui possono accedere le risorse Funzioni di Azure applicazioni.
Per altre informazioni, vedi:
- Informazioni sulle identità gestite per le risorse di Azure
- Come usare le identità gestite nel servizio app e in Funzioni di Azure
Usare token di firma di accesso condiviso (SAS) per limitare l'accesso alle risorse
Una firma di accesso condiviso (SAS) fornisce accesso delegato sicuro alle risorse nell'account di archiviazione, senza compromettere la sicurezza dei dati. Con una firma di accesso condiviso è possibile controllare in modo granulare il modo in cui un client può accedere ai dati. È possibile controllare le risorse a cui il client può accedere, quali autorizzazioni hanno su tali risorse e per quanto tempo la firma di accesso condiviso è valida, tra gli altri parametri.
Per altre informazioni, vedere Concedere l'accesso limitato alle risorse Archiviazione di Azure usando firme di accesso condiviso.For more information, see Grant limited access to Archiviazione di Azure resources using shared access signatures (SAS).
Archiviazione BLOB sicura
Identificare e classificare i dati sensibili e ridurre al minimo l'archiviazione dei dati sensibili solo a ciò che è necessario. Per l'archiviazione dei dati sensibili, aggiungere l'autenticazione a più fattori e la crittografia dei dati in transito e inattivi. Concedere l'accesso limitato alle risorse Archiviazione di Azure usando i token di firma di accesso condiviso.
Per altre informazioni, vedere Raccomandazioni sulla sicurezza per Archiviazione BLOB.
Ottimizzazione
Una volta che un'applicazione è in produzione, il personale di sicurezza può aiutare a ottimizzare il flusso di lavoro e prepararsi per il ridimensionamento.
Usare Microsoft Defender per il cloud e applicare raccomandazioni sulla sicurezza
Microsoft Defender per il cloud è una soluzione di analisi della sicurezza per l'applicazione che identifica potenziali vulnerabilità di sicurezza e crea raccomandazioni. Le raccomandazioni consentono di configurare i controlli necessari per rafforzare e proteggere le risorse.
Per altre informazioni, vedi:
- Proteggere le applicazioni con Microsoft Defender per il cloud
- Defender per il cloud raccomandazioni per le app
Applicare i criteri di governance delle applicazioni
Applicare misure di sicurezza e imposizione centralizzate e coerenti all'applicazione su larga scala. Per altre informazioni, vedere Definizioni dei criteri predefiniti di Criteri di Azure.
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per