Den här arkitekturen ger vägledning för att utforma en verksamhetskritisk arbetsbelastning som har strikta nätverkskontroller för att förhindra obehörig offentlig åtkomst från Internet till någon av arbetsbelastningsresurserna. Avsikten är att stoppa attackvektorer i nätverkslagret så att systemets övergripande tillförlitlighet inte påverkas. Till exempel kan en DDoS-attack (Distributed Denial of Service), om den lämnas omarkerad, göra att en resurs blir otillgänglig genom att överbelasta den med illegitima trafik.
Den bygger på den verksamhetskritiska baslinjearkitekturen, som fokuserar på att maximera tillförlitligheten och driftseffektiviteten utan nätverkskontroller. Den här arkitekturen lägger till funktioner för att begränsa inkommande och utgående sökvägar med lämpliga molnbaserade funktioner, till exempel Azure Virtual Network(VNet) och privata slutpunkter, Azure Private Link, Azure Privat DNS Zone och andra.
Vi rekommenderar att du bekantar dig med baslinjen innan du fortsätter med den här artikeln.
Viktiga designstrategier
Designstrategierna för verksamhetskritisk baslinje gäller fortfarande i det här användningsfallet. Här följer ytterligare nätverksöverväganden för den här arkitekturen:
Kontrollera inkommande trafik
Inkommande eller inkommande kommunikation till det virtuella nätverket måste begränsas för att förhindra skadliga attacker.
Använd funktioner för Web Application Firewall (WAF) på global nivå för att stoppa attacker vid nätverksgränsen närmare attackkällan.
Eliminera offentlig anslutning till Azure-tjänster. En metod är att använda privata slutpunkter.
Kontrollera trafiken innan den kommer in i nätverket. Nätverkssäkerhetsgrupper (NSG:er) i undernät hjälper till att filtrera trafik genom att tillåta eller neka flödet till de konfigurerade IP-adresserna och portarna. Den här kontrollnivån hjälper också till med detaljerad loggning.
Kontrollera utgående trafik
Utgående trafik från ett virtuellt nätverk till entiteter utanför nätverket måste begränsas. Brist på kontroller kan leda till dataexfiltreringsattacker från skadliga tjänster från tredje part.
Begränsa utgående trafik till Internet med hjälp av Azure Firewall. Brandväggen kan filtrera trafik detaljerat med hjälp av fullständigt kvalificerat domännamn (FQDN).
Balansera kompromisser med säkerhet
Det finns betydande kompromisser när säkerhetsfunktioner läggs till i en arbetsbelastningsarkitektur. Du kanske märker en viss inverkan på prestanda, driftsflexibilitet och till och med tillförlitlighet. Attacker , till exempel Denial-Of-Service (DDoS), dataintrång och andra, kan dock rikta systemets övergripande tillförlitlighet och så småningom orsaka otillgänglighet.
Strategierna baseras på den övergripande vägledningen för verksamhetskritiska arbetsbelastningar i väldefinierade verksamhetskritiska arbetsbelastningar. Vi föreslår att du utforskar designområdet för nätverk och anslutningar för rekommendationer och metodtips när du definierar din egen verksamhetskritiska arkitektur.
Arkitektur
Ladda ned en Visio-fil med den här arkitekturen.
Komponenterna i den här arkitekturen kan kategoriseras brett på det här sättet. Produktdokumentation om Azure-tjänster finns i Relaterade resurser.
Globala resurser
De globala resurserna lever länge och delar systemets livslängd. De har möjlighet att vara globalt tillgängliga inom ramen för en distributionsmodell för flera regioner. Mer information finns i Globala resurser.
Azure Front Door Premium SKU används som global lastbalanserare för tillförlitlig routning av trafik till de regionala distributionerna, som exponeras via privata slutpunkter.
Se Väldefinierade verksamhetskritiska arbetsbelastningar: Global trafikroutning.
Azure Cosmos DB for NoSQL används fortfarande för att lagra tillstånd utanför beräkningsklustret och har baslinjekonfigurationsinställningar för tillförlitlighet. Åtkomsten är begränsad till auktoriserade privata slutpunktsanslutningar.
Azure Container Registry används för att lagra alla containeravbildningar med geo-replikeringsfunktioner. Åtkomsten är begränsad till auktoriserade privata slutpunktsanslutningar.
Se Väldefinierade verksamhetskritiska arbetsbelastningar: Containerregister.
Regionala resurser
De regionala resurserna etableras som en del av en distributionsstämpel till en enda Azure-region. De är kortvariga för att ge mer återhämtning, skala och närhet till användare. Dessa resurser delar ingenting med resurser i en annan region. De kan tas bort oberoende av varandra eller replikeras till andra regioner. De delar dock globala resurser mellan varandra. Mer information finns i Regionala stämpelresurser.
Statisk webbplats i ett Azure Storage-konto är värd för ett ensidesprogram (SPA) som skickar begäranden till serverdelstjänster. Den här komponenten har samma konfiguration som baslinjeklientdelen. Åtkomsten är begränsad till auktoriserade privata slutpunktsanslutningar.
Azure Virtual Networks tillhandahåller säkra miljöer för att köra arbetsbelastnings- och hanteringsåtgärderna.
Intern lastbalanserare är programmets ursprung. Front Door använder det här ursprunget för att upprätta privat och direkt anslutning till serverdelen med hjälp av Private Link.
Azure Kubernetes Service (AKS) är orchestrator för serverdelsberäkning som kör ett program och är tillståndslös. AKS-klustret distribueras som ett privat kluster. Kubernetes API-servern exponeras därför inte för det offentliga Internet. Åtkomsten till API-servern är begränsad till ett privat nätverk. Mer information finns i artikeln Beräkningskluster i den här arkitekturen.
Se Väldefinierade verksamhetskritiska arbetsbelastningar: Container Orchestration och Kubernetes.
Azure Firewall inspekterar och skyddar all utgående trafik från Azure Virtual Network resurser.
Azure Event Hubs används som meddelandeförmedlare. Åtkomsten är begränsad till auktoriserade privata slutpunktsanslutningar.
Se Väldefinierade verksamhetskritiska arbetsbelastningar: Löst kopplad händelsedriven arkitektur.
Azure Key Vault används som det regionala hemlighetsarkivet. Åtkomsten är begränsad till auktoriserade privata slutpunktsanslutningar.
Se Väldefinierade verksamhetskritiska arbetsbelastningar: Skydd mot dataintegritet.
Distributionspipelineresurser
Bygg- och versionspipelines för ett verksamhetskritiskt program måste vara helt automatiserade för att garantera ett konsekvent sätt att distribuera en validerad stämpel.
GitHub används fortfarande för källkontroll som en git-baserad plattform med hög tillgänglighet.
Azure Pipelines väljs för att automatisera pipelines som krävs för att skapa, testa och distribuera en arbetsbelastning i förproduktions- och produktionsmiljöer.
Se Väldefinierade verksamhetskritiska arbetsbelastningar: DevOps-processer.
Lokalt installerade Azure DevOps-byggagentpooler används för att ha mer kontroll över byggen och distributioner. Den här nivån av autonomi krävs eftersom beräkningsklustret och alla PaaS-resurser är privata, vilket kräver en integrering på nätverksnivå som inte är möjlig på Microsoft-värdbaserade byggagenter.
Observerbarhetsresurser
Övervakningsdata för globala resurser och regionala resurser lagras oberoende av varandra. Ett enda centraliserat observerbarhetslager rekommenderas inte för att undvika en enskild felpunkt. Mer information finns i Observerbarhetsresurser.
Azure Log Analytics används som en enhetlig mottagare för att lagra loggar och mått för alla program- och infrastrukturkomponenter.
Azure Application Insights används som ett APM-verktyg (Application Performance Management) för att samla in alla programövervakningsdata och lagra dem direkt i Log Analytics.
Se Väldefinierade verksamhetskritiska arbetsbelastningar: Förutsägande åtgärder och AI-åtgärder.
Hanteringsresurser
En betydande designändring från baslinjearkitekturen är beräkningsklustret. I den här designen är AKS-klustret privat. Den här ändringen kräver att extra resurser etableras för att få åtkomst.
Azure Virtual Machine Scale Sets för privata byggagenter och jump box-instanser för att köra verktyg mot klustret, till exempel kubectl.
Azure Bastion ger säker åtkomst till virtuella jump box-datorer och tar bort behovet av att de virtuella datorerna har offentliga IP-adresser.
Privata slutpunkter för PaaS-tjänster
För att bearbeta affärs- eller distributionsåtgärder måste programmet och byggagenterna nå flera Azure PaaS-tjänster som etableras globalt, inom regionen och även inom stämpeln. I baslinjearkitekturen ligger kommunikationen över tjänsternas offentliga slutpunkter.
I den här designen har dessa tjänster skyddats med privata slutpunkter för att ta bort dem från offentlig Internetåtkomst. Den här metoden minskar den övergripande attackytan för att minimera direkt manipulering av tjänster från oväntade källor. Den introducerar dock en annan potentiell felpunkt och ökar komplexiteten. Tänk noga på kompromisserna med säkerheten innan du använder den här metoden.
Privata slutpunkter ska placeras i ett dedikerat undernät för stämpelns virtuella nätverk. Privata IP-adresser till de privata slutpunkterna tilldelas från det undernätet. I princip kan alla resurser i det virtuella nätverket kommunicera med tjänsten genom att nå den privata IP-adressen. Kontrollera att adressutrymmet är tillräckligt stort för att rymma alla privata slutpunkter som krävs för den stämpeln.
Om du vill ansluta över en privat slutpunkt behöver du en DNS-post. Vi rekommenderar att DNS-poster som är associerade med tjänsterna sparas i Azure Privat DNS zoner som hanteras av Azure DNS. Kontrollera att det fullständigt kvalificerade domännamnet (FQDN) matchar den privata IP-adressen.
I den här arkitekturen har privata slutpunkter konfigurerats för Azure Container Registry, Azure Cosmos DB, Key Vault, Lagringsresurser och Event Hubs. Dessutom distribueras AKS-klustret som ett privat kluster, vilket skapar en privat slutpunkt för Kubernetes API-tjänsten i klustrets nätverk.
Det finns två virtuella nätverk som etableras i den här designen och båda har dedikerade undernät för att lagra privata slutpunkter för alla dessa tjänster. Nätverkslayouten beskrivs i Layout för virtuellt nätverk.
När du lägger till fler komponenter i arkitekturen bör du överväga att lägga till fler privata slutpunkter. Du kan till exempel lägga till begränsningar för observerbarhetsresurserna. Både Azure Log Analytics och Azure Application Insights stöder användningen av privata slutpunkter. Mer information finns i Använda Azure Private Link för att ansluta nätverk till Azure Monitor.
De kan skapas i samma eller olika undernät i samma virtuella nätverk. Det finns gränser för antalet privata slutpunkter som du kan skapa i en prenumeration. Mer information finns i Azure-gränser.
Kontrollera åtkomsten till tjänsterna ytterligare med hjälp av nätverkssäkerhetsgrupper i undernätet.
Privat ingress
Azure Front Door Premium SKU används som global startpunkt för all inkommande klienttrafik. Den använder funktioner för Web Application Firewall (WAF) för att tillåta eller neka trafik vid nätverksgränsen. De konfigurerade WAF-reglerna förhindrar attacker redan innan de går in i de virtuella stämpelnätverken.
Den här arkitekturen utnyttjar också Front Door-funktionen för att använda Azure Private Link för att komma åt programmets ursprung utan att använda offentliga IP-adresser/slutpunkter på serverdelarna. Detta kräver en intern lastbalanserare i det virtuella stämpelnätverket. Den här resursen finns framför Kubernetes Ingress Controller som körs i klustret. Ovanpå den här privata Load Balancer skapas en Private Link-tjänst av AKS, som används för den privata anslutningen från Front Door.
När anslutningen har upprättats har privata slutpunkter i Front Door-nätverket direktanslutning med lastbalanseraren och den statiska webbplatsen i stämpelnätverket över Private Link.
Mer information finns i Så här fungerar Private Link.
Se Väldefinierade verksamhetskritiska arbetsbelastningar: Programleveranstjänster.
Begränsad utgående
Program kan kräva viss utgående Internetanslutning. Genom att styra trafiken kan du begränsa, övervaka och begränsa utgående trafik. Annars kan oväntad inifrån och ut-åtkomst leda till komprometterande och potentiellt ett opålitligt systemtillstånd. Begränsad utgående åtkomst kan också lösa andra säkerhetsproblem, till exempel dataexfiltrering.
Med hjälp av brandväggs- och nätverkssäkerhetsgrupper (NSG:er) kan du se till att utgående trafik från programmet inspekteras och loggas.
I den här arkitekturen är Azure Firewall den enda utgående punkten och används för att inspektera all utgående trafik som kommer från det virtuella nätverket. Användardefinierade vägar (UDR) används i undernät som kan generera utgående trafik, till exempel programundernätet.
Information om hur du begränsar utgående trafik finns i Kontrollera utgående trafik för klusternoder i Azure Kubernetes Service (AKS).
Layout för virtuellt nätverk
Isolera regionala resurser och hanteringsresurser i separata virtuella nätverk. De har distinkta egenskaper, syften och säkerhetsöverväganden.
Typ av trafik: Regionala resurser, som deltar i bearbetning av affärsåtgärder, behöver högre säkerhetskontroller. Beräkningsklustret måste till exempel skyddas från direkt Internettrafik. Hanteringsresurser etableras endast för att få åtkomst till de regionala resurserna för åtgärder.
Livslängd: De förväntade livslängderna för dessa resurser är också olika. Regionala resurser förväntas vara kortlivade (tillfälliga). De skapas som en del av distributionsstämpeln och förstörs när stämpeln rivs. Hanteringsresurser delar regionens livslängd och ut live stämpelresurserna.
I den här arkitekturen finns det två virtuella nätverk: stämpla nätverk och driftnätverk. Skapa ytterligare isolering inom varje virtuellt nätverk med hjälp av undernät och nätverkssäkerhetsgrupper (NSG:er) för att skydda kommunikationen mellan undernäten.
Se Väldefinierade verksamhetskritiska arbetsbelastningar: Isolerade virtuella nätverk.
Virtuellt nätverk för regional stämpel
Distributionsstämpeln etablerar ett virtuellt nätverk i varje region.
Det virtuella nätverket är indelat i dessa huvudundernät. Alla undernät har nätverkssäkerhetsgrupper (NSG:er) tilldelade för att blockera obehörig åtkomst från det virtuella nätverket. NSG:er begränsar trafiken mellan programundernätet och andra komponenter i nätverket.
Programundernät
AKS-klusternodpoolerna är isolerade i ett undernät. Om du behöver isolera systemnodpoolen ytterligare från arbetsnodpoolen kan du placera dem i separata undernät.
Stämpelingressundernät
Startpunkten för varje stämpel är en intern Azure-Standard Load Balancer som placeras i ett dedikerat undernät. Den Private Link tjänst som används för den privata anslutningen från Front Door placeras också här.
Båda resurserna etableras som en del av stämpeldistributionen.
Stämpelutgående undernät
Azure Firewall placeras i ett separat undernät och inspekterar utgående trafik från programundernätet med hjälp av en användardefinierad väg (UDR).
Undernät för privata slutpunkter
Programundernätet måste ha åtkomst till PaaS-tjänsterna i den regionala stämpeln, Key Vault och andra. Dessutom krävs åtkomst till globala resurser som containerregistret. I den här arkitekturen är alla PaaS-tjänster låsta och kan bara nås via privata slutpunkter. Därför skapas ett annat undernät för dessa slutpunkter. Inkommande åtkomst till det här undernätet skyddas av NSG som endast tillåter trafik från programmet.
Du kan lägga till ytterligare begränsningar genom att använda UDR-stöd för privata slutpunkter, så att trafiken också kan ta sig ut via stämpelns utgående undernät.
Drift virtuellt nätverk
Den operativa trafiken isoleras i ett separat virtuellt nätverk. Eftersom AKS-klustrets API-tjänst är privat i den här arkitekturen måste all distributions- och drifttrafik också komma från privata resurser som lokala byggagenter och hopprutor. Dessa resurser distribueras i ett separat virtuellt nätverk med direkt anslutning till programresurserna via en egen uppsättning privata slutpunkter. Byggagenterna och hopprutorna finns i separata undernät.
I stället för att använda privata slutpunkter är en alternativ metod att använda peering för virtuella nätverk. Peering ökar dock komplexiteten som kan vara svår att hantera, särskilt när virtuella nätverk är utformade för att vara tillfälliga.
Både byggagenterna (och eventuellt hopprutorna) måste ha åtkomst till PaaS-tjänster som finns globalt och inom den regionala stämpeln. På samma sätt som det regionala virtuella stämpelnätverket skapas ett dedikerat undernät för de privata slutpunkterna till nödvändiga PaaS-tjänster. NSG i det här undernätet ser till att inkommande trafik endast tillåts från hanterings- och distributionsundernäten.
Hanteringsåtgärder
Ett vanligt användningsfall är när en operatör behöver åtkomst till beräkningsklustret för att köra hanteringsverktyg och kommandon. API-tjänsten i ett privat kluster kan inte nås direkt. Därför etableras hopprutor där operatorn kan köra verktygen. Det finns ett separat undernät för hopprutorna.
Men hopprutorna måste också skyddas från obehörig åtkomst. Direkt åtkomst till hopprutor genom att öppna RDP/SSH-portar bör undvikas. Azure Bastion rekommenderas för detta ändamål och kräver ett dedikerat undernät i det här virtuella nätverket.
Varning
Anslutning via Azure Bastion och hopprutor kan påverka utvecklarproduktiviteten, till exempel att köra felsökningsverktyg kräver ytterligare process. Var medveten om dessa effekter innan du bestämmer dig för att förstärka säkerheten för din verksamhetskritiska arbetsbelastning.
Du kan ytterligare begränsa åtkomsten till jump box-undernätet med hjälp av en NSG som endast tillåter inkommande trafik från Bastion-undernätet via SSH.
Distributionsåtgärder
Om du vill skapa distributionspipelines måste du etablera ytterligare beräkning för att köra byggagenter. Dessa resurser påverkar inte arbetsbelastningens körningstillgänglighet direkt, men ett tillförlitlighetsfel kan äventyra möjligheten att distribuera eller betjäna din verksamhetskritiska miljö. Därför bör tillförlitlighetsfunktioner utökas till dessa resurser.
Den här arkitekturen använder Virtual Machine Scale Sets för både byggagenter och hopprutor (till skillnad från enskilda virtuella datorer). Dessutom tillhandahålls nätverkssegmentering med hjälp av undernät. Ingress är begränsad till Azure DevOps.
Kostnadsöverväganden
Kostnaden för verksamhetskritiska arbetsbelastningar påverkas avsevärt. I den här arkitekturen leder teknikval som att använda Azure Front Door Premium SKU och etablera Azure Firewall i varje stämpel till ökade kostnader. Det finns också extra kostnader för underhåll och driftresurser. Sådana kompromisser måste övervägas noggrant innan en nätverkskontrollerad version av baslinjearkitekturen antas.
Distribuera den här arkitekturen
Nätverksaspekterna i den här arkitekturen implementeras i den verksamhetskritiska anslutna implementeringen.
Anteckning
Den anslutna implementeringen är avsedd att illustrera en verksamhetskritisk arbetsbelastning som förlitar sig på organisationsresurser, integrerar med andra arbetsbelastningar och använder delade tjänster. Den bygger på den här arkitekturen och använder de nätverkskontroller som beskrivs i den här artikeln. I det anslutna scenariot förutsätts dock att det redan finns virtuella privata nätverk eller Azure Privat DNS Zone i anslutningsprenumerationen för Azure-landningszoner.
Nästa steg
Mer information om designbeslut som fattas i den här arkitekturen finns i designområdet för nätverk och anslutningar för verksamhetskritiska arbetsbelastningar i Azure Well-architected Framework.
Relaterade resurser
Produktdokumentation om De Azure-tjänster som används i den här arkitekturen finns i de här artiklarna.