Security group e key pair
Controllerete il traffico in entrata e in uscita con i security group e gestirete l'autenticazione SSH con le key pair di EC2.
Security group e key pair è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 3 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.
Cosa sono i Security Groups?
Un security group è un firewall virtuale stateful che controlla il traffico in entrata e in uscita da un'istanza EC2, o da altre risorse AWS come RDS, Lambda ed ELB. I security group operano a livello di istanza: ogni regola specifica un protocollo (TCP/UDP/ICMP), un intervallo di porte e un'origine/destinazione, ovvero un intervallo IP o un altro security group. A differenza dei firewall tradizionali, i security group sono stateful: se si consente il traffico in entrata, il traffico di risposta in uscita viene consentito automaticamente senza una regola esplicita.
Regole in entrata e in uscita
I security group dispongono di insiemi separati di regole in entrata e in uscita. Le regole in entrata controllano il traffico che raggiunge l'istanza: per impostazione predefinita, tutto il traffico in entrata viene negato. Le regole in uscita controllano il traffico che lascia l'istanza: per impostazione predefinita, tutto il traffico in uscita è consentito. Si aggiungono regole Allow esplicite; nei security group non esistono regole Deny esplicite, per i rifiuti espliciti si usano le Network ACL. Tutte le regole di un security group vengono valutate insieme con un OR logico: qualsiasi regola Allow corrispondente consente il traffico.
# Add an inbound SSH rule to a security group
aws ec2 authorize-security-group-ingress \
--group-id sg-12345678 \
--protocol tcp \
--port 22 \
--cidr 203.0.113.0/24
# Add an inbound HTTP rule
aws ec2 authorize-security-group-ingress \
--group-id sg-12345678 \
--protocol tcp \
--port 80 \
--cidr 0.0.0.0/0Concatenamento dei Security Groups
I security group supportano i riferimenti a security group di origine/destinazione, più flessibili e sicuri rispetto alla specifica di intervalli IP. Ad esempio, un security group ALB consente 0.0.0.0/0 sulla porta 443. Il security group delle istanze EC2 consente il traffico in entrata sulla porta 8080 solo dall'ID del security group ALB, non da un qualsiasi IP. Se un ALB viene sostituito o ridimensionato, la regola continua ad applicarsi correttamente senza modifiche agli IP. Questo schema crea una difesa dinamica e a livelli per le architetture multi-tier.
# Allow inbound from another security group (not an IP)
aws ec2 authorize-security-group-ingress \
--group-id sg-ec2-instances \
--protocol tcp \
--port 8080 \
--source-group sg-load-balancerI Security Groups sono stateful
Stateful significa che il security group tiene traccia dello stato della connessione. Se una regola in entrata consente la porta TCP 80 da internet e un client effettua una richiesta, i pacchetti di risposta in uscita vengono automaticamente consentiti verso il client, anche se non esiste una regola in uscita per la porta 80. Questo è sostanzialmente diverso dalle Network ACL, che sono stateless e richiedono regole esplicite per entrambe le direzioni del traffico. Il comportamento stateful rende i security group più semplici da configurare per i comuni schemi di traffico delle applicazioni.
Più Security Groups su un'istanza
È possibile associare più security group a una singola istanza EC2, fino a 5 per impostazione predefinita, con limite modificabile. Le regole di tutti i security group associati vengono combinate mediante unione, con logica OR: se un qualsiasi security group consente una richiesta, la richiesta viene autorizzata. Ciò significa che i security group possono solo aggiungere autorizzazioni, mai limitarle: per restringere l'accesso, occorre rimuovere o modificare le regole, non aggiungere un security group più restrittivo. Tenga presente questo comportamento additivo nelle domande d'esame sulla restrizione degli accessi.
Comportamento del Security Group predefinito
Ogni VPC include un security group predefinito. Le sue regole predefinite sono: in entrata consente tutto il traffico proveniente da altre istanze anch'esse nel security group predefinito; in uscita consente tutto il traffico verso qualsiasi destinazione. Questa configurazione è volutamente permissiva, affinché le nuove istanze possano comunicare per impostazione predefinita. Per gli ambienti di produzione, crei un security group personalizzato con un insieme di regole in entrata rigorosamente limitato e rimuova le associazioni delle istanze con il security group predefinito, per evitare esposizioni accidentali.
Key Pairs: funzionamento
Le key pair EC2 utilizzano la crittografia asimmetrica per l'autenticazione SSH. AWS genera la key pair, oppure si importa la propria chiave pubblica: AWS archivia la chiave pubblica e la inserisce nell'istanza al momento dell'avvio; si scarica e si conserva la chiave privata, il file .pem, che AWS non archivia mai. SSH utilizza la chiave privata per dimostrare la propria identità al server senza trasmettere una password. La chiave privata deve avere permessi restrittivi (chmod 400), altrimenti SSH rifiuterà di utilizzarla.
# Create a key pair and save the private key
aws ec2 create-key-pair \
--key-name ProdKey \
--key-type rsa \
--key-format pem \
--query 'KeyMaterial' \
--output text > ProdKey.pem
chmod 400 ProdKey.pemRecuperare l'accesso senza una Key Pair
Se si perde la chiave privata di un'istanza Linux EC2, non è possibile accedere tramite SSH in modo convenzionale. Le opzioni di recupero includono: Systems Manager Session Manager, se l'agente SSM è in esecuzione ed è associato un ruolo IAM, senza necessità di chiave; EC2 Instance Connect, che inserisce una chiave temporanea tramite browser o CLI e richiede una porta SSH aperta e autorizzazioni EIC; oppure arrestare l'istanza, scollegare il volume EBS root, collegarlo a un'altra istanza, modificare il file authorized_keys, ricollegarlo e riavviarlo. Per Windows, utilizzare Systems Manager per recuperare la password.
# Connect using EC2 Instance Connect (temporary key injection)
aws ec2-instance-connect send-ssh-public-key \
--instance-id i-0abcdef1234567890 \
--instance-os-user ec2-user \
--ssh-public-key file://~/.ssh/id_rsa.pub
ssh -i ~/.ssh/id_rsa ec2-user@54.123.45.67Best practice: limitare l'accesso SSH
Lasciare SSH, porta 22, aperto a 0.0.0.0/0 espone l'istanza ad attacchi brute-force e credential stuffing da qualsiasi punto di internet. Best practice: limitare SSH al proprio intervallo IP aziendale specifico oppure utilizzare un bastion host, una jump box, in una subnet pubblica con un security group strettamente controllato, quindi accedere tramite SSH dal bastion alle istanze private. Ancora meglio, utilizzare Systems Manager Session Manager per eliminare completamente l'esposizione della porta SSH: non sono necessarie regole in entrata.
# Example: restrict SSH to a corporate IP range
aws ec2 authorize-security-group-ingress \
--group-id sg-12345678 \
--protocol tcp \
--port 22 \
--cidr 198.51.100.0/24 # Your corporate CIDRLimiti e quote dei Security Groups
Principali limiti predefiniti dei security group, modificabili tramite Service Quotas: fino a 2.500 security group per VPC, 60 regole in entrata e 60 in uscita per security group e 5 security group per interfaccia di rete. Quando si fa riferimento a un altro security group come origine, ogni combinazione di security group referenziato e regola conta come una regola. Se si raggiungono i limiti delle regole, consolidare usando gli ID dei security group invece di singoli intervalli IP, oppure utilizzare le prefix list per raggruppare più CIDR in un'unica entità gestibile.
Managed Prefix Lists
Una managed prefix list è un insieme di blocchi CIDR a cui è possibile fare riferimento nelle regole dei security group o nelle tabelle di routing. AWS gestisce le AWS-managed prefix lists per servizi quali S3 e CloudFront, consentendo di autorizzare il traffico da e verso questi servizi senza gestire personalmente gli intervalli IP, che cambiano nel tempo. È inoltre possibile creare customer-managed prefix lists per raggruppare gli intervalli IP aziendali: aggiornando la prefix list in un solo punto, tutti i security group che vi fanno riferimento ereditano automaticamente la modifica.
# Allow outbound HTTPS to Amazon S3 using the AWS-managed prefix list
aws ec2 authorize-security-group-egress \
--group-id sg-12345678 \
--ip-permissions '[{"IpProtocol":"tcp","FromPort":443,"ToPort":443,"PrefixListIds":[{"PrefixListId":"pl-63a5400a"}]}]'Verifica rapida
Verifichi la Sua comprensione dei concetti AWS Solutions Architect (SAA-C03) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che: i security group sono firewall virtuali stateful che, per impostazione predefinita, negano il traffico, concatenare i security group tramite ID è più sicuro e flessibile rispetto all'uso di intervalli IP e le key pair forniscono autenticazione SSH asimmetrica, mentre Systems Manager Session Manager elimina la necessità di porte SSH aperte. Nella prossima lezione verranno trattate le opzioni di storage EC2: Instance Store ed EBS.
Domande Frequenti
La lezione «Security group e key pair» è gratuita?
Sì — il testo completo di «Security group e key pair» è 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 «Security group e key pair»?
Controllerete il traffico in entrata e in uscita con i security group e gestirete l'autenticazione SSH con le key pair di EC2. 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 3 di 4.
Quanto tempo richiede la lezione «Security group e key pair»?
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
- Avvio della prima istanza EC2
- Tipi di istanza e modelli di prezzo
- Security group e key pair
- Archiviazione EC2: Instance Store ed EBS