Containersäkerhet i AKS aktiverat av Azure Arc
Gäller för: AKS på Azure Local 22H2, AKS på Windows Server
Den här artikeln beskriver olika metoder för att skydda containrar som används för att paketera och distribuera program och undvika att införa säkerhetsrisker i AKS som aktiveras av Azure Arc.
Containrar ger drift- och säkerhetsfördelar eftersom program och tjänster separeras i en miljö. Containrar bidrar också till att minska effekterna av systemomfattande fel på grund av deras abstraktion, vilket säkerställer drifttid och förhindrar attacker som kan äventyra program eller tjänster. Containrar körs vanligtvis på ett abstrakt lager ovanpå värdoperativsystemet, och abstraktionen erbjuder en viss barriär för separation och möjlighet att tillämpa en skiktad försvarsmodell.
Du kan också konfigurera kontinuerlig containersäkerhet genom att skydda containerpipelinen, programmet och containerdistributionsmiljön. I följande avsnitt beskrivs några rekommenderade metoder för att implementera containersäkerhet.
Säkra bilder
För att förhindra obehörig åtkomst är du värd för avbildningarna i ett säkert och betrott register. Avbildningarna ska ha ett TLS-certifikat med en betrodd rotcertifikatutfärdare och registret bör använda rollbaserad åtkomstkontroll (RBAC) med stark autentisering. Du bör inkludera en avbildningsgenomsökningslösning när du utformar CI/CD för containerversionen och leveransen. Bildgenomsökningslösningen hjälper till att identifiera vanliga sårbarheter och exponeringar (CVE) och ser till att exploaterbara avbildningar inte distribueras utan reparation.
Harden-värdmiljö
En viktig aspekt av containersäkerheten är behovet av att förstärka säkerheten för de system som containrarna körs på och hur de fungerar under körningen. Containersäkerhet bör fokusera på hela stacken, inklusive din värd och daemonerna. Du bör ta bort tjänster från värden som inte är kritiska och du bör inte distribuera icke-kompatibla containrar i miljön. På så sätt kan åtkomst till värden endast ske via containrarna och kontrollen centraliseras till containerns daemon, vilket tar bort värden från attackytan. De här stegen är särskilt användbara när du använder proxyservrar för att komma åt dina containrar, vilket av misstag kan kringgå dina säkerhetskontroller för containrar.
Begränsa containerresurser
När en container komprometteras kan angripare försöka använda de underliggande värdresurserna för att utföra skadliga aktiviteter. Det är en bra idé att ange minnes- och CPU-användningsgränser för att minimera effekten av överträdelser.
Skydda hemligheter korrekt
En hemlighet är ett objekt som innehåller känslig information som kan behöva skickas mellan värden och containern, till exempel lösenord, SSL/TLS-certifikat, privata SSH-nycklar, token, anslutningssträng och andra data som inte ska överföras i oformaterad text eller lagras okrypterade. Du bör hålla alla hemligheter borta från avbildningarna och montera dem via containerorkestreringsmotorn eller en extern hemlighetshanterare.
Övningsisolering
Använd isolering och använd inte en privilegierad användare eller rotanvändare för att köra programmet i en container. Undvik att köra containrar i privilegierat läge eftersom det kan göra att en angripare enkelt kan eskalera behörigheter om containern komprometteras. Att känna till UID (unik identifieringskod) och GID (gruppidentifieringskod) för rotanvändaren i en container kan tillåta en angripare att komma åt och ändra de filer som skrivits av roten på värddatorn. Det är också nödvändigt att använda principen om minsta behörigheter där ett program bara har åtkomst till de hemligheter det behöver. Du kan skapa en programanvändare för att köra programprocessen.
Distribuera körningssäkerhetsövervakning
Eftersom det fortfarande finns en risk att bli komprometterad även efter att ha vidtagit försiktighetsåtgärder mot attacker på din infrastruktur är det viktigt att kontinuerligt övervaka och logga programmets beteende för att förhindra och identifiera skadliga aktiviteter. Verktyg som Prometheus är ett effektivt sätt att övervaka infrastrukturen.