Att acceptera VPC-fjärråtkomst kräver avvisningstester
En fungerande VPN-inloggning är första raden i acceptanstabellen, inte den sista. Skriv ner förväntade avvisningar för varje roll och testa de kontroller som avgör dem.
Acceptans av fjärråtkomst är en tabell med förväntade utfall, inte en skärmbild av en fungerande sida. För varje grupp skriver du ner vad som ska lyckas och vad som ska misslyckas, och kör sedan båda mot dedikerade testidentiteter i ett kontrollerat tidsfönster. Avvisningarna är den del som bevisar gränsen; en lyckad inloggning bevisar bara att tunneln finns. Allt detta fungerar med den VPN-produkt som redan valts.
Använd separata konton för testerna och märk dem så att ingen förväxlar en testidentitet med ett verkligt undantag.
Skriv gränsen som förväntade resultat
Börja med rollerna i stället för komponenterna: vem behöver vilken tjänst, varifrån och med vilken identitet. Ta ett illustrativt VPC: en grupp behöver testmiljön över HTTPS, en annan behöver en produktionsdatabas, och en tredje och mindre grupp administrerar själva gatewayen. Varje rad får ett förväntat tillstånd och en förväntad avvisning, inklusive tjänsten och kontot intill som inte ska fungera. Den tabellen är acceptanskriteriet, och personer som inte kör testerna kan granska den.
Testa databasinloggningen separat från nätverksvägen. En nåbar TCP-port ska inte göra ett icke-godkänt databaskonto framgångsrikt, och VPN-medlemskap ska inte skapa en moln-IAM-roll eller ge administrativ API-åtkomst. Det är tre oberoende kontroller, och de misslyckas oberoende.
En rutt är inte auktorisering
En rutt gör en väg möjlig; den ger inte tillstånd. Att hålla tillbaka en rutt är en svag ersättning för en begränsning som upprätthålls vid destinationen, eftersom en klient alltid kan lägga till sin egen rutt. Säkerhetsgruppen, databastilldelningen och applikationens egen auktorisering är fortfarande de kontroller som avgör. När ett test oväntat lyckas, titta först på destinationens policy och inte på den routingtabell du menade att klienten skulle ha.
Det är därför avvisningstesterna riktar sig mot serversidan: de resultaten kan inte ändras genom att redigera klienten.
Vilken källa ser kontrollen egentligen?
Källadressen som en kontroll utvärderar beror på gatewayarkitekturen. En gateway som driftas på EC2 kan vidarebefordra en routad pool, översätta till sin egen adress eller presentera en annan adress efter NAT; en hanterad Client VPN knyts till ett subnät och följer sin egen modell. Säkerhetsgrupper och nätverks-ACL:er ser det som anländer efter den behandlingen. Att granska en regel mot ett felaktigt antagande om källan är ett vanligt sätt att bygga en gräns som ser korrekt ut och släpper igenom fel trafik.
Korrelatera varje resultat med den minsta användbara händelsen: identitet och session, resurs, operation, tid och beslutet. Ett CloudTrail-API-anrop, en VPC-flödespost och en VPN-sessionslogg svarar på olika frågor, och ingen av dem är ensam en applikationsrevision.
Dra tillbaka en identitet och testa den igen
Ta med återkallelsen i samma tabell. Ta bort en testidentitet, bekräfta att en ny session avvisas, och bekräfta sedan separat hur befintliga sessioner behandlas, eftersom det är olika beteenden med olika ägare. Kontrollera vad som händer efter en omstart eller ett byte av gatewayen, så att ett handpåläggningstillägg inte försvinner tyst eller kommer tillbaka bredare. En gräns som bara håller till nästa utrullning är ingen gräns.
Inget av detta ersätter arbetet med patchning, återställning eller livscykeln för inloggningsuppgifter. Det gör ett snävare löfte mätbart: rätt människor når rätt tjänster, medan närliggande rutter, konton och administrationsytor håller sig utanför tilldelningen.
Behåll tabellen med utrullningen och kör den igen när gatewayen ändras. Testerna är billiga; antagandena bakom dem är det inte.