Kubelet Authentication & Authorization

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Kubelet Verifikasie

Van die dokumente af:

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:

"authentication": {
"anonymous": {
"enabled": true
},
  • 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-bediener

  • begin die kubelet met die --authentication-token-webhook en --kubeconfig vlae of gebruik die volgende instelling:

"authentication": {
"webhook": {
"cacheTTL": "2m0s",
"enabled": true
},

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:

"authentication": {
"x509": {
"clientCAFile": "/etc/kubernetes/pki/ca.crt"
}
}

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:

"authorization": {
"mode": "Webhook",
"webhook": {
"cacheAuthorizedTTL": "5m0s",
"cacheUnauthorizedTTL": "30s"
}
},

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 werkwoordversoek 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 APIhulpbronsubhulpbron

/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:

curl -k --header "Authorization: Bearer ${TOKEN}" 'https://172.31.28.172:10250/pods'
Forbidden (user=system:node:ip-172-31-28-172.ec2.internal, verb=get, resource=nodes, subresource=proxy)
  • 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

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated