Authenticatie in Kubernetes

Als je nieuw bent met Kubernetes, kan de manier waarop je authenticeert verwarrend zijn. Kubernetes biedt geen centrale mogelijkheid om gebruikersaccount te maken zoals je dat gewend bent van meer traditionele systemen. Wil je een gebruiker in Kubernetes aanmaken, lees dan dit artikel over de mogelijkheden die je hebt om dat te doen.

Belangrijk om te vermelden is dat er een belangrijk verschil zit tussen de authenticatie, waarmee je toegang krijgt tot je Kubernetes cluster, en de autorisatie waarmee bepaald welke rechten je hebt binnen je cluster. Hoewel authenticatie en autorisatie nauw samenhangen, gaat dit artikel specifiek over het faciliteren van toegang tot een cluster en niet over de rechten die een gebruiker heeft binnen een cluster. Lees daar meer over in ons artikel over RBAC.

Relevante achtergrondinformatie

De Kubernetes API is op twee poorten te bereiken: op de secure port (standaard is dat poort 6443) en op de insecure poort (poort 8080). Als je gebruikt maakt van de Secure URL van Kubernetes, dan dien je je te authenticeren om succesvol een verbinding met je cluster tot stand te brengen. Maak je gebruik van de insecure poort (doorgaans op poort 8080), dan is authenticatie niet nodig. Via de insecure poort kan je zonder verdere authenticatie toegang tot je cluster krijgen. Het is daarom onverstandig om deze poort open te zetten voor de buitenwereld.

Ervanuitgaande dat je altijd gebruik maakt van de secure URL, dient iedere gebruiker of iedere applicatie die verbinding wil maken met je cluster zich te identificeren. Bij de meeste aanbieders van Managed Kubernetes kan je je cluster direct met Kubectl beheren, maar er zijn veel gevallen waarbij je op een andere manier met je cluster wilt communiceren. Denk aan integraties met deployment tools als Gitlab, Jenkins, externe beheertools of eigen integraties die interacteren met cluster.

Authenticatiemechanismen in Kubernetes

Zoals in de inleiding aangegeven, beschikt Kubernetes niet over een centrale vorm van gebruikersbeheer. Kubernetes biedt een aantal middelen waarmee je kunt identificeren. De standaard opties zijn echter ofwel onveilig (omdat je wachtwoorden als plain tekst opslaat) of erg complex in gebruik. Wij adviseren je daarom gebruik te maken van voorgeconfigureerde externe tools of hulpmiddelen voor de authenticatie van de account. Vervolgens kan je met RBAC rechten geven aan de geauthenticeerde gebruikers.

Guard van AppsCode

Guard van AppsCode is een applicatie die je in staat stelt om met Kubernetes te authenticeren door middel van gebruikersaccount op onder andere Github, Gitlab, Azure en Google. Guard draait binnen je Kubernetes cluster en werkt onafhankelijk van je Kubernetes-provider.

Kubernetes op AWS, Azure en Google Cloud

De bekende Kubernetes-aanbieders hebben vaak hun eigen methode om te authenticeren. Maak je gebruik van Elastic Kubernetes Service van AWS, dan kan je gebruik maken van IAM. Gebruik je Kubernetes in Google Cloud dan kan je authenticeren met je Google Account, en in het geval van de Azure Kubernetes Service biedt Active Directory een goede uitkomst.

Rancher

Rancher biedt de mogelijkheid om je volledige Kubernetes-cluster te beheren en heeft de mogelijkheid om gebruikers te laten authenticeren met een account van Github, Active Directory, FreeIPA en meer. Het werkt out-of-the box en is een aanrader als je Kubernetes-provider geen standaard authenticatie-oplossing biedt.

Authenticatie in Rancher

Meer over authenticatie of hulp nodig?

Er zijn veel manieren waarop je het authenticatieproces van Kubernetes kunt inrichten. Wil je op technisch gebied meer weten, dan adviseren we je om te beginnen met de documentatie op kubernetes.io. Heb je hulp nodig of wil je advies met betrekking tot de inrichting van authenticatie? Neem dan contact met ons op, wij helpen je graag.