0Pricing
Cloud & IT Cert Prep · Lezione

Scenari di architetture sicure

Affrontare domande basate su scenari riguardanti il privilegio minimo IAM, la crittografia, l'isolamento VPC e WAF/Shield per consolidare le conoscenze del dominio della sicurezza

Scenari di architetture sicure è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 1 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 Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Scenario 1: accesso EC2 a S3 con privilegi minimi

Scenario: Un’istanza EC2 esegue un’applicazione web che deve leggere oggetti da uno specifico bucket S3. Il team di sicurezza richiede che sull’istanza non vengano memorizzate credenziali a lungo termine e che l’accesso segua il principio del privilegio minimo. Soluzione: Crei un ruolo IAM con una policy che consenta solo s3:GetObject sull’ARN del bucket specifico. Colleghi il ruolo all’istanza EC2 come profilo dell’istanza. L’applicazione utilizza il servizio di metadati dell’istanza (IMDS) per recuperare automaticamente credenziali temporanee: non sono necessarie chiavi memorizzate.

# IAM policy for least-privilege EC2 -> S3 read
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Action': ['s3:GetObject'],
    'Resource': 'arn:aws:s3:::my-app-bucket/*'
  }]
}

# Attach role to EC2 instance
aws ec2 associate-iam-instance-profile \
  --instance-id i-1234567890abcdef0 \
  --iam-instance-profile Name=EC2S3ReadRole

Scenario 2: crittografia dei dati in un database RDS

Scenario: Un’azienda memorizza dati personali identificabili dei clienti in un database RDS PostgreSQL. Il team di conformità richiede la crittografia a riposo con la possibilità di verificare l’utilizzo delle chiavi. Soluzione: Abiliti la crittografia RDS tramite AWS KMS utilizzando una Customer Managed Key (CMK). La CMK consente al team di sicurezza di controllare la rotazione delle chiavi, visualizzarne l’utilizzo in CloudTrail e revocare l’accesso se necessario. Nota: la crittografia deve essere abilitata durante la creazione dell’istanza RDS; non è possibile crittografare direttamente un’istanza RDS esistente non crittografata. Per crittografare un database esistente, crei uno snapshot, lo copi abilitando la crittografia e ripristini il database dallo snapshot crittografato.

# Create an encrypted RDS instance
aws rds create-db-instance \
  --db-instance-identifier prod-postgres \
  --db-instance-class db.t3.medium \
  --engine postgres \
  --master-username admin \
  --master-user-password SecurePass123! \
  --storage-encrypted \
  --kms-key-id arn:aws:kms:us-east-1:123456789012:key/mrk-abc123 \
  --allocated-storage 100

Scenario 3: bucket S3 — bloccare l’accesso pubblico

Scenario: Uno sviluppatore ha reso accidentalmente pubblico un bucket S3, esponendo dati dei clienti. Il team di sicurezza vuole garantire che nessun bucket S3 dell’account possa mai essere reso pubblico, anche se uno sviluppatore ci prova. Soluzione: Abiliti S3 Block Public Access a livello di account. Questa impostazione prevale su qualsiasi policy o ACL a livello di bucket che conceda l’accesso pubblico, indipendentemente dalla configurazione dei singoli team. La combini con una regola AWS Config (s3-bucket-public-read-prohibited) per rilevare continuamente e segnalare i bucket non conformi.

# Block all public access at account level
aws s3control put-public-access-block \
  --account-id 123456789012 \
  --public-access-block-configuration \
    'BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true'

# Deploy Config rule to detect violations
aws configservice put-config-rule \
  --config-rule '{"ConfigRuleName": "s3-bucket-public-read-prohibited", "Source": {"Owner": "AWS", "SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"}}'

Scenario 4: isolamento VPC per il livello database

Scenario: Un’azienda vuole garantire che il database RDS sia accessibile solo dai propri server applicativi e non da Internet. Soluzione: Inserisca RDS in una subnet privata senza una route verso un internet gateway. Crei un gruppo di sicurezza per RDS che consenta il traffico in ingresso sulla porta 5432 (PostgreSQL) solo dal gruppo di sicurezza dei server applicativi, non da alcun intervallo di indirizzi IP. In questo modo, anche se un server applicativo viene compromesso, l’attaccante non può raggiungere il database dall’esterno della VPC e il movimento laterale è limitato dalle regole dei gruppi di sicurezza.

# Create RDS security group allowing only the app tier SG as source
aws ec2 create-security-group \
  --group-name rds-sg \
  --description 'RDS security group' \
  --vpc-id vpc-abc123

aws ec2 authorize-security-group-ingress \
  --group-id sg-rds \
  --protocol tcp \
  --port 5432 \
  --source-group sg-app  # app tier security group ID only

Scenario 5: rotazione delle credenziali del database

Scenario: Il codice dell’applicazione contiene attualmente le credenziali del database hardcoded nei file di configurazione. L’audit di sicurezza segnala questo aspetto come un rischio critico. Soluzione: Memorizzi le credenziali in AWS Secrets Manager e configuri la rotazione automatica (Secrets Manager dispone di funzioni Lambda integrate per la rotazione di RDS). Aggiorni l’applicazione affinché recuperi le credenziali da Secrets Manager durante l’esecuzione utilizzando l’SDK. L’applicazione riceve automaticamente credenziali aggiornate senza richiedere un deployment a ogni rotazione. Abiliti il modello di rotazione dei segreti RDS per una rotazione delle credenziali completamente gestita e senza downtime.

# Store RDS credentials in Secrets Manager
aws secretsmanager create-secret \
  --name prod/myapp/rds \
  --secret-string '{"username":"admin","password":"OldPass123!","host":"rds-endpoint.amazonaws.com","port":5432}'

# Enable automatic rotation every 30 days
aws secretsmanager rotate-secret \
  --secret-id prod/myapp/rds \
  --rotation-lambda-arn arn:aws:lambda:us-east-1:123:function:SecretsManagerRDSPostgreSQLRotationSingleUser \
  --rotation-rules AutomaticallyAfterDays=30

Scenario 6: rilevare attività API insolite

Scenario: Un’azienda vuole rilevare se le credenziali di un account AWS sono state compromesse e vengono utilizzate da posizioni inaspettate. Soluzione: Abiliti Amazon GuardDuty in tutte le Regioni. GuardDuty analizza gli eventi CloudTrail, i log VPC Flow e i log DNS utilizzando il machine learning per rilevare anomalie: chiamate API provenienti da aree geografiche insolite, modelli di mining di Bitcoin su EC2, comunicazioni con nodi di uscita Tor o modelli di esfiltrazione delle credenziali. GuardDuty genera finding che possono attivare regole EventBridge per notificare automaticamente il team di sicurezza tramite SNS o creare un ticket di supporto.

# Enable GuardDuty in a Region
aws guardduty create-detector \
  --enable \
  --finding-publishing-frequency FIFTEEN_MINUTES

# EventBridge rule to react to GuardDuty HIGH severity findings
aws events put-rule \
  --name guardduty-high-severity \
  --event-pattern '{
    "source": ["aws.guardduty"],
    "detail-type": ["GuardDuty Finding"],
    "detail": {"severity": [{"numeric": [">=", 7]}]}
  }'

Scenario 7: WAF per bloccare richieste dannose

Scenario: Un’applicazione web eseguita dietro un ALB sta ricevendo attacchi di SQL injection. Non è possibile modificare immediatamente l’applicazione. Soluzione: Associ AWS WAF all’ALB. Implementi il gruppo di regole AWS Managed Rules for Common Threats (Core Rule Set + gruppo di regole SQL Database), che include il rilevamento predefinito delle SQL injection. WAF ispeziona le richieste HTTP prima che raggiungano l’ALB e blocca quelle che corrispondono a modelli di attacco: non è necessaria alcuna modifica al codice dell’applicazione. Abiliti inoltre il logging di WAF verso Kinesis Firehose per l’analisi della sicurezza.

# Create WAF Web ACL with SQL injection protection
aws wafv2 create-web-acl \
  --name AppProtection \
  --scope REGIONAL \
  --default-action Allow={} \
  --rules '[{
    "Name": "AWSManagedRulesSQLiRuleSet",
    "Priority": 1,
    "Statement": {
      "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesSQLiRuleSet"
      }
    },
    "OverrideAction": {"None": {}},
    "VisibilityConfig": {"SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "SQLi"}
  }]' \
  --region us-east-1

Scenario 8: assumere un ruolo tra account

Scenario: Un account di sicurezza centrale necessita di accesso in sola lettura a tutti gli account dei carichi di lavoro di un’AWS Organisation per eseguire audit di sicurezza. Soluzione: In ogni account dei carichi di lavoro, crei un ruolo IAM con una policy di attendibilità che consenta all’account di sicurezza, identificato dall’ID dell’account, di assumerlo. Alleghi una policy di sola lettura (ad esempio, la policy gestita da AWS SecurityAudit). Il team di sicurezza dell’account centrale utilizza STS AssumeRole per assumere temporaneamente il ruolo in ciascun account dei carichi di lavoro. Questa soluzione segue il principio del privilegio minimo: negli account dei carichi di lavoro non vengono creati utenti IAM permanenti.

# Trust policy in workload account (allows security account to assume role)
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Principal': {
      'AWS': 'arn:aws:iam::SECURITY_ACCOUNT_ID:root'
    },
    'Action': 'sts:AssumeRole'
  }]
}

# From security account: assume role in workload account
aws sts assume-role \
  --role-arn arn:aws:iam::WORKLOAD_ACCOUNT_ID:role/SecurityAuditRole \
  --role-session-name audit-2024-01

Scenario 9: limitare le azioni con le SCP

Scenario: Un’azienda utilizza AWS Organizations e vuole impedire a qualsiasi account di un’unità organizzativa non di produzione di avviare istanze GPU costose. Soluzione: Crei una Service Control Policy (SCP) che neghi ec2:RunInstances per le famiglie di istanze GPU (p3, p4, g4, g5) e la colleghi all’unità organizzativa non di produzione. Le SCP si applicano anche agli utenti root e agli utenti IAM con livello di amministratore negli account membri: fungono da guardrail che nessuna identità nell’account può eludere. In questo modo si previene una spesa elevata accidentale o dannosa negli account di sviluppo e test.

# SCP to deny GPU instance types in non-prod OU
{
  'Version': '2012-10-17',
  'Statement': [{
    'Sid': 'DenyGPUInstances',
    'Effect': 'Deny',
    'Action': 'ec2:RunInstances',
    'Resource': 'arn:aws:ec2:*:*:instance/*',
    'Condition': {
      'StringLike': {
        'ec2:InstanceType': ['p3.*', 'p4d.*', 'g4.*', 'g5.*']
      }
    }
  }]
}

Scenario 10: traccia di audit per la conformità

Scenario: Una società di servizi finanziari deve dimostrare agli auditor che tutte le chiamate API AWS vengono registrate, sono a prova di manomissione e vengono conservate per 7 anni. Soluzione: Crei un trail AWS CloudTrail multi-Regione che recapiti i log in un bucket S3 dedicato di un account di logging. Abiliti la convalida dell’integrità dei file di log (file digest crittografici che rilevano la manomissione dei log). Imposti una policy S3 Object Lock in modalità Compliance con un periodo di conservazione di 7 anni sul bucket di logging. In questo modo i log non possono essere eliminati o modificati, nemmeno dall’utente root, per il periodo di conservazione richiesto.

# Create multi-region trail with integrity validation
aws cloudtrail create-trail \
  --name compliance-trail \
  --s3-bucket-name central-audit-logs-123 \
  --is-multi-region-trail \
  --enable-log-file-validation \
  --include-global-service-events

aws cloudtrail start-logging --name compliance-trail

Scenario 11: VPC Endpoint per l’accesso privato a S3

Scenario: Le istanze EC2 in una VPC privata devono accedere a S3 senza che il traffico attraversi Internet. Attualmente viene utilizzato un NAT Gateway e i costi sono elevati a causa delle tariffe di elaborazione dati del NAT Gateway. Soluzione: Crei un S3 Gateway VPC Endpoint. Aggiunga alla tabella di routing della subnet privata una voce che indirizzi la prefix list di S3 verso l’endpoint. Il traffico verso S3 rimane interamente all’interno della rete backbone AWS: non sono necessari né un NAT Gateway né un internet gateway. Gli S3 Gateway Endpoint sono gratuiti, a differenza degli Interface Endpoint, che hanno un costo orario per AZ. Questa soluzione migliora inoltre la sicurezza rimuovendo l’accesso a S3 dal percorso attraverso Internet.

# Create S3 Gateway VPC Endpoint
aws ec2 create-vpc-endpoint \
  --vpc-id vpc-abc123 \
  --service-name com.amazonaws.us-east-1.s3 \
  --route-table-ids rtb-private-1a rtb-private-1b

# Result: route table automatically gets a route:
# Destination: pl-63a5400a (S3 prefix list)
# Target: vpce-xyz456 (the Gateway Endpoint)
# EC2 instances now reach S3 privately at no endpoint cost

Verifica rapida

Verifichi la Sua comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha affrontato scenari riguardanti: ruoli IAM e profili di istanza per accedere a EC2 senza credenziali, Secrets Manager per la rotazione automatica delle credenziali del database, AWS WAF per bloccare gli attacchi di injection senza modifiche al codice e CloudTrail con S3 Object Lock per log di conformità a prova di manomissione. Ora affronteremo scenari di architetture resilienti e ad alta disponibilità.

Domande Frequenti

La lezione «Scenari di architetture sicure» è gratuita?

Sì — il testo completo di «Scenari di architetture sicure» è 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 Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Cosa imparerò in «Scenari di architetture sicure»?

Affrontare domande basate su scenari riguardanti il privilegio minimo IAM, la crittografia, l'isolamento VPC e WAF/Shield per consolidare le conoscenze del dominio della sicurezza Eserciti Cloud & IT Cert Prep 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 Cloud & IT Cert Prep?

Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Scenari di architetture sicure»?

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 Cloud & IT Cert Prep?

Sì. Ogni lezione Cloud & IT Cert Prep 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

  1. Scenari di architetture sicure
  2. Scenari di architetture resilienti e ad alta disponibilità
  3. Scenari di alte prestazioni e ottimizzazione dei costi
  4. Mini esame completo misto per domini
← Torna a Cloud & IT Cert Prep