RBAC og servicekonti
Lås adgangen til clusteret ned.
RBAC og servicekonti er en gratis Cyber Security Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Cyber Security Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cyber Security Academy-kurset indeholder 4 lektioner i alt.
RBAC styrer alt
Rollebaseret adgangskontrol (RBAC) afgør, hvilke identiteter der må udføre hvilke handlinger på hvilke ressourcer i en klynge. Alle API-kald godkendes i henhold til RBAC. Fejlkonfigureret RBAC er den førende årsag til privilegieeskalering i klynger.
- Subjekter: brugere, grupper og servicekonti.
- Roller knytter verber til ressourcer.
- Bindinger forbinder subjekter med roller.
Roller kontra ClusterRoles
Der findes to omfang.
- Role + RoleBinding: tilladelser afgrænset til et namespace.
- ClusterRole + ClusterRoleBinding: tilladelser i hele klyngen.
En ClusterRoleBinding til cluster-admin giver fuld kontrol. Det er en hyppig og farlig fejl at give den til en servicekonto.
Tokens til servicekonti
Hver pod kører som en servicekonto og monterer som standard sit token. Det token er en legitimationsoplysning, som giver indehaveren servicekontoens RBAC-tilladelser. Hvis poden kompromitteres, bliver tokenet det også.
Moderne klynger udsteder projekterede tokens med kort levetid, som er bundet til en bestemt målgruppe, men ældre, langlivede tokens fra Secrets findes stadig.
# Inspect which service account a pod uses
kubectl get pod web -o jsonpath='{.spec.serviceAccountName}'Kortlægning af dine tilladelser
Når du har opsnappet et token, er det første skridt at finde ud af, hvad det kan. Kubernetes leverer et API til kontrol af egne tilladelser.
# What can this token do?
kubectl auth can-i --list
# Specific checks
kubectl auth can-i create pods
kubectl auth can-i create clusterrolebindingsFarlige kombinationer af tilladelser
Bestemte verber er byggesten til eskalering, selv uden cluster-admin.
create pods: planlæg en privilegeret pod eller en pod med hostPath for at bryde ud.create pods/exec: kør kommandoer i eksisterende pods.get/list secrets: læs legitimationsoplysninger i hele klyngen.create rolebindings/clusterrolebindings: bind dig selv til administrator.escalate/bind-verber: giv rettigheder, du ikke selv har.- impersonate: optræd som et andet, mere privilegeret subjekt.
Eskalering via oprettelse af pods
Hvis en servicekonto kan oprette pods, kan den ofte få kontrol over noden. Angriberen planlægger en pod, der monterer værtens filsystem eller kører privilegeret, og læser derefter nodens legitimationsoplysninger eller bryder ud.
# Pod spec snippet that mounts the host root
# volumes: hostPath path: / ; container mounts it at /host
kubectl apply -f evil-pod.yaml
kubectl exec -it evil -- chroot /host bashEskalering via binding
Hvis du kan oprette (cluster)rolebindings, kan du muligvis binde din servicekonto direkte til cluster-admin. Kubernetes beskytter dette med verberne bind/escalate, men fejlkonfigurerede roller tillader det nogle gange.
# Bind a service account to cluster-admin (if permitted)
kubectl create clusterrolebinding pwn \
--clusterrole=cluster-admin \
--serviceaccount=default:webMisbrug af identitetsefterligning
Verbet impersonate lader et subjekt optræde som enhver bruger, gruppe eller servicekonto. En identitet med brede rettigheder til identitetsefterligning har i praksis alle tilladelser i klyngen.
# Act as a privileged user via impersonation
kubectl get secrets --as=admin-user --as-group=system:mastersRevision af RBAC
Forsvarere bør løbende gennemgå RBAC for risikable tildelinger.
- Find de subjekter, der er bundet til cluster-admin.
- Markér verber eller ressourcer med jokertegnet (
*). - Opdag tildelinger af læseadgang til Secrets og oprettelse af pods på konti, der ikke er administratorer.
# Tools to audit RBAC
kubectl-who-can create pods
rbac-tool analysis
rakkess --as=system:serviceaccount:default:webHærdning af servicekonti
Anvend princippet om mindst mulige tilladelser på identiteter.
- Angiv
automountServiceAccountToken: false, når poden ikke har brug for API-adgang. - Giv hver arbejdsbelastning en dedikeret servicekonto med mindst mulige tilladelser.
- Undgå servicekontoen
defaulttil rigtige arbejdsbelastninger. - Brug kortlivede projekterede tokens med målgrupper; roter dem, og knyt dem til de rette målgrupper.
- Bind aldrig arbejdsbelastninger til cluster-admin.
Etisk test af RBAC
Ved vurdering af RBAC bør du foretrække ikke-destruktive kontroller (auth can-i, dry-run) frem for faktisk at oprette bindinger til cluster-admin i produktion. Hvis du skal bevise en eskalering, skal du begrænse den til et testnamespace og fjerne alle bindinger eller pods, du har oprettet.
Rapportér de præcise roller og bindinger, der muliggjorde eskaleringen, så de kan strammes.
Hurtigt tjek
Kontrollér din forståelse af RBAC.
Opsummering
Du har lært, hvordan RBAC og servicekonti styrer adgang til klyngen, og hvordan de kan udgøre en trussel mod den.
- RBAC knytter subjekter til verber på ressourcer; cluster-admin giver fuld kontrol.
- Pods monterer SA-tokens;
auth can-iviser deres rækkevidde. - create-pods, binding, secret-read og impersonate er byggesten til eskalering.
- Konti med mindst mulige tilladelser og deaktiveret automatisk montering hærder klyngen.
Næste emne: pod-sikkerhed og netværkspolitikker.
Lær Cyber Security Academy med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 76
- Lektioner
- 303
Ofte stillede spørgsmål
Er lektionen “RBAC og servicekonti” gratis?
Ja — alle 3 lektioner i læringssporet Cyber Security Academy, inklusive “RBAC og servicekonti”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Cyber Security Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “RBAC og servicekonti”?
Lås adgangen til clusteret ned. Du øver dig i Cyber Security Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cyber Security Academy?
Der kræves ingen tidligere erfaring. Cyber Security Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “RBAC og servicekonti”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cyber Security Academy-lektion?
Ja. Alle Cyber Security Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Kubernetes threat model
- RBAC og servicekonti
- Pod-sikkerhed og netværkspolitikker
- Sikring af supply chain og secrets