Sicurezza dello storage cloud e rischi di esposizione dei dati
Impari come bucket S3, container Azure Blob e bucket GCS configurati in modo errato possano esporre dati e come applicare policy dei bucket e controlli degli accessi.
Sicurezza dello storage cloud e rischi di esposizione dei dati è una lezione Security+ Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Security+ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Security+ Academy include 4 lezioni in totale.
Nozioni di base sul cloud object storage
Il cloud object storage — AWS S3, Azure Blob Storage e Google Cloud Storage (GCS) — archivia i file come oggetti in namespace piatti chiamati bucket o container. A differenza dei file system tradizionali, le autorizzazioni sono controllate tramite policy associate a bucket e oggetti, anziché tramite ACL del file system. L'object storage è ideale per grandi quantità di dati, ma richiede una configurazione accurata delle autorizzazioni, perché un singolo bucket configurato erroneamente può esporre terabyte di dati sensibili a Internet.
Configurazioni errate dei bucket pubblici
La vulnerabilità più comune del cloud storage è un bucket accessibile pubblicamente — un bucket di storage la cui policy di accesso consente l'accesso anonimo in lettura (o in scrittura). Questa configurazione errata ha causato decine di violazioni gravi: Verizon (14 milioni di record dei clienti), FedEx (119.000 passaporti), Capital One (100 milioni di richieste di carte di credito). Gli aggressori utilizzano scanner automatizzati per individuare i bucket pubblici in base a tutti i pattern di denominazione degli account AWS noti, quindi l'individuazione diventa banale una volta presente la configurazione errata.
# Check if S3 bucket is publicly accessible
aws s3api get-bucket-policy --bucket my-bucket
aws s3api get-bucket-acl --bucket my-bucket
# Block all public access (AWS recommended default)
aws s3api put-public-access-block \
--bucket my-bucket \
--public-access-block-configuration \
'BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true'Policy dei bucket e ACL a confronto
Il cloud storage utilizza due tipi di controlli degli accessi che possono entrare in conflitto. Le policy dei bucket sono documenti JSON associati al bucket che definiscono quali principal possono eseguire determinate azioni. Le Access Control List (ACL) sono concessioni di autorizzazioni legacy a livello di singolo oggetto. AWS consiglia di disabilitare le ACL a favore delle policy dei bucket, per garantire coerenza. Quando sono presenti entrambe, prevale la policy più permissiva — ciò significa che un'ACL eccessivamente permissiva può concedere l'accesso pubblico anche se la policy del bucket lo limita.
# S3 bucket policy example — restrict to specific account
{
'Version': '2012-10-17',
'Statement': [{
'Effect': 'Allow',
'Principal': { 'AWS': 'arn:aws:iam::123456789012:root' },
'Action': 's3:GetObject',
'Resource': 'arn:aws:s3:::my-bucket/*'
}]
}
# All other principals implicitly deniedCrittografia dei dati a riposo nell'object storage
I provider di cloud storage offrono la crittografia lato server per gli oggetti archiviati. SSE-S3 (AWS) utilizza automaticamente chiavi gestite da AWS. SSE-KMS utilizza chiavi gestite dal cliente in AWS Key Management Service, offrendo tracce di audit più complete (ogni decrittografia viene registrata in CloudTrail) e il controllo della rotazione delle chiavi. SSE-C utilizza chiavi fornite dal cliente, che le gestisce interamente al di fuori di AWS. Per i dati sensibili, SSE-KMS con chiavi gestite dal cliente offre il massimo livello di controllo e di evidenze di conformità.
# Enforce encryption on S3 bucket (deny unencrypted uploads)
{
'Effect': 'Deny',
'Principal': '*',
'Action': 's3:PutObject',
'Resource': 'arn:aws:s3:::my-secure-bucket/*',
'Condition': {
'StringNotEquals': {
's3:x-amz-server-side-encryption': 'aws:kms'
}
}
}Crittografia in transito
Anche i dati correttamente crittografati a riposo possono essere esposti se vengono trasmessi tramite canali non crittografati. Tutte le API di cloud storage devono essere accessibili esclusivamente tramite HTTPS/TLS. Per S3, le policy dei bucket possono imporre HTTPS negando le richieste con aws:SecureTransport: false. Gli URL prefirmati — URL autenticati temporanei che concedono l'accesso agli oggetti per un periodo limitato — devono sempre utilizzare HTTPS e avere tempi di scadenza brevi, per ridurre al minimo la finestra di esposizione in caso di intercettazione.
# S3 bucket policy — deny HTTP (require HTTPS)
{
'Effect': 'Deny',
'Principal': '*',
'Action': 's3:*',
'Resource': ['arn:aws:s3:::my-bucket', 'arn:aws:s3:::my-bucket/*'],
'Condition': {
'Bool': { 'aws:SecureTransport': 'false' }
}
}Classificazione dei dati e livelli di storage
Non tutti i dati richiedono lo stesso livello di protezione. I dati sensibili (PII, PHI, documenti finanziari) devono essere archiviati in bucket crittografati e con accesso limitato, con il logging di audit abilitato. I dati meno sensibili possono avere un accesso più ampio. Le etichette di classificazione dei dati devono essere applicate alla creazione dell'oggetto e utilizzate per instradare automaticamente i dati verso uno storage configurato in modo appropriato. Le policy che spostano automaticamente i dati verso uno storage più sicuro in base ai tag di classificazione riducono il rischio che dati sensibili finiscano in bucket con scarsa sicurezza.
Logging e monitoraggio degli accessi al cloud storage
Il logging degli accessi è fondamentale per rilevare accessi non autorizzati a posteriori e per gli audit di conformità. I log degli accessi ad AWS S3 e il logging degli eventi dati di CloudTrail registrano ogni chiamata API a livello di oggetto — chi ha richiesto un oggetto, da quale IP e a che ora. Il logging diagnostico di Azure Blob e gli audit log di GCS offrono funzionalità analoghe. Senza questi log, quando viene scoperta una violazione dei dati non esistono prove forensi, rendendo impossibile determinare l'entità dell'esposizione.
# Enable S3 access logging
aws s3api put-bucket-logging \
--bucket my-bucket \
--bucket-logging-status '{
"LoggingEnabled": {
"TargetBucket": "my-access-logs-bucket",
"TargetPrefix": "my-bucket-logs/"
}
}'Rischi degli accessi tra account
Il cloud storage viene spesso condiviso tra account (sviluppo, staging, produzione, partner di terze parti). Un accesso tra account configurato senza la dovuta attenzione può concedere autorizzazioni eccessive. Le buone pratiche includono: utilizzare ID account espliciti nelle policy dei bucket anziché principal jolly, utilizzare gli AWS Organizations SCP per limitare gli account esterni ai quali può essere concesso l'accesso, verificare regolarmente le concessioni tra account e preferire AWS PrivateLink all'accesso tramite Internet pubblico per i trasferimenti di dati tra account.
Versioning e protezione dall'eliminazione
Il versioning degli oggetti conserva tutte le versioni di un oggetto, comprese quelle eliminate. Questo protegge da eliminazioni accidentali, dalla crittografia degli oggetti da parte di ransomware e dalle minacce interne. Per i dati critici, combini il versioning con Object Lock (l'equivalente di S3 Glacier Vault Lock) — una policy WORM (Write Once, Read Many) che impedisce qualsiasi eliminazione o modifica durante un periodo di conservazione definito. Object Lock può soddisfare i requisiti normativi relativi ai record immutabili nei settori finanziario e sanitario.
# Enable S3 versioning
aws s3api put-bucket-versioning \
--bucket my-critical-bucket \
--versioning-configuration Status=Enabled
# Enable Object Lock (immutable storage)
aws s3api put-object-lock-configuration \
--bucket my-critical-bucket \
--object-lock-configuration \
'ObjectLockEnabled=Enabled,Rule={DefaultRetention={Mode=COMPLIANCE,Days=365}}'Rilevamento delle configurazioni errate dello storage tramite CSPM
Gli strumenti di Cloud Security Posture Management (CSPM) analizzano automaticamente le configurazioni del cloud storage confrontandole con i benchmark di sicurezza. I controlli CSPM includono: esistono bucket accessibili pubblicamente? La crittografia a riposo è abilitata? Il logging è abilitato? Il versioning è abilitato sui bucket critici? Le policy dei bucket sono eccessivamente permissive? Strumenti CSPM come Prisma Cloud, Wiz e AWS Security Hub offrono un monitoraggio continuo della conformità e segnalano le variazioni della configurazione prima che siano gli aggressori a individuarle.
URL prefirmati e accesso temporaneo
Gli URL prefirmati concedono un accesso a tempo agli oggetti specifici senza richiedere al destinatario credenziali AWS. Sono utili per condividere file con soggetti esterni. I rischi per la sicurezza includono: URL con tempi di scadenza eccessivamente lunghi, che restano validi oltre il periodo di condivisione previsto; URL inoltrati dai destinatari al di fuori del pubblico previsto; e token incorporati negli URL che compaiono nei log dei server. Imposti sempre il tempo di scadenza più breve possibile ed eviti di registrare nei log gli URL prefirmati.
# Generate a pre-signed URL (expires in 3600 seconds)
aws s3 presign s3://my-bucket/report.pdf \
--expires-in 3600
# Returns a URL valid for 1 hour
# After expiry, the URL returns 403 Forbidden
# Best practice: shortest expiry viable for the use caseVerifica rapida
Verifichi la Sua comprensione dei concetti di CompTIA Security+ (SY0-701) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che: le configurazioni errate dei bucket pubblici sono la causa più comune delle violazioni dei dati nel cloud storage, SSE-KMS offre il massimo controllo sulla crittografia, con logging di audit tramite CloudTrail e il versioning degli oggetti combinato con Object Lock protegge dal ransomware e dall'eliminazione da parte di utenti interni dei dati critici. Ora esamineremo l'identità nel cloud con i ruoli IAM e gli account di servizio.
Domande Frequenti
La lezione «Sicurezza dello storage cloud e rischi di esposizione dei dati» è gratuita?
Sì — il testo completo di «Sicurezza dello storage cloud e rischi di esposizione dei dati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Security+ Academy, passa a CoddyKit PRO. Il corso Security+ Academy include 4 lezioni in totale.
Cosa imparerò in «Sicurezza dello storage cloud e rischi di esposizione dei dati»?
Impari come bucket S3, container Azure Blob e bucket GCS configurati in modo errato possano esporre dati e come applicare policy dei bucket e controlli degli accessi. Eserciti Security+ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Security+ Academy?
Non è richiesta alcuna esperienza precedente. Security+ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Sicurezza dello storage cloud e rischi di esposizione dei dati»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Security+ Academy?
Sì. Ogni lezione Security+ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Modello di responsabilità condivisa: IaaS, PaaS, SaaS
- Sicurezza dello storage cloud e rischi di esposizione dei dati
- Identità cloud: ruoli IAM e account di servizio
- Cloud Security Posture Management (CSPM)