Kubelet Authentication & Authorization
Kubelet Verifikasie
Standaard word versoek aan die kubelet se HTTPS-einde wat nie deur ander gekonfigureerde verifikasiemetodes verwerp word nie, beskou as anonieme versoek, en word 'n gebruikersnaam van system:anonymous
en 'n groep van system:unauthenticated
toegeken.
Die 3 verifikasie metodes is:
Anoniem (verstek): Gebruik die instelling
--anonymous-auth=true
of die konfigurasie:
Webhook: Dit sal die kubectl API-baardertokens as outorisasie aktiveer (enige geldige token sal geldig wees). Sta dit toe met:
verseker dat die
authentication.k8s.io/v1beta1
API-groep geaktiveer is in die API-bedienerbegin die kubelet met die
--authentication-token-webhook
en--kubeconfig
vlae of gebruik die volgende instelling:
Die kubelet roep die TokenReview
API aan op die gekonfigureerde API-bediener om gebruikersinligting van draer tokens te bepaal
X509-kliëntsertifikate: Laat toe om te verifieer via X509-kliëntsertifikate
sien die apiserver-verifikasiedokumentasie vir meer besonderhede
begin die kubelet met die
--client-ca-file
vlag, deur 'n CA-bundel te voorsien om kliëntsertifikate mee te verifieer. Of met die konfigurasie:
Kubelet-gemagtiging
Enige versoek wat suksesvol geïdentifiseer is (insluitend 'n anonieme versoek) word daarna gemagtig. Die verstek gemagtigingsmodus is AlwaysAllow
, wat alle versoek toelaat.
Die ander moontlike waarde is egter webhook
(wat jy meestal daar sal vind). Hierdie modus sal die toestemmings van die geïdentifiseerde gebruiker nagaan om 'n aksie toe te laat of te weier.
Let daarop dat selfs as die anonieme identifisering geaktiveer is, die anonieme toegang moontlik geen toestemmings het om enige aksie uit te voer nie.
Die gemagtiging via webhook kan gekonfigureer word deur die parameter --authorization-mode=Webhook
te gebruik of via die konfigurasie lêer met:
Die kubelet roep die SubjectAccessReview
API aan op die gekonfigureerde API-bediener om te bepaal of elke versoek geautoriseer is.
Die kubelet autoriseer API-versoeke deur dieselfde versoekatribute benadering as die apiserver:
Aksie
HTTP werkwoord | versoek werkwoord |
---|---|
POST | skep |
GET, HEAD | kry (vir individuele hulpbronne), lys (vir versamelings, insluitend volledige objekinhoud), kyk (vir die kyk na 'n individuele hulpbron of versameling hulpbronne) |
PUT | opdateer |
PATCH | lap |
DELETE | verwyder (vir individuele hulpbronne), deletecollection (vir versamelings) |
Die hulpbron wat met die Kubelet API praat is altyd nodes en die subhulpbron word bepaal vanaf die inkomende versoek se pad:
Kubelet API | hulpbron | subhulpbron |
---|---|---|
/stats/* | nodes | stats |
/metrics/* | nodes | metrics |
/logs/* | nodes | log |
/spec/* | nodes | spec |
alle ander | nodes | proxy |
Byvoorbeeld, die volgende versoek het probeer om toegang tot die pod-inligting van die kubelet te verkry sonder toestemming:
Ons het 'n Verbode ontvang, so die versoek het die Geverifieeringskontrole geslaag. Indien nie, sou ons net 'n
Onbevoegd
boodskap gekry het.Ons kan die gebruikersnaam sien (in hierdie geval vanaf die token)
Kontroleer hoe die hulpbron nodes was en die subhulpbron proxy (wat sin maak met die vorige inligting)
Verwysings
Last updated