Sysdig
Learn Cloud Native

Sign up to receive our newsletter

Sicurezza del cloud GCP: panoramica e migliori prassi

Proteggere il cloud è difficile. Per alcuni aspetti, proteggere la Google Cloud Platform, o GCP, è particolarmente impegnativo.

Non è una questione legata a una qualche carenza di GCP. La piattaforma è infatti di lungo corso, robusta e affidabile e gestisce milioni di workload. Piuttosto, si tratta del fatto che, da molti punti di vista, GCP è la piattaforma di cloud pubblico più recente tra i “Big Three” e questo può renderla più difficile da proteggere. Gli strumenti di sicurezza appositamente pensati per GCP esistono ma sono pochi, e anche i consigli sulle migliori prassi da adottare sono scarsi.

GCP è anche tecnicamente diversa da cloud quali Azure e AWS in alcuni aspetti importanti. Per esempio, si appoggia grandemente su Kubernetes, che utilizza come base per il proprio sistema di gestione del cloud ibrido (Anthos) e per un servizio di container gestito (Google Kubernetes Engine).

Tenendo ben presenti queste considerazioni, introduciamo brevemente alcune informazioni sulla sicurezza del cloud di GCP. Parleremo della responsabilità condivisa in Google Cloud, dei controlli di sicurezza nativi che Google offre per i workload sul cloud e delle migliori prassi per la protezione delle applicazioni e dei dati.

Il modello di responsabilità condivisa di GCP

Come tutti i principali cloud pubblici, anche GCP adotta un modello di responsabilità condivisa. Ciò vuol dire che alcune responsabilità ricadono sul cliente mentre altre responsabilità ricadono su Google Cloud. Altre ancora, invece, sono condivise.

Le disposizioni specifiche variano per sevizi cloud e configurazioni, e Google ha pubblicato un documento di 87 pagine nel quale spiega tutti i dettagli per chi desidera conoscerli. Ma, in generale, la responsabilità condivisa su GCP può essere riassunta come segue:

  • Google protegge l’infrastruttura fisica, comprese le reti fisiche, i server e i dispositivi di archiviazione. L’unica eccezione è rappresentata dalle infrastrutture on-premise che i clienti collegano a GCP attraverso un’architettura cloud ibrida.
  • I clienti devono proteggere i workload che distribuiscono su Google Cloud. Si tratta di risorse quali i sistemi operativi che installano su VM cloud, le configurazioni delle reti virtuali che impostano, i container che utilizzano in GKE e tutti i dati che caricano su GCP Cloud Storage.
  • Google condivide le responsabilità di sicurezza con i clienti in caso di servizi gestiti da GCP. Per esempio, se si utilizza GKE, il servizio gestito da Kubernetes di GCP, Google protegge i componenti dell’infrastruttura richiesti per eseguire i cluster, mentre i clienti devono proteggere la maggior parte dei componenti di Kubernetes (ad esempio l’API) e tutte le applicazioni che distribuiscono attraverso GKE.

Sfide per la sicurezza e la conformità di GCP

Come già menzionato, GCP è sicuro tanto quanto gli altri principali cloud pubblici. Tuttavia, vale la pena sottolineare che il modo in cui vengono protetti i workload può rivelarsi piuttosto complesso.

Un ecosistema cloud più piccolo

Una delle principali sfide è posta dal fatto che, come abbiamo affermato in apertura, GCP è un cloud per molti aspetti più recente rispetto ad Azure e AWS. Inoltre, storicamente ha sempre avuto una quota di mercato più ridotta. Entrambe queste circostanze fanno sì che l’ecosistema in generale non abbia provveduto a GCP tanto quanto agli altri cloud. Sebbene molte delle moderne piattaforme di sicurezza cloud native supportino completamente GCP, infatti, altre lavorano solo con AWS e Azure. Inoltre, molti tecnici hanno probabilmente meno esperienza con gli strumenti di sicurezza di GCP quali Identity and Access Management (IAM) rispetto a servizi equivalenti offerti da AWS e Azure.

Investimenti su multicloud e cloud ibrido

Per restare in tema, GCP si concentra su multicloud e cloud ibrido molto più di quanto non facciano AWS e Azure, la cui predominanza sul mercato rende la compatibilità con gli ambienti esterni meno importante (per quanto AWS e Azure offrano entrambi integrazioni ibride e multicloud, ma questo non rientra nel nostro argomento di analisi).

Questa tendenza deriva dal fatto che, ad esempio, GCP è stato il primo cloud pubblico a offrire un sistema ibrido, Anthos, che teoricamente funziona con qualunque tipo di infrastruttura on-premise. Gli equivalenti di Azure e AWS – Azure Stack e AWS Outposts – sono più restrittivi di Anthos in molti aspetti.

In termini di sicurezza, l’affidamento di GCP a sistemi ibridi e multicloud pone una sfida, perché è più probabile che gli utenti GCP integrino i propri workload in ambienti esterni. Questo rende più difficile affidarsi esclusivamente agli strumenti di sicurezza nativi di GCP (che di solito non supportano gli ambienti di terze parti) per la protezione dei workload. Aumenta anche le sfide legate alla protezione dell’infrastruttura di rete e degli API che collegato GCP a risorse esterne.

Queste sfide sono tutte risolvibili, ma è importante riconoscere i requisiti particolari della sicurezza GCP per pianificare la strategia più efficace per Google Cloud.

Migliori prassi per la sicurezza del cloud GCP

In generale, la gestione dei rischi per la sicurezza di Google Cloud avviene utilizzando lo stesso approccio valido per gli altri cloud, ovvero:

  • Utilizzare IAM di GCP: IAM è uno degli strumenti più potenti per la protezione dei workload nel cloud. Si consiglia di sfruttare appieno le sue potenzialità in Google Cloud per applicare il principio dei privilegi minimi nell’ambiente GCP. Inoltre, è necessario controllare le policy IAM con l’intento di rilevare errori di configurazione che potrebbero causare violazioni.
  • Isolare le reti cloud: Utilizzando risorse come GCP Virtual Private Cloud, è possibile isolare workload non correlati all’interno delle rispettive reti private per mitigare il rischio che eventuali problemi di sicurezza si diffondano da un workload all’altro.
  • Usare etichette e tag: GCP consente di organizzare i workload utilizzando etichette e tag. Sebbene la mancanza di etichette o tag non ponga alcun rischio per la sicurezza, le risorse non correttamente organizzate hanno una maggiore probabilità di essere violate perché ci si potrebbe dimenticare della loro esistenza o potrebbero non essere incluse nei controlli.
  • Isolare i dati sensibili: È importante sapere in quale punto del proprio ambiente GCP si trovano i dati sensibili (ad esempio dati che contengono informazioni di identificazione personale). Si consiglia di valutare l’utilizzo di Google Cloud DLP per rilevare la presenza di dati sensibili in luoghi dove potrebbero essere ignorati.
  • Capire la responsabilità dei servizi gestiti: Soprattutto per i servizi gestiti, è facile ingannarsi sul ruolo svolto dal provider del cloud in termini di protezione, soprattutto perché questo argomento è ampiamente sfaccettato e le responsabilità dei fornitori possono variare da un servizio all’altro. È importante assicurarsi di capire gli aspetti specifici di ciascun servizio gestito in uso.

Oltre a queste prassi, potrebbe essere consigliabile adottare misure aggiuntive per affrontare le sfide specifiche per la sicurezza di Google Cloud. È possibile considerare le seguenti strategie:

  • Utilizzare strumenti di monitoraggio e controllo esterni: Anche se GCP offre alcuni strumenti, ad esempio Security Command Center, per la protezione delle risorse cloud, il loro principale limite, come già indicato, sta nel fatto che solitamente funzionano solo per workload eseguiti in GCP. Se si utilizza un ambiente multicloud o ibrido, oppure se semplicemente si desidera ottenere un monitoraggio più profondo, migliori analisi e funzioni di avviso più estese rispetto a quanto offerto dagli strumenti nativi di GCP, bisogna valutare l’ipotesi di utilizzare piattaforme terze in grado di funzionare su cloud multipli e ambienti on-premise.
  • Investire nella sicurezza di Kubernetes: Dal momento che GCP si affida grandemente a Kubernetes come base fondamentale per molti dei suoi servizi, gestire al meglio la sicurezza di Kubernetes è importantissimo per gli utenti di GCP, soprattutto per quelli che utilizzano strumenti basati su Kubernetes quali Anthos. 
  • Capire la differenza tra Kubernetes gestito e non gestito in termini di sicurezza: È importante osservare che, sebbene sia possibile eseguire Kubernetes come servizio gestito su GCP attraverso GKE, è anche possibile configurare autonomamente Kubernetes nella propria infrastruttura. In questo caso, tutte le responsabilità relative alla protezione di Kubernetes ricadono sul cliente. In altre partole, è fondamentale comprendere bene i dettagli delle responsabilità di sicurezza per diversi tipi di modelli di distribuzione di Kubernetes in GCP.

Sicurezza dei container in GCP

Abbiamo analizzato in grande dettaglio il ruolo fondamentale della sicurezza di Kubernetes nella sicurezza di GCP. Ma, nella pratica, come si proteggono Kubernetes e i container attivi su Google Cloud?

Una risposta esaustiva a questa domanda va molto oltre lo scopo di questo articolo, tuttavia ecco alcune delle migliori prassi da seguire:

  • Proteggere le immagini dei container: Google Cloud non scansiona automaticamente le immagini dei container alla ricerca di malware o vulnerabilità. Spetta al cliente farlo prima di distribuire le immagini in GKE o in altri ambienti basati su container ospitati su GCP.
  • Utilizzare i controlli di sicurezza di Kubernetes: I controlli di sicurezza di Kubernetes rappresentano uno strumento potente che consente di essere sempre informati su ciò che accade nei cluster e di rilevare con largo anticipo eventuali abusi. Assicurarsi di attivare questa funzione e di analizzare gli eventi con uno strumento in grado di rilevare i comportamenti sospetti.
  • Controllo dell’ambiente dei container: I controlli di sicurezza di Kubernetes monitorano solo le richieste indirizzate all’API di Kubernetes. Bisogna utilizzare strumenti esterni per controllare la configurazione dello stack del software dei container verificando la presenza di versioni obsolete dei software, configurazioni non sicure per il controllo degli accessi, versioni vulnerabili del runtime, eccetera.
  • Limitare le autorizzazioni dei container: Utilizzando uno strumento come i contesti di protezione di Kubernetes, è possibile isolare i container e limitare il loro accesso ad alcune risorse.

Conclusione

La sicurezza di GCP è un argomento complesso, ma può essere riassunto in alcune nozioni di base piuttosto semplici. Inizia con il rispetto delle migliori prassi per la sicurezza e la conformità, le stesse che verrebbero adottate per qualunque altro ambiente cloud. Successivamente, consiste nell’effettuare controlli di sicurezza in grado di tenere conto delle particolari caratteristiche di GCP, ad esempio il suo essere Kubernetes- centrico e la sua tendenza a essere parte di architetture multicloud o ibride.