Service Accounts och Workload Identity
Lär dig hur Service Accounts ger Pods en egen identitet, hur deras tokens fungerar och hur du ger dem åtkomst enligt minsta privilegium.
Service Accounts och Workload Identity är en gratis lektion i Grunderna i Kubernetes på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Grunderna i Kubernetes, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Grunderna i Kubernetes innehåller totalt 4 lektioner.
Identitet för arbetsbelastningar
Användare autentiserar sig mot Kubernetes, men Pods behöver också en identitet för att kunna kommunicera säkert med API-servern. Den identiteten är ett Service Account.
Vad är ett Service Account?
Ett ServiceAccount är ett namespaced-objekt som representerar identiteten för en arbetsbelastning. Varje Pod körs under ett sådant konto och använder default om Ni inte anger något annat.
apiVersion: v1
kind: ServiceAccount
metadata:
name: report-generator
namespace: analyticsTilldela en Pod ett Service Account
Ange serviceAccountName i Pod-specifikationen för att köra under en viss identitet.
apiVersion: v1
kind: Pod
metadata:
name: reporter
spec:
serviceAccountName: report-generator
containers:
- name: app
image: reporter:1.0Den monterade tokenen
Kubernetes monterar en kortlivad JWT-token för Service Account-kontot i Podden. Den används för att autentisera API-anrop.
# inside the Pod
cat /var/run/secrets/kubernetes.io/serviceaccount/tokenVarför standardkontot är riskabelt
default-kontot av typen ServiceAccount delas av alla Pods i ett namespace. Om Ni ger det behörigheter exponeras allt för mycket. Använd hellre ett dedikerat konto per arbetsbelastning.
Inaktivera automatisk montering av tokens
Om en Pod aldrig anropar API:t bör Ni inaktivera tokenmontering för att minska attackytan.
apiVersion: v1
kind: Pod
metadata:
name: no-api-pod
spec:
automountServiceAccountToken: false
containers:
- name: app
image: myapp:1.0Bevilja behörigheter med RBAC
Ett Service Account har ingen behörighet förrän Ni binder det till en Role. Subjektet i RoleBinding är Service Account-kontot.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: reporter-read
namespace: analytics
subjects:
- kind: ServiceAccount
name: report-generator
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.ioMinsta möjliga behörighet i praktiken
- Ett Service Account per arbetsbelastning
- Bevilja endast de verbs och resurser som verkligen behövs
- Begränsa till ett namespace med Role när det är möjligt, inte ClusterRole
Bundna, projicerade tokens
Moderna tokens är projicerade och bundna till Poddens livslängd, med kort giltighetstid. De roteras automatiskt, så en läckt token är betydligt mindre farlig än de gamla långlivade hemligheterna.
Workload Identity i molnet
Molnplattformar kopplar ett Kubernetes ServiceAccount till en molnidentitet i IAM (t.ex. IRSA på AWS och Workload Identity på GKE), så att Pods kan komma åt molnresurser utan att lagra statiska autentiseringsuppgifter.
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123:role/report-roleVerifiera behörigheter
Använd kubectl auth can-i och imitera Service Account-kontot för att bekräfta att det har exakt den åtkomst Ni förväntar Er.
kubectl auth can-i list pods \
--as=system:serviceaccount:analytics:report-generator \
-n analyticsSnabbkontroll
Testa Era kunskaper om Service Accounts.
Sammanfattning
Ni har lärt Er att ett ServiceAccount ger en Pod en egen identitet, baserad på kortlivade projicerade tokens. Tillämpa principen om minsta möjliga behörighet med ett dedikerat konto per arbetsbelastning, bevilja åtkomst via RBAC-bindningar, inaktivera tokenmontering när den inte används och koppla konton till moln-IAM för åtkomst utan autentiseringsuppgifter.
Lär dig Grunderna i Kubernetes med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Service Accounts och Workload Identity” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Grunderna i Kubernetes, inklusive ”Service Accounts och Workload Identity”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Grunderna i Kubernetes innehåller totalt 4 lektioner.
Vad lär jag mig i ”Service Accounts och Workload Identity”?
Lär dig hur Service Accounts ger Pods en egen identitet, hur deras tokens fungerar och hur du ger dem åtkomst enligt minsta privilegium. Ni övar på Grunderna i Kubernetes med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Grunderna i Kubernetes?
Du behöver inga förkunskaper. Utbildningen i Grunderna i Kubernetes på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Service Accounts och Workload Identity”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Grunderna i Kubernetes-lektionen?
Ja. Varje Grunderna i Kubernetes-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Rollbaserad åtkomstkontroll (RBAC)
- Nätverksprinciper för isolering
- Säkerhetsstandarder för Pods
- Service Accounts och Workload Identity