IAM, least privilege e governance
Sull’esame MLA-C02 (passing score 700/1000) la sicurezza non è un dominio a sé: si presenta dentro scenari di training, deployment e monitoring. La domanda tipica descrive un requisito di compliance o di isolamento e ti chiede il servizio o la configurazione corretta. La chiave è distinguere con precisione i ruoli dei pilastri: IAM decide chi può fare cosa, KMS cifra, network isolation e VPC endpoint governano il traffico, Macie scopre i dati sensibili e CloudTrail registra le azioni. Confonderli è esattamente l’errore che le domande vogliono provocare.
Ogni job (training, processing, batch transform) e ogni endpoint SageMaker assume un execution role. Il principio guida è least privilege: la policy concede solo le azioni e le risorse strettamente necessarie, ad esempio lettura sul bucket S3 dei dati, scrittura sul prefix di output e pull dell’immagine su ECR. Policy con s3:* su * o AdministratorAccess sono quasi sempre la risposta sbagliata. Usa condizioni (ARN e prefissi specifici) e ruoli distinti per data scientist, pipeline CI/CD ed endpoint di produzione: questa separazione è governance concreta.
Encryption con KMS
KMS copre l’encryption at rest end-to-end. Per i dati su S3 usa SSE-KMS con una customer managed key quando serve controllo granulare su rotazione e key policy. Per i job SageMaker puoi cifrare i volumi EBS collegati a training e processing e i dati di output (OutputDataConfig), e anche gli endpoint e i loro storage volume supportano una KMS key. Attenzione: la key policy di KMS è un livello di autorizzazione aggiuntivo. Anche con i permessi IAM corretti, senza un permesso sulla key l’operazione fallisce. Per il traffico in transito vale TLS, gestito da AWS.
Network isolation, VPC endpoint e PrivateLink
Sono due meccanismi distinti e spesso confusi. La network isolation mode blocca ogni chiamata di rete in uscita dal container: è la scelta quando esegui codice o modelli non fidati, perché impedisce l’esfiltrazione dei dati. La VPC configuration invece lancia il job o l’endpoint dentro subnet private con security group, ma di per sé non impedisce l’uscita verso internet. Per far raggiungere S3, ECR, l’API SageMaker o CloudWatch senza passare da internet, aggiungi i VPC endpoint: un gateway endpoint per S3 e interface endpoint (AWS PrivateLink) per gli altri servizi. Così eviti NAT gateway e internet gateway e mantieni il traffico sulla rete AWS. Le due opzioni sono combinabili: puoi avere un job in VPC e in network isolation quando SageMaker gestisce lui il trasferimento dei dati.
Macie per la PII e CloudTrail per l’audit
Amazon Macie usa ML e pattern matching per scoprire e classificare dati sensibili (PII come nomi, email, numeri di carta) nei bucket S3: è la risposta quando lo scenario chiede di identificare PII nei dataset di training. Non cifra e non definisce permessi. AWS CloudTrail registra le API call dell’account (chi ha avviato un training job, invocato un endpoint, creato un modello e quando): è lo strumento di audit e governance, non di autorizzazione. Tienilo fisso: i permessi si definiscono in IAM, le azioni si tracciano in CloudTrail.
Trappole tipiche d’esame
- Container di training con codice non fidato che non deve accedere a internet → network isolation mode: la sola VPC config non basta, perché il container può ancora comunicare in rete; la network isolation blocca ogni chiamata in uscita.
- Job SageMaker in VPC che devono leggere da S3 senza traffico pubblico → gateway VPC endpoint per S3: un NAT gateway funzionerebbe ma instrada verso internet, mentre l’endpoint mantiene il traffico privato sulla rete AWS.
- Identificare PII nei dati di training su S3 → Amazon Macie: KMS li cifra ma non li scopre, CloudTrail traccia gli accessi ma non ispeziona il contenuto.
- Sapere chi ha invocato un endpoint e quando → AWS CloudTrail: IAM concede o nega i permessi, ma è CloudTrail a fornire il log di audit delle azioni compiute.
- Cifrare volumi di training e output con controllo sulla chiave → customer managed KMS key: ricorda che serve anche il permesso nella key policy, non solo la policy IAM.
- Ridurre il rischio sull’execution role → least privilege: ARN e prefissi specifici invece di
s3:*/*, e ruoli separati per dev, pipeline e produzione.