[vc_row type=»vc_default»][vc_column][dt_fancy_title title=»Sikkerhet i Kubernetes – Azure Kubernetes Service (AKS)» title_align=»left» title_size=»h2″ title_color=»custom» custom_title_color=»#0c0c0c»][vc_column_text]
Sikkerhet i Kubernetes (heretter K8s) kan deles inn i 4 lag:
[/vc_column_text][dt_fancy_image image_id=»2840″ width=»600″ border_radius=»1px» image_decoration=»shadow» shadow_color=»rgba(0,0,0,0.6)» image_scale_animation_on_hover=»quick_scale» animation=»fadeInUp»][vc_column_text]
Kode
Kontainer
Cluster
Skytilbyder
[/vc_column_text][vc_column_text]
Kontaineren er et isolert navneområdet på en server. Det er ikke en egen virtuell maskin. Dette betyr at man teoretisk sett kan klare å eskalere sine rettigheter i kontaineren, og dermed flytte eller ekspandere navneområdet. På denne måten er det mulig å få tilgang til hele systemet.
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][ultimate_heading main_heading=»Hvordan?» alignment=»left»][/ultimate_heading][vc_column_text]
Heldigvis finnes det metoder å stanse skumle hensikter, og uhell. Enkle grep er å hindre muligheten for privilegie-eskalering på kontainer nivå, sette alle applikasjoner til å kjøre som en bruker med begrensede rettigheter, samt kryptering av all data.
Microsoft Azure anbefaler at man benytter seg av Azure Active Directory (AAD) for all kommunikasjon med skyen.
Det vil si at man registrerer en egen serverapplikasjon for autentisering mot AAD og på denne måten slipper at de forskjellige pods må kommunisere med omverden for å få tilgang. All tilgangskontroll går igjennom interne systemer, og man kan på en sikker måte implementere Azure Key Vault for nøkkelhåndtering, Azure Container Registry for Azure-Native versjonskontroll av kontainere, brukerkontroll og hundrevis av andre tjenester.
[/vc_column_text][ultimate_heading main_heading=»Tls for ingress-kontrolleren» heading_tag=»h3″ alignment=»left»][/ultimate_heading][vc_column_text]
Ingress kontrolleren må settes opp med tls kryptering. Dette gjør at all kommunikasjon til og fra clusteret er kryptert. ‘Let’s encrypt’ tilbyr gratis sertifikater.
[/vc_column_text][ultimate_heading main_heading=»Nettverks poliser» heading_tag=»h3″ alignment=»left»][/ultimate_heading][vc_column_text]
Strenge nettverkspoliser er en lett måte å hindre kommunikasjon utover det som er strengt nødvendig. Alle innkommende porter som ikke er i bruk må stenges. Ideelt sett skal alle poder være så isolert som mulig, og kunne snakke med andre poder innenfor samme nodeområde, og kun de som de faktisk trenger å kommunisere med.
Den eneste poden som skal snakke med internett er egress kontrolleren.
Det er også en god idé å være restriktiv på hvilke IP-adresser som tillates for inngående kommunikasjon.
[/vc_column_text][ultimate_heading main_heading=»Skanning av kontainere for sårbarheter» heading_tag=»h3″ alignment=»left»][/ultimate_heading][vc_column_text]
Konteinere finnes fritt tilgjengelig på dockerhub. En av farene med dette er at man ikke nødvendigvis har god kontroll over hva som befinner seg inne i disse. Et godt konsept er å alltid ha et så minimalt konteinerbilde som mulig, med kun de applikasjoner og avhengigheter som er strengt nødvendige.
Angrepsflate og mengden sårbarheter øker eksponentielt med antall programmer som er installert i konteineren. Det er også meget lurt å skanne konteinerbildene regelmessig med et program som ‘snyk’.
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][ultimate_heading main_heading=»Bildesignering» heading_tag=»h3″ alignment=»left»][/ultimate_heading][vc_column_text]
Dersom en velger å benytte seg av ferdigbygde bilder er det alltid lurt å sjekke hvem avsenderen er. Velger du å stole på en tilbyder må du uansett være sikker på at bildet du bruker kommer fra den du tror.
En måte å gjøre dette på er å sjekke hash-summen som er oppgitt. Dette sikrer at bildet ikke har blitt endret på noen måte av et mellomledd.
[/vc_column_text][ultimate_heading main_heading=»Azure spesifikt» heading_tag=»h3″ alignment=»left»][/ultimate_heading][vc_column_text]
Så hva med Azure?
Du har gjort alt du kan for å sikre at bildet kommer fra den du tror, nettverkspoliser er satt, konteinertilgangen er potte tett og scanning av konteinere skjer regelmessig. Med Azure Kubernetes Service (heretter AKS), beveger vi oss ut på Node-nivå.
Microsoft anbefaler at man integrerer Azure Active Directory med K8s. Da har man RBAC, og mulighet for å finjustere tilgangen hver enkelt bruker har til noden. Man kan faktisk være så granulær at tilgangen kan strupes til et enkelt navneområde. For tilgang fra AKS til de ressurser du måtte ha på serverrommet er det mulig å benytte seg av Azure VPN, eller Azure Express Route som gir deg en egen, sikker, kryptert kanal direkte til Azure. Azure Express Route omgår til og med internettilbyderen.
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][ultimate_heading main_heading=»Konklusjon» heading_tag=»h3″ alignment=»left»][/ultimate_heading][vc_column_text]
Dersom du har behov for å kjøre dine mikrotjenester i Kubernetes eller AKS, og ønsker kompetansen til å gjøre dette på en sikker måte så ta kontakt med oss.
Vi hjelper dere!
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
#AzureKubernetesService #AKS #K8s #Kubernetes #AzureVPN #AAD #Sikkerhet
[/vc_column_text][/vc_column][/vc_row]