• Webbsäkerhet

Hur man faktiskt bygger en säker och pålitlig AWS-molnarkitektur utan att tappa förståndet

  • Felix Rose-Collins
  • 5 min read

Introduktion

Om du någonsin har försökt att designa molnarkitektur i AWS från grunden vet du förmodligen redan: det är lika delar frihet och kaos. Det finns tusen sätt att bygga något på, och lika många sätt att sabba det.

En kort titt på AWS-dokumentationen kan få dig att tänka: "Coolt, vi ska helt enkelt följa de bästa metoderna." Men i verkliga internationella miljöer lever förstklassiga metoder inte ofta vid första kontakten med verkliga kommersiella företagsbehov, prisintervallgränser eller mänskliga fel. Det är därför som man genom att tidigt samarbeta med proffs som Perfsys kan förhindra att man senare spelar whack-a-mole med skyddshål och skalningskomplikationer.

Målet är inte bara att få något som fungerar. Det är att bygga ett system som inte faller omkull när trafiken ökar eller en region blinkar ut - och som inte lämnar ytterdörren vidöppen för internet.

Låt oss börja med det uppenbara: AWS är ett odjur

Du kan bygga praktiskt taget vad som helst med AWS. Från tvåpersoners startups till spretiga företagsplattformar, byggstenarna finns alla där - EC2, Lambda, RDS, S3, IAM, VPCs, listan fortsätter. Haken? Ju fler alternativ du har, desto lättare är det att skapa en trasslig röra.

Det är inte så att AWS är dåligt utformat. Det är bara det att du måste utforma det ordentligt. Annars slutar det med vad vissa team kallar "molnspagetti": tjänster som är beroende av varandra, hårdkodade hemligheter, ingen taggning, ingen loggning och absolut ingen aning om vad som kostar hur mycket.

Tillförlitlighet och säkerhet är inte en självklarhet

Det är frestande att behandla säkerhet och tillförlitlighet som framtida problem. "Vi säkrar det efter att vi har gått live." "Vi lägger till övervakning i nästa sprint." Men fråga vem som helst som har varit med om ett dataintrång eller ett avbrott på flera timmar - att hoppa över de stegen är det som gör att du till slut måste jobba hela natten.

Vad tillförlitlighet verkligen betyder

Det här handlar inte om drifttidsgarantier på ett bildspel. Det handlar om teknik för misslyckande. Tjänster går ner. Diskar går sönder. API:er får timeout. Det som är viktigt är om ditt system fortsätter att fungera när saker går sönder.

Har du redundans över tillgänglighetszoner? Kan ditt system tolerera en felaktig databasnod utan att förlora data eller göra fel? Kör du kritiska arbetsbelastningar i en enda region för att "det var det som var enklast att distribuera"? Det här är de frågor som skiljer fungerande system från motståndskraftiga.

Och säkerhet? Det är inte bara IAM

Ja, identitets- och åtkomsthantering (IAM) är den första väggen. Men säkerheten sträcker sig långt bortom det. Offentligt tillgängliga S3-hinkar. Roller med överdrivna behörigheter. Hemligheter hårdkodade i Lambda-funktioner. Loggning stängs av "för att spara kostnader". Alla dessa är tidsinställda bomber.

Genom att använda aws well architected-ramverket kan du identifiera dessa problem innan de exploderar. Ramverket delar upp arkitekturen i fem nyckelområden - säkerhet, tillförlitlighet, operativ excellens, prestandaeffektivitet och kostnadsoptimering - och tvingar teamen att utvärdera varje område på ett ärligt sätt. Det är inte en silverkula, men det tvingar dig att ställa svåra frågor.

De byggstenar som faktiskt betyder något

Okej, låt oss gå in på kärnan. Här är vad som är viktigt när du bygger säker, pålitlig arkitektur på AWS - och var team oftast gör fel.

Använd IAM-roller på rätt sätt (ja, verkligen)

IAM-roller är kraftfulla. För kraftfulla, ibland. Det är alldeles för lätt att sätta på "AdministratorAccess" för att något inte fungerar, lova att fixa det senare ... och sedan aldrig fixa det.

Möt Ranktracker

Allt-i-ett-plattformen för effektiv SEO

Bakom varje framgångsrikt företag finns en stark SEO-kampanj. Men med otaliga optimeringsverktyg och tekniker att välja mellan kan det vara svårt att veta var man ska börja. Nåväl, frukta inte längre, för jag har precis det som kan hjälpa dig. Jag presenterar Ranktracker, en allt-i-ett-plattform för effektiv SEO.

Vi har äntligen öppnat registreringen av Ranktracker helt gratis!

Skapa ett kostnadsfritt konto

Eller logga in med dina autentiseringsuppgifter

Du måste låsa fast det här tidigt. Principen om minsta möjliga privilegium är inte bara en bästa praxis - det är det enda vettiga sättet att arbeta på. Det betyder..:

  • Skopade roller per tjänst

  • Undvik jokertecken i behörigheter

  • Kortlivade autentiseringsuppgifter

  • Obligatorisk MFA för mänskliga användare

Låter det som en smärta? Det är det också. Men det är det också att förklara för din chef varför någon exfiltrerade kunddata från en felkonfigurerad Lambda.

Separera ditt nätverk som om du menar det

Detta är ett annat område där genvägar slår tillbaka. Du behöver inte en superkomplex nätverksinställning, men vissa grunder går långt:

  • Offentliga subnät endast för saker som måste möta internet (t.ex. ALB:er)

  • Privata subnät för allt annat

  • NAT-gateways för kontrollerad utgående åtkomst

  • VPC-slutpunkter för AWS-tjänstetrafik utan att träffa det offentliga internet

En platt VPC med allt på samma subnät kanske känns enkelt. Tills något går sönder och tar med sig allt.

Loggning och övervakning: Du kan inte åtgärda det du inte kan se

Det här borde inte ens vara uppe för debatt längre. Loggning är inte valfritt. Om du inte fångar CloudTrail, CloudWatch-mätvärden och VPC-flödesloggar, flyger du i blindo.

Men här är haken - enbart loggning är inte tillräckligt. Du måste faktiskt titta på loggarna. Skapa varningar för de saker som är viktiga. Filtrera bort bruset. Och se till att loggarna är centraliserade över konton och regioner. Fragmenterad synlighet är ingen synlighet.

Kryptera allt (inga undantag)

Använd KMS för data i vila. Använd TLS för data i transit. Rotera nycklar. Övervaka åtkomst. Det här är ett av de områden där det blir mycket dyrt senare att vara lat nu.

Och glöm inte bort saker som RDS-kryptering, EBS-volyminställningar och API Gateway TLS-verkställighet. De här små detaljerna gör skillnad.

Infrastruktur som kod eller inte

Gör du fortfarande driftsättningar genom att klicka runt i AWS-konsolen? Det är bra för dev, men farligt för prod.

Använd Terraform, CloudFormation eller CDK. Oavsett vad ditt team föredrar - välj bara ett och håll dig till det. Versionskontrollera dina mallar. Använd CI/CD för att distribuera. Automatisera rollbacks. Manuella driftsättningar är en öppen inbjudan till misstag.

Dessutom: tagga allt. Resurser utan taggar är som kablar utan etiketter - ingen vet vad de är till för och alla är rädda för att röra vid dem.

Skalning utan att sjunka

Låt oss vara tydliga: AWS älskar när du överprovisionerar. Du får "prestanda", de får dina pengar. Effektiv skalning handlar om att känna till dina mönster - och planera för dem.

Använd grupper för automatisk skalning, spotinstanser (försiktigt) och cachelager. Men ännu viktigare: testa under belastning. Det sista du vill är att upptäcka att din RDS-instans smälter under verklig trafik två dagar efter lanseringen.

Möt Ranktracker

Allt-i-ett-plattformen för effektiv SEO

Bakom varje framgångsrikt företag finns en stark SEO-kampanj. Men med otaliga optimeringsverktyg och tekniker att välja mellan kan det vara svårt att veta var man ska börja. Nåväl, frukta inte längre, för jag har precis det som kan hjälpa dig. Jag presenterar Ranktracker, en allt-i-ett-plattform för effektiv SEO.

Vi har äntligen öppnat registreringen av Ranktracker helt gratis!

Skapa ett kostnadsfritt konto

Eller logga in med dina autentiseringsuppgifter

Reservera också kapacitet när det är vettigt. Det sparar pengar och förhindrar överraskande provisioneringsfel.

Planer för katastrofåterställning är inte valfria

Vad händer om en region går ner? Vad händer om din primära databas blir korrupt? Om svaret är "eh... vi skulle få problem", är det dags att omarbeta din DR-strategi.

Möt Ranktracker

Allt-i-ett-plattformen för effektiv SEO

Bakom varje framgångsrikt företag finns en stark SEO-kampanj. Men med otaliga optimeringsverktyg och tekniker att välja mellan kan det vara svårt att veta var man ska börja. Nåväl, frukta inte längre, för jag har precis det som kan hjälpa dig. Jag presenterar Ranktracker, en allt-i-ett-plattform för effektiv SEO.

Vi har äntligen öppnat registreringen av Ranktracker helt gratis!

Skapa ett kostnadsfritt konto

Eller logga in med dina autentiseringsuppgifter

Det betyder inte att du ska bygga en identisk kopia av din infrastruktur i en annan region. Det betyder att man ska veta:

  • Vad du skulle återställa

  • Hur lång tid det skulle ta

  • Vilken data som skulle gå förlorad (om någon)

  • Vem ansvarar för vad under en failover

Och ja - du bör testa din återställningsplan. Annars är den bara fiktion.

Vanliga anti-mönster att undvika

Låt oss snabbt dra några "no-no's" som dyker upp alldeles för ofta:

  • Ett stort konto för allt: använd AWS Organizations. Separera prod, dev, staging, etc.

  • Lämna standard-VPC:er och säkerhetsgrupper orörda: lås ner dem.

  • Överförlitar sig på t2.micro-instanser "för testning" - de kommer att hamna i prod så småningom.

  • Att inte budgetera för CloudWatch-kostnader: ja, loggning kostar pengar. Att inte logga kostar mer.

  • Att ge tillgång till "bara fixa det snabbt": fixa din process istället.

Slutord? Håll dig flexibel, håll dig sund

Molnarkitektur handlar inte om att hitta den perfekta installationen. Det handlar om att bygga något som är flexibelt, robust och begripligt för fler än bara den person som skrev det.

Du är aldrig riktigt "klar" - och det är okej. Det som betyder något är att vara avsiktlig. Att ställa svåra frågor tidigt. Att göra revisioner ofta. Automatisera där det räknas. Och att veta när man ska kalla på hjälp.

För låt oss vara ärliga - AWS är kraftfullt, men det är också lätt att gå vilse i det. Att arbeta med erfarna ingenjörer som lever och andas molnarkitektur kan göra skillnaden mellan "det fungerar, för det mesta" och "vi sover gott om natten".

Och det är värt att bygga för.

Felix Rose-Collins

Felix Rose-Collins

Ranktracker's CEO/CMO & Co-founder

Felix Rose-Collins is the Co-founder and CEO/CMO of Ranktracker. With over 15 years of SEO experience, he has single-handedly scaled the Ranktracker site to over 500,000 monthly visits, with 390,000 of these stemming from organic searches each month.

Börja använda Ranktracker... gratis!

Ta reda på vad som hindrar din webbplats från att rankas.

Skapa ett kostnadsfritt konto

Eller logga in med dina autentiseringsuppgifter

Different views of Ranktracker app