Come avviare in modo sicuro un'istanza EC2 all'interno di una VPC personalizzata

Impara come passare dalla rete AWS predefinita a una configurazione di Virtual Private Cloud (VPC) sicura e personalizzata. Questa guida illustra in dettaglio la creazione di VPC, la definizione di sottoreti pubbliche/private, la configurazione delle tabelle di routing per l'accesso a internet controllato (tramite IGW o NAT) e l'applicazione di regole rigorose dei Security Group per avviare e gestire in modo sicuro le istanze EC2.

30 visualizzazioni

Come avviare in sicurezza un'istanza EC2 all'interno di una VPC personalizzata

Avviare un'istanza Amazon EC2 direttamente sulla rete pubblica predefinita di AWS è veloce, ma per qualsiasi ambiente di produzione, staging o sensibile, introduce rischi inutili. La messa in sicurezza delle risorse di calcolo richiede l'isolamento all'interno di un Virtual Private Cloud (VPC), la propria sezione isolata logicamente del Cloud AWS. Questa guida illustra i passaggi essenziali per configurare una VPC personalizzata, definire i componenti di rete necessari come sottoreti (subnet) e tabelle di routing (route table) e avviare in sicurezza un'istanza EC2 protetta da rigide regole dei gruppi di sicurezza.

Padroneggiare la configurazione di VPC è fondamentale per costruire un'infrastruttura AWS robusta, scalabile e sicura. Definendo manualmente i confini della rete, si ottiene un controllo granulare sul flusso di traffico, sull'indirizzamento IP e sulla connettività esterna, rafforzando significativamente l'ambiente applicativo contro gli accessi non autorizzati.

Comprensione dei Componenti Fondamentali di una VPC Sicura

Un Virtual Private Cloud (VPC) è la base su cui è costruita tutta la rete AWS sicura. Prima di avviare un'istanza, è necessario assicurarsi che i seguenti componenti siano configurati correttamente:

  1. VPC: Il contenitore principale per la rete, che definisce un intervallo di indirizzi IP privati (blocco CIDR).
  2. Sottoreti (Subnets): Divisioni all'interno della VPC, classificate come Pubbliche (con accesso diretto a internet) o Private (isolate).
  3. Gateway Internet (IGW): Necessario affinché le risorse nelle sottoreti pubbliche possano comunicare con internet.
  4. Tabelle di routing (Route Tables): Regole che dettano dove viene indirizzato il traffico di rete dalle sottoreti.
  5. Gruppi di Sicurezza (SGs): Firewall stateful che controllano il traffico in entrata e in uscita a livello di istanza.

Fase 1: Creazione della VPC Personalizzata e delle Sottoreti

Iniziamo creando il contenitore di rete e segmentandolo in aree funzionali. Per una configurazione standard, consigliamo almeno una sottorete pubblica e una privata.

1.1 Creazione della VPC

Quando crei la tua VPC, seleziona un blocco CIDR privato che non si sovrapponga a nessuna rete on-premises a cui potresti connetterti in seguito (ad esempio, utilizzando AWS VPN o Direct Connect).

Esempio di CIDR VPC: 10.0.0.0/16

1.2 Creazione delle Sottoreti

Le sottoreti devono risiedere all'interno di una specifica Zona di Disponibilità (AZ) per l'alta disponibilità. Per questo esempio, creeremo una sottorete pubblica e una privata in us-east-1a.

  • Sottorete Pubblica: 10.0.1.0/24 (Utilizzata per bastion host o load balancer)
  • Sottorete Privata: 10.0.2.0/24 (Utilizzata per server applicativi e database)

Fase 2: Configurazione della Connettività Internet e del Routing

Le risorse nelle sottoreti private non dovrebbero avere accesso diretto a internet. Le risorse nella sottorete pubblica devono essere instradate correttamente per raggiungere internet tramite un Gateway Internet (IGW).

2.1 Collegamento di un Gateway Internet (IGW)

  1. Crea una risorsa IGW nella console AWS.
  2. Collega questo IGW alla VPC appena creata.

2.2 Configurazione delle Tabelle di Routing

Le tabelle di routing definiscono i percorsi del traffico. Ne servono almeno due: una per la sottorete pubblica e una per la sottorete privata.

Tabella di Routing Pubblica

Questa tabella indirizza tutto il traffico non locale (0.0.0.0/0) al Gateway Internet collegato.

Destinazione Target
10.0.0.0/16 (CIDR VPC) local
0.0.0.0/0 igw-xxxxxxxx (ID del tuo IGW)

Associa questa tabella di routing alla tua Sottorete Pubblica (10.0.1.0/24).

Tabella di Routing Privata

Questa tabella consente solo la comunicazione interna. Fondamentale: non deve avere alcuna rotta che punti all'IGW.

Destinazione Target
10.0.0.0/16 (CIDR VPC) local

Associa questa tabella di routing alla tua Sottorete Privata (10.0.2.0/24).

Best Practice: Se le risorse nella sottorete privata devono scaricare patch o aggiornamenti, è necessario utilizzare un NAT Gateway posizionato nella sottorete pubblica. La Tabella di Routing Privata indirizzerebbe quindi il traffico 0.0.0.0/0 al NAT Gateway invece che all'IGW.

Fase 3: Definizione di Regole Rigide per i Gruppi di Sicurezza

I Gruppi di Sicurezza (SG) agiscono come firewall virtuali per le istanze EC2. Operano a livello di istanza e sono stateful (il traffico di ritorno è consentito automaticamente).

Per una configurazione sicura, è necessario aderire al principio del privilegio minimo, consentendo esplicitamente solo il traffico in entrata necessario.

Esempio di Gruppo di Sicurezza per un Server Web (Sottorete Privata)

Se questa istanza EC2 è un server applicativo accessibile solo da un Application Load Balancer (ALB) che risiede nella sottorete pubblica, le regole dovrebbero essere altamente restrittive:

Regole in Entrata (Inbound Rules)

Tipo Protocollo Intervallo di Porte Sorgente
HTTP TCP 80 ID SG dell'ALB
HTTPS TCP 443 ID SG dell'ALB
SSH TCP 22 Intervallo IP della Rete Aziendale o ID SG del Bastion Host

Regole in Uscita (Outbound Rules)

Per impostazione predefinita, il traffico in uscita è solitamente consentito a tutte le destinazioni (0.0.0.0/0). È possibile limitarlo ulteriormente se necessario (ad esempio, consentendo solo le connessioni a un SG dell'istanza RDS).

Suggerimento di Sicurezza: Non assegnare mai 0.0.0.0/0 alla porta 22 (SSH) o alla porta 3389 (RDP) su un gruppo di sicurezza esposto al pubblico. Limitare sempre l'accesso di gestione a intervalli IP interni noti.

Fase 4: Avvio Sicuro dell'Istanza EC2

Quando avvii l'istanza, assicurati di associarla ai componenti di rete corretti stabiliti sopra.

  1. Scegli AMI e Tipo di Istanza: Seleziona l'Amazon Machine Image (AMI) desiderata e le specifiche hardware.
  2. Impostazioni di Rete: Nel passaggio 'Configura Dettagli Istanza':
    • Rete: Seleziona la tua VPC Personalizzata.
    • Sottorete: Seleziona la Sottorete Privata (10.0.2.0/24) se stai avviando un server applicativo che non deve essere esposto direttamente a internet.
    • Assegnazione Automatica IP Pubblico: Assicurati che sia Disabilitata se l'avvio avviene in una sottorete privata. (Se selezioni una sottorete pubblica, potresti abilitarla per un'istanza che necessita di accesso pubblico diretto, come un bastion host).
    • Gruppi di Sicurezza: Seleziona il Gruppo di Sicurezza che hai configurato nella Fase 3.
  3. Storage e Coppia di Chiavi: Configura lo storage e associa una coppia di chiavi per l'accesso SSH sicuro.

Accesso alle Istanze in una Sottorete Privata

Poiché l'istanza che risiede nella sottorete privata non ha un indirizzo IP pubblico, non puoi effettuare l'accesso SSH direttamente da internet. Devi utilizzare uno dei due metodi sicuri:

  1. Bastion Host (Jump Box): Avvia una piccola istanza EC2 "rinforzata" (hardened) nella Sottorete Pubblica. Effettui prima l'accesso SSH nel bastion host e poi dal bastion host, effettui l'accesso SSH nell'istanza privata utilizzando il suo indirizzo IP privato.
  2. AWS Systems Manager (SSM) Session Manager: Questo è il metodo moderno preferito. Se l'istanza ha l'agente SSM installato e un ruolo IAM appropriato collegato che consente la connettività SSM, puoi avviare una sessione shell sicura direttamente dalla Console AWS senza bisogno di regole SSH in entrata o di Bastion Host.

Riepilogo e Passaggi Successivi

La messa in sicurezza di un'istanza EC2 all'interno di una VPC personalizzata implica la stratificazione della sicurezza di rete dal livello macro (VPC, sottoreti, tabelle di routing) al livello micro (gruppi di sicurezza). Controllando attentamente l'indirizzamento IP e il flusso di traffico:

  • Ti assicuri che i server applicativi risiedano in sottoreti private isolate.
  • Utilizzi l'IGW o il NAT Gateway solo dove necessario.
  • Applichi il principio del privilegio minimo tramite le regole di ingresso dei Gruppi di Sicurezza.

Una volta avviata l'istanza, ricorda di monitorare la sua attività utilizzando AWS CloudTrail e VPC Flow Logs per mantenere una visibilità continua sul traffico della tua rete privata.