AWS Solutions Architect · Lektion

Säkerhetsgrupper och nyckelpar

Kontrollera inkommande och utgående trafik med säkerhetsgrupper och hantera SSH-autentisering med EC2-nyckelpar.

Lektion 3 av 413 steg

Säkerhetsgrupper och nyckelpar är en gratis lektion i AWS Solutions Architect på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för AWS Solutions Architect, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AWS Solutions Architect innehåller totalt 4 lektioner.

Vad är Security Groups?

En security group är en virtuell tillståndsbevarande brandvägg som styr inkommande och utgående trafik till och från en EC2-instans (eller andra AWS-resurser som RDS, Lambda och ELB). Security groups fungerar på instansnivå—varje regel anger ett protokoll (TCP/UDP/ICMP), ett portintervall samt källa eller mål (ett IP-intervall eller en annan security group). Till skillnad från traditionella brandväggar är security groups tillståndsbevarande: om Ni tillåter inkommande trafik tillåts svarstrafiken automatiskt utgående utan att en uttrycklig regel behövs.

Inkommande och utgående regler

Security groups har separata regeluppsättningar för inkommande och utgående trafik. Inkommande regler styr trafik som anländer till instansen—som standard nekas all inkommande trafik. Utgående regler styr trafik som lämnar instansen—som standard tillåts all utgående trafik. Ni lägger till uttryckliga Allow-regler; det finns inga uttryckliga Deny-regler i security groups (använd Network ACLs för uttryckliga nekanden). Alla regler i en security group utvärderas tillsammans med logisk OR—en matchande Allow-regel räcker för att tillåta trafiken.

# 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/0

Kedjning av Security Groups

Security groups stöder referenser till security groups som källa eller mål, vilket är mer flexibelt och säkert än att ange IP-intervall. Till exempel tillåter en ALB:s security group 0.0.0.0/0 på port 443. EC2-instansernas security group tillåter inkommande trafik på port 8080 endast från ALB:ns security group-ID—inte från någon IP-adress. Om en ALB ersätts eller skalas gäller regeln fortfarande korrekt utan att IP-adresser behöver ändras. Detta mönster skapar ett lagerindelat och dynamiskt skydd för arkitekturer med flera lager.

# 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-balancer

Security Groups är tillståndsbevarande

Tillståndsbevarande innebär att security group spårar anslutningstillståndet. Om Er inkommande regel tillåter TCP-port 80 från internet och en klient skickar en begäran, tillåts svarspaketen (utgående) automatiskt tillbaka till klienten—även om det inte finns någon utgående regel för port 80. Detta skiljer sig grundläggande från Network ACLs, som är tillståndslösa och kräver uttryckliga regler för trafik i båda riktningarna. Tillståndsbevarande funktionalitet gör security groups enklare att konfigurera för typiska trafikmönster i applikationer.

Flera Security Groups på en instans

Ni kan koppla flera security groups till en enda EC2-instans (upp till 5 som standard, vilket kan justeras). Reglerna från alla anslutna security groups kombineras med union (OR-logik)—om någon security group tillåter en begäran tillåts begäran. Detta innebär att security groups bara kan lägga till behörigheter, aldrig begränsa dem—om Ni vill begränsa åtkomsten måste Ni ta bort eller ändra regler, inte lägga till en mer restriktiv security group. Tänk på detta additiva beteende vid provfrågor om åtkomstbegränsning.

Standardbeteende för Security Groups

Varje VPC innehåller en default security group. Dess standardregler är: inkommande trafik tillåts från andra instanser som också ingår i default security group, och utgående trafik tillåts till alla destinationer. Detta är avsiktligt tillåtande så att nya instanser kan kommunicera som standard. I produktionsmiljöer bör Ni skapa en anpassad security group med en strikt uppsättning inkommande regler och ta bort instansernas kopplingar till default security group för att undvika oavsiktlig exponering.

Key Pairs: Så fungerar de

EC2-key pairs använder asymmetrisk kryptografi för SSH-autentisering. AWS genererar nyckelparet (eller så importerar Ni Er egen publika nyckel): AWS lagrar den publika nyckeln och lägger in den i instansen vid starten; Ni laddar ned och lagrar den privata nyckeln (.pem-fil)—AWS lagrar den aldrig. SSH använder den privata nyckeln för att bevisa Er identitet för servern utan att överföra ett lösenord. Den privata nyckeln måste ha begränsade behörigheter (chmod 400), annars vägrar SSH att använda den.

# 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.pem

Återställa åtkomst utan ett Key Pair

Om Ni förlorar den privata nyckeln till en Linux-EC2-instans kan Ni inte logga in via SSH på vanligt sätt. Återställningsalternativ omfattar: Systems Manager Session Manager (om SSM-agenten körs och en IAM-roll är kopplad—ingen nyckel behövs), EC2 Instance Connect (lägger in en tillfällig nyckel via webbläsare eller CLI—kräver en öppen SSH-port och EIC-behörigheter), eller stoppa instansen, koppla från rotvolymen i EBS, ansluta den till en annan instans, ändra filen authorized_keys, ansluta den igen och starta om. För Windows använder Ni Systems Manager för att hämta lösenordet.

# 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.67

Bästa praxis: Begränsa SSH-åtkomst

Om SSH (port 22) lämnas öppet för 0.0.0.0/0 utsätts Er instans för brute force- och så kallade credential stuffing-attacker från hela internet. Bästa praxis är att begränsa SSH till Ert specifika företags-IP-intervall eller använda en bastion host (jump box) i ett publikt subnät med en strikt kontrollerad security group och därefter använda SSH från bastionvärden till privata instanser. Ännu bättre är att använda Systems Manager Session Manager för att helt eliminera exponering av SSH-porten—inga inkommande regler behövs alls.

# 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 CIDR

Begränsningar och kvoter för Security Groups

Viktiga standardbegränsningar för security groups (justerbara via Service Quotas) är: upp till 2 500 security groups per VPC, 60 inkommande och 60 utgående regler per security group samt 5 security groups per nätverksgränssnitt. När Ni refererar till en annan security group som källa räknas varje kombination av refererad security group och regel som en regel. Om Ni når regelgränserna kan Ni konsolidera genom att referera till security group-ID:n i stället för enskilda IP-intervall, eller använda prefix lists för att gruppera flera CIDR-intervall i en enda hanterbar enhet.

Hanterade Prefix Lists

En managed prefix list är en uppsättning CIDR-block som Ni kan referera till i regler för security groups eller routningstabeller. AWS underhåller AWS-managed prefix lists för tjänster som S3 och CloudFront, så att Ni kan tillåta trafik till och från dessa tjänster utan att själva underhålla IP-intervall (som ändras över tid). Ni kan även skapa customer-managed prefix lists för att gruppera företagets IP-intervall—uppdatera prefix list på ett ställe så ärver alla security groups som refererar till den ändringen automatiskt.

# 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"}]}]'

Snabbkontroll

Testa Er förståelse av AWS Solutions Architect-koncepten (SAA-C03) från den här lektionen.

Sammanfattning av lektionen

I den här lektionen har Ni lärt Er att: security groups är tillståndsbevarande virtuella brandväggar som som standard nekar inkommande trafik, det är säkrare och mer flexibelt att kedja security groups med ID än att använda IP-intervall, samt att key pairs tillhandahåller asymmetrisk SSH-autentisering medan Systems Manager Session Manager eliminerar behovet av öppna SSH-portar. Nästa avsnitt handlar om lagringsalternativ för EC2: Instance Store jämfört med EBS.

Gratis att börja

Lär dig AWS Solutions Architect med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Säkerhetsgrupper och nyckelpar” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen AWS Solutions Architect, inklusive ”Säkerhetsgrupper och nyckelpar”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i AWS Solutions Architect innehåller totalt 4 lektioner.

Vad lär jag mig i ”Säkerhetsgrupper och nyckelpar”?

Kontrollera inkommande och utgående trafik med säkerhetsgrupper och hantera SSH-autentisering med EC2-nyckelpar. Ni övar på AWS Solutions Architect med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig AWS Solutions Architect?

Du behöver inga förkunskaper. Utbildningen i AWS Solutions Architect på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Säkerhetsgrupper och nyckelpar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här AWS Solutions Architect-lektionen?

Ja. Varje AWS Solutions Architect-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Starta Er första EC2-instans
  2. Instanstyper och prismodeller
  3. Säkerhetsgrupper och nyckelpar
  4. EC2-lagring: Instance Store jämfört med EBS
← Tillbaka till AWS Solutions Architect