Security Essentials

GUIDA ALLE OPERAZIONI DI BASE

Introduzione

Proteggere il tuo account e le risorse cloud può essere un compito arduo. Le pratiche di sicurezza devono essere costantemente rivalutate e modificate man mano che i malintenzionati continuano a far evolvere le loro tecniche. Questa guida fornisce le attività essenziali che puoi eseguire sin dal primo giorno del tuo percorso verso il cloud. Le seguenti pratiche sono considerate essenziali per il livello di sicurezza di un'organizzazione, ma non sono affatto definitive né una garanzia di protezione. Applica queste pratiche come parte della tua costante due diligence sulla sicurezza del cloud. Per ognuna delle seguenti aree, forniamo collegamenti aggiuntivi da cui è possibile approfondire ogni argomento.

  • Cosa si intende per sicurezza del cloud? Proprio come la sicurezza tradizionale che trovi nelle reti locali, la sicurezza del cloud implica la pratica di creare un'infrastruttura sicura, ad alte prestazioni, resiliente ed efficiente per le tue applicazioni. La sicurezza del cloud implica l'implementazione di controlli progettati per prevenire l'accesso non autorizzato e di controlli per rilevare, rispondere e porre rimedio in caso di necessità. La sicurezza del cloud può comportare una combinazione di sicurezza della rete e dell'infrastruttura, sicurezza degli host e degli endpoint, protezione e crittografia dei dati, gestione delle identità, sicurezza delle applicazioni e registrazione, monitoraggio e rilevamento delle minacce. La sicurezza del cloud non è una cosa sola, ma piuttosto una pratica che utilizza strumenti e tecniche per proteggere i dati, le risorse e i processi di un'organizzazione.

  • Sicurezza e conformità sono una responsabilità condivisa tra AWS e il cliente. Seguendo questo modello condiviso, i clienti possono ridurre il carico operativo poiché AWS si assume la responsabilità del funzionamento, della gestione e del controllo dei componenti "del cloud". Ciò consente ai clienti di concentrarsi sulla creazione delle proprie applicazioni e sull'implementazione dei propri servizi, assumendosi al contempo la responsabilità di proteggere tali servizi "nel cloud". Scopri di più sul modello di responsabilità condivisa.

  • Quando crei un nuovo account AWS per la prima volta, ci sono una serie di passaggi consigliati da seguire per gestirlo e accedervi in modo sicuro.

    Utente root

    Quando crei un account AWS, inizi con quello che è noto come utente root. Questo è il primo utente AWS che esiste all'interno del tuo account AWS. AWS consiglia di non utilizzare questo account per le operazioni quotidiane in quanto ha pieno accesso e controllo dell'account e dovrebbe seguire le best practice consigliate per proteggere tale utente root. Ciò comporta il blocco delle chiavi di accesso dell'utente root, l'uso di una password complessa, l'abilitazione dell'autenticazione a più fattori AWS e la creazione di un utente IAM per accedere al tuo account. A questo account possono essere assegnati i privilegi di amministratore e potrà essere utilizzato per tutte le attività amministrative future.

    Contatti di sicurezza

    Successivamente, dovresti assegnare dei contatti di sicurezza alternativi al tuo account. Il contatto di sicurezza alternativo riceverà notifiche relative alla sicurezza, incluse le notifiche dal team AWS Trust & Safety. Puoi saperne di più sull'importanza di impostare queste informazioni di contatto all'inizio della configurazione dell'account nel post del blog Aggiornamento del contatto di sicurezza alternativo negli account AWS per notifiche di sicurezza tempestive.

    Controllo regionale

    Dopo aver confermato i tuoi contatti di sicurezza, dovresti considerare le Regioni AWS in cui devono essere eseguiti i carichi di lavoro e quelle in cui non devono essere eseguiti. È quindi possibile bloccare le Regioni inutilizzate per essere certi che nessun carico di lavoro venga eseguito da tali Regioni. Questo aiuta a ottimizzare i costi, ma si presta anche alla sicurezza. In che modo? Bloccando le Regioni in cui non prevedi di eseguire carichi di lavoro, puoi concentrare i tuoi sforzi di monitoraggio sulle Regioni che utilizzi attivamente.

    AWS CLI e accesso alla console

    A questo punto, hai protetto l'utente root, creato uno o più utenti IAM, assegnato contatti di sicurezza e bloccato le regioni in cui possono essere eseguiti i carichi di lavoro. Successivamente, consideriamo come gli utenti interagiranno con le risorse AWS. Esistono due metodi principali di interazione: l'interfaccia a riga di comando (AWS CLI) e la Console di gestione AWS. Si consiglia di configurare l'autenticazione unica (SSO) per AWS CLI e la console. Consulta l'articolo Configurazione di AWS CLI per utilizzare il Centro identità AWS IAM (successore di AWS Single Sign-On) per i dettagli su come gestire centralmente l'accesso con il Centro identità AWS IAM.

    Gruppi IAM

    Il passaggio successivo per proteggere il tuo account consiste nel configurare gruppi di utenti IAM AWS per controllare l'accesso. Anziché controllare l'accesso dei singoli utenti impostando le policy direttamente sull'utente, è preferibile creare un gruppo, assegnargli le autorizzazioni necessarie e quindi assegnare gli utenti al gruppo. Gli utenti erediteranno le autorizzazioni di quel gruppo. Ciò offre un modo più scalabile per fornire il controllo degli accessi a molti utenti. È importante capire come funzionano IAM e i gruppi IAM perché si estendono su più servizi. IAM è un servizio che interagisce in una certa misura con tutti i servizi AWS, quindi assicurati di dedicare del tempo per familiarizzare con IAM.

    Seguire queste pratiche sin dall'inizio ti aiuterà a fornire un accesso sicuro alle tue risorse AWS. Successivamente discuteremo di come proteggere l'infrastruttura che viene creata su AWS.

  • L'infrastruttura che costruisci viene spesso trascurata in quanto fa parte dell'architettura sottostante e non è qualcosa che si rivolge al cliente. Tuttavia, se l'infrastruttura riporta un errore, anche i servizi forniti ai clienti non riescono. Per questo motivo, è fondamentale che l'infrastruttura sia protetta sin dal primo giorno.

    Sicurezza Amazon VPC

    Man mano che costruisci la tua infrastruttura cloud, inizierai creando un Amazon Virtual Private Cloud (Amazon VPC). Questa è una rete virtuale che viene definita (ne viene creata una predefinita in ogni Regione quando crei il tuo account) e consente di avviare risorse. Un VPC assomiglia a una rete tradizionale in quanto ha un intervallo di indirizzi IP CIDR assegnato ed è suddiviso mediante la creazione di sottoreti. Le sottoreti possono essere utilizzate per garantire l'isolamento per diversi set di risorse e possono essere pubbliche o private. Le sottoreti pubbliche hanno un percorso verso un gateway Internet, hanno accesso a Internet tramite questo gateway e possono essere raggiunte da Internet se i relativi controlli di accesso lo consentono. Anche le sottoreti private dispongono di una tabella di routing, ma non dispongono di un percorso verso un gateway Internet, quindi per impostazione predefinita non possono raggiungere Internet e non possono essere raggiunte da Internet. Per consentire alle risorse di una sottorete privata di accedere a Internet, è necessario un gateway NAT. A livello di sottorete, una lista di controllo degli accessi (ACL) di rete consente o nega traffico specifico in entrata o in uscita. Puoi utilizzare l'ACL di rete predefinita per il tuo VPC oppure puoi creare un'ACL di rete personalizzata. Le ACL di rete sono elenchi numerati, elaborati dall'alto verso il basso e sono stateless. Ciò significa che è necessaria una regola ACL di rete in entrata e in uscita per consentire il traffico bidirezionale.

    Gruppi di sicurezza

    Quando implementi le risorse EC2 nel tuo VPC, assocerai ad esse un gruppo di sicurezza. Un gruppo di sicurezza controlla il traffico in entrata e in uscita che può raggiungere le risorse EC2. I gruppi di sicurezza sono simili a un firewall, ma invece di utilizzare solo un elenco o un intervallo di indirizzi IP, possono puntare a qualcosa chiamato riferimento alle risorse. Un riferimento a una risorsa è un gruppo specifico che mantiene un elenco aggiornato di indirizzi IP assegnati a ciascuna risorsa del gruppo. Ad esempio, se crei un gruppo con scalabilità automatica per avviare istanze Amazon EC2, a ciascuna istanza viene assegnato un nuovo IP all'avvio. Aggiungendo un gruppo di sicurezza a queste istanze, puoi concedere l'accesso al gruppo di sicurezza del tuo server di database tramite l'ID del gruppo di sicurezza delle istanze EC2 e qualsiasi nuova istanza EC2 avviata avrà accesso al database senza dover aggiungere il proprio indirizzo IP all'elenco consentito.

    Le regole dei gruppi di sicurezza sono simili alle ACL di rete perché quando le crei, corrispondono per porta, protocollo e indirizzi, ma sono stateful, ovvero puoi considerarle simili a un firewall stateful. Quando si crea una voce per consentire un tipo specifico di traffico, non è necessario creare una regola che corrisponda al traffico di ritorno; essendo stateful, il traffico di ritorno sarà consentito. Per comprendere meglio come interagiscono i gruppi di sicurezza e le ACL, questo confronto è utile.

    Firewall di rete AWS e protezione DDoS

    Per aggiungere un ulteriore livello di sicurezza dell'infrastruttura, puoi implementare il Firewall di rete AWS. Il Firewall di rete è un servizio gestito che implementa la protezione per il tuo Amazon VPC. Fornisce una protezione più precisa dei gruppi di sicurezza in quanto può incorporare il contesto dai flussi di traffico, ad esempio il tracciamento di connessioni e l'identificazione di protocolli, per applicare policy come evitare che il VPC acceda ai domini utilizzando un protocollo non autorizzato. Ciò è possibile attraverso la configurazione delle regole Suricata personalizzate. Ad esempio, puoi configurare il Firewall di rete per proteggerti dagli attacchi di malware. Un ulteriore passo è l'implementazione di un altro servizio gestito, AWS Shield Avanzato, per proteggerti dalle minacce DDoS.

  • Quando crei risorse nel cloud AWS, devi considerare come proteggerle in base alle best practice correnti. Questo è vero se si implementa un'istanza EC2, un database o risorse serverless. In questa sezione, forniremo alcuni passaggi essenziali per proteggere le risorse che vengono create.

    Sicurezza di Amazon EC2

    Quando crei risorse in AWS, devi fare attenzione a seguire le best practice di sicurezza consigliate per il tipo di risorsa con cui stai lavorando. Per le istanze EC2, la sicurezza inizia controllando l'accesso di rete alle istanze, ad esempio configurando il VPC e i gruppi di sicurezza. (Per ulteriori informazioni, consulta "Sicurezza di Amazon VPC" nella sezione "Proteggere l'infrastruttura che costruisci".)

    Un altro aspetto della sicurezza delle istanze è la gestione delle credenziali utilizzate per connettersi alle istanze. Questo inizia con le autorizzazioni utente IAM assegnate, ma si estende al gruppo assegnato. Ciò fornisce un livello di sicurezza per l'utente che lavora con l'istanza EC2, ma non per l'istanza stessa. È inoltre necessario configurare i ruoli IAM associati all'istanza e le autorizzazioni associate a tali ruoli. Per accedere a un'istanza EC2, invece di aprire la porta per SSH o configurare un host bastione/jump, dovresti usare EC2 Instance Connect.

    È necessario assicurarsi che il sistema operativo e il software guest implementati per l'istanza siano aggiornati con eventuali aggiornamenti del sistema operativo e patch di sicurezza. Per maggiori dettagli, visita Sicurezza in Amazon EC2.

    Sicurezza del database

    La protezione del database è un aspetto importante del tuo approccio alla sicurezza. Come indicato nella sezione sulla sicurezza di Amazon VPC, si consiglia di implementare i database in una sottorete privata per impedire l'accesso di parti esterne su Internet. AWS offre 15 database dedicati. Ciascuno è protetto in modo diverso, ma tutti condividono quanto segue.

    Autenticazione

    Per accedere a un database, è necessaria una qualche forma di autenticazione. Ciò può essere la combinazione di un nome utente e di una password, che devono essere ruotati regolarmente. In alternativa, puoi utilizzare Server proxy per Amazon RDS per sfruttare i ruoli IAM che potranno gestire l'accesso al database per tuo conto. Alcuni servizi di database, come Amazon DynamoDB, utilizzano i ruoli IAM per fornire l'accesso, quindi non è necessario gestire personalmente le credenziali.

    Accesso SSH basato sulla console

    SSH è uno dei metodi più comuni per gestire le istanze EC2 e Amazon EC2 Instance Connect consente di utilizzare SSH per connettersi alle istanze EC2 utilizzando chiavi SSH monouso direttamente nella console. I seguenti articoli forniscono una panoramica su come abilitare Amazon EC2 Instance Connect e spiegano il caso d'uso tipico. Puoi anche generare chiavi SSH al momento della creazione dell'istanza EC2, scaricarle in locale e usarle per connetterti all'istanza. Tuttavia, ciò significa che è necessario proteggere tali chiavi, assicurarsi che siano archiviate in un luogo a cui non si perda l'accesso e che sia possibile connettersi all'istanza solo da una macchina che abbia quelle chiavi scaricate. EC2 Instance Connect fornisce lo stesso accesso SSH, in modo sicuro, dalla console, su più macchine, in modo semplice da usare.

    Autorizzazioni minime

    Una best practice consiste nel limitare l'accesso al database solo ai servizi e all'infrastruttura che richiedono l'accesso. Questa operazione può essere eseguita configurando gruppi di sicurezza per le istanze RDS, i database Amazon Neptune o i cluster Amazon Redshift.

    Backup e test dei ripristini

    Il backup dei dati e l'esecuzione di ripristini frequenti per confermare il corretto funzionamento dei backup dovrebbero essere una priorità. Con Backup AWS, puoi configurare e gestire facilmente i backup per servizi AWS specifici, tra cui Amazon RDS, DynamoDB, Neptune e altri.

    Sicurezza serverless

    Per la sicurezza serverless, dovresti conoscere AWS Lambda, Gateway Amazon API, Amazon DynamoDB, Amazon SQS e IAM. Con la sicurezza serverless, AWS si assume una responsabilità maggiore rispetto al modello di responsabilità condivisa, ma c'è ancora una responsabilità del cliente di cui essere consapevoli. In un ambiente serverless, AWS gestisce l'infrastruttura, l'elaborazione, l'ambiente di esecuzione e il linguaggio di runtime. Il cliente è responsabile del codice e delle librerie delle funzioni del cliente, della configurazione delle risorse e della gestione delle identità e degli accessi, come mostrato nell'immagine seguente.
    Nelle sezioni seguenti, forniamo dettagli sulle pratiche di sicurezza che sono responsabilità del cliente. Per maggiori dettagli, consulta Sicurezza in AWS Lambda.
    Librerie e codici delle funzioni del cliente
    AWS Lambda fornisce runtime che eseguono il codice della funzione in un ambiente di esecuzione basato su Amazon Linux. Tuttavia, se con la tua funzione utilizzi librerie aggiuntive, sei responsabile dell'aggiornamento delle librerie. Garantire che le librerie siano aggiornate può aiutarti a mantenere il tuo livello di sicurezza.
    Configurazione delle risorse
    AWS Lambda si integra con diverse risorse AWS come Amazon DynamoDB, Amazon EventBridge e Amazon Simple Notification Service (Amazon SNS). Seguire le pratiche di sicurezza consigliate per ogni servizio che utilizzi come parte della tua funzione contribuirà a rafforzare il tuo livello di sicurezza. La documentazione relativa a ciascun servizio fornisce indicazioni aggiuntive.
    Identity and Access Management
    L'esecuzione di funzioni Lambda può richiedere autorizzazioni e ruoli IAM specifici. Maggiori dettagli sono disponibili nella sezione Autorizzazioni della Guida per gli sviluppatori di AWS Lambda.
    Inventario e configurazione
    La strategia di sicurezza deve includere anche il monitoraggio, la registrazione e la gestione della configurazione. Ad esempio, molte organizzazioni abilitano la contabilità dei propri dispositivi tramite il protocollo TACACS+, RADIUS o i log di Active Directory. Ciò aiuta a garantire la creazione di un audit trail per tutte le attività amministrative. All'interno del cloud AWS, ciò è possibile con AWS CloudTrail. CloudTrail permette la verifica, la sicurezza, il monitoraggio di sicurezza e la risoluzione dei problemi operazionali tracciando l'attività degli utenti e l'utilizzo delle API. Il Repository dell'applicazione serverless AWS, che consente a sviluppatori e aziende di trovare, implementare e pubblicare rapidamente applicazioni serverless nel cloud AWS, è integrato con AWS CloudTrail. Per maggiori dettagli, consulta la Guida per gli sviluppatori del Repository dell'applicazione serverless AWS.
     
    Dovrai comunque fornire protezione dell'infrastruttura e DoS in una certa misura per i tuoi ambienti serverless, cosa che può essere eseguita con AWS Shield e AWS Shield Avanzato. Il monitoraggio e il rilevamento delle minacce sono descritti in maniera più approfondita nella sezione "Monitoraggio dell'ambiente".
  • I clienti archiviano una grande quantità di dati nel cloud AWS. Questi dati contengono informazioni fondamentali per il funzionamento di un'organizzazione. Includono dati dei clienti, proprietà intellettuale, ordini collegati direttamente alle entrate e altro ancora. In questa sezione, condividiamo le informazioni essenziali per configurare i dati archiviati in AWS e i dati trasferiti sulla rete da e verso AWS.

    Sicurezza di Amazon S3

    In AWS, i dati vengono archiviati in Amazon S3, che dispone di diversi controlli per proteggere i dati. L'articolo Le 10 migliori pratiche di sicurezza per proteggere i dati in Amazon S3 descrive le tecniche più importanti. Queste includono il blocco dei bucket S3 pubblici a livello di organizzazione, l'utilizzo delle policy dei bucket per verificare che tutti gli accessi concessi siano limitati e specifici e la crittografia e la protezione dei dati.

    Crittografia dei dati a riposo

    Per la crittografia, Servizio di gestione delle chiavi AWS (AWS KMS) consente di creare e controllare le chiavi utilizzate per crittografare o firmare digitalmente i dati. Se desideri crittografare i tuoi dati su AWS, hai diverse opzioni. La prima consiste nell'utilizzare una crittografia lato server con chiavi di crittografia gestite da Amazon S3 (SSE-S3). Utilizzando questo metodo, la crittografia avviene dopo l'invio dei dati ad AWS tramite chiavi gestite da AWS.

    La seconda opzione consiste nel crittografare i dati una volta che sono in AWS, ma anziché utilizzare chiavi create e gestite da AWS, eseguire la crittografia lato server con chiavi master del cliente (CMK) archiviate in AWS KMS (SSE-KMS).

    La terza opzione per archiviare dati crittografati in AWS consiste nell'utilizzare la crittografia lato client. Con questo approccio, i dati vengono crittografati prima di essere trasferiti in AWS.

    Un esempio di come la crittografia lato client e la crittografia lato server siano vantaggiose per i clienti è riportato nell'immagine seguente.

    Reti private virtuali (VPN)

    Le VPN possono comprendere diverse tecnologie. L'idea alla base di una VPN è che i dati in transito mantengano la loro integrità e possano essere scambiati in modo sicuro tra due parti. AWS offre diverse tecnologie che aiutano a proteggere i dati in transito. Uno di questi è AWS PrivateLink, che fornisce connettività privata crittografata tra VPC, servizi AWS e reti on-premise. Ciò si realizza senza esporre il tuo traffico alla rete Internet pubblica. Anche questa potrebbe essere considerata una rete privata virtuale.

    Tuttavia, nella maggior parte dei casi, una discussione sulla VPN ruota attorno all'uso della crittografia dei dati. A seconda delle circostanze, potrebbe essere necessario fornire la crittografia tra un client e le risorse cloud AWS. Questa situazione richiederebbe VPN Client di AWS. D'altra parte, potresti passare dati tra il tuo data center o filiale e le tue risorse AWS. Ciò è possibile utilizzando i tunnel IPsec tra le tue risorse on-premise e i nostri Amazon VPC o AWS Transit Gateway. Questa connettività sicura è nota come VPN sito-sito.

    Infine, anche la gestione delle risorse cloud tramite la Console di gestione AWS offre dati in transito crittografati. Sebbene normalmente non si faccia riferimento alla connettività con la console come a una VPN, la sessione utilizza la crittografia TLS (Transport Layer Security). Pertanto, mentre si crea l'architettura sicura le configurazioni vengono mantenute riservate. TLS viene utilizzato anche con l'API AWS.

  • Con la protezione di ciascuno degli aspetti di cui sopra, è essenziale monitorare ciò che accade nel proprio ambiente. Ciò aiuterà a identificare le minacce e offrirà la possibilità di mitigarle in modo proattivo.

    Visibilità sui flussi di traffico

    AWS offre diversi servizi gestiti per agevolare il monitoraggio dell'ambiente, insieme a opzioni self-service. Ad esempio, è possibile utilizzare flussi di log VPC per registrare e visualizzare i flussi di traffico di rete oppure usare Amazon CloudWatch per analizzare i log AWS WAF o persino per creare allarmi per le istanze EC2. Puoi saperne di più su Amazon CloudWatch in questo workshop.

    Visibilità sull'attività dell'account

    AWS CloudTrail monitora e registra l'attività degli account nella tua infrastruttura AWS, dandoti il controllo sull'archiviazione, l'analisi e le operazioni di ripristino. Ciò è essenziale per creare un audit trail amministrativo, identificare gli incidenti di sicurezza e risolvere i problemi operativi.

    Rilevamento delle minacce

    Infine, Amazon GuardDuty può essere utilizzato per il rilevamento delle minacce e persino per fare un ulteriore passo avanti facendo sì che i risultati pubblicati avviino azioni di riparazione automatica all'interno dell'ambiente AWS.

    Affrontando ciascuna di queste aree operative, sarai sulla buona strada per stabilire le funzionalità di sicurezza essenziali per il tuo ambiente cloud.

Questa pagina è stata utile?