Service Accounts und Workload Identity
Lernen Sie, wie Service Accounts Pods eine eigene Identität geben, wie ihre Tokens funktionieren und wie Sie ihnen Zugriff mit geringstmöglichen Berechtigungen gewähren.
Service Accounts und Workload Identity ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Identität für Workloads
Benutzer authentifizieren sich bei Kubernetes, aber auch Pods benötigen eine Identität, damit sie sicher mit dem API-Server kommunizieren können. Diese Identität ist ein Service Account.
Was ist ein ServiceAccount?
Ein ServiceAccount ist ein Namespace-Objekt, das die Identität eines Workloads repräsentiert. Jeder Pod wird unter einem solchen Konto ausgeführt; wenn Sie keines angeben, wird standardmäßig default verwendet.
apiVersion: v1
kind: ServiceAccount
metadata:
name: report-generator
namespace: analyticsEinem Pod einen Service Account zuweisen
Legen Sie serviceAccountName in der Pod-Spezifikation fest, damit der Pod unter einer bestimmten Identität ausgeführt wird.
apiVersion: v1
kind: Pod
metadata:
name: reporter
spec:
serviceAccountName: report-generator
containers:
- name: app
image: reporter:1.0Das eingebundene Token
Kubernetes bindet ein kurzlebiges JWT-Token für den Service Account in den Pod ein. Dieses Token dient zur Authentifizierung von API-Aufrufen.
# inside the Pod
cat /var/run/secrets/kubernetes.io/serviceaccount/tokenWarum das Standardkonto riskant ist
Der default-ServiceAccount wird von allen Pods in einem Namespace gemeinsam verwendet. Wenn Sie ihm Berechtigungen erteilen, wären alle Pods unnötig weitreichenden Zugriffen ausgesetzt. Verwenden Sie stattdessen bevorzugt ein eigenes Konto pro Workload.
Automatisches Einbinden von Tokens deaktivieren
Wenn ein Pod niemals die API aufruft, deaktivieren Sie das Einbinden von Tokens, um die Angriffsfläche zu verkleinern.
apiVersion: v1
kind: Pod
metadata:
name: no-api-pod
spec:
automountServiceAccountToken: false
containers:
- name: app
image: myapp:1.0Berechtigungen mit RBAC erteilen
Ein Service Account hat keine Berechtigungen, bis Sie ihn an eine Role binden. Das Subjekt der RoleBinding ist der Service Account.
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.ioLeast Privilege in der Praxis
- Ein Service Account pro Workload
- Erteilen Sie nur die Verben und Ressourcen, die tatsächlich benötigt werden
- Beschränken Sie den Zugriff nach Möglichkeit mit einer Role auf einen Namespace, statt eine ClusterRole zu verwenden
Gebundene, projizierte Tokens
Moderne Tokens werden projiziert und sind mit einer kurzen Ablaufzeit an die Lebensdauer des Pods gebunden. Sie werden automatisch rotiert, sodass ein geleaktes Token wesentlich weniger gefährlich ist als die alten langlebigen Secrets.
Workload Identity in der Cloud
Cloud-Plattformen ordnen einen Kubernetes-ServiceAccount einer Cloud-IAM-Identität zu, etwa IRSA auf AWS oder Workload Identity auf GKE. Dadurch können Pods auf Cloud-Ressourcen zugreifen, ohne statische Zugangsdaten zu speichern.
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123:role/report-roleBerechtigungen überprüfen
Verwenden Sie kubectl auth can-i und geben Sie dabei den Service Account als Identität an, um zu bestätigen, dass er genau die erwarteten Zugriffsrechte besitzt.
kubectl auth can-i list pods \
--as=system:serviceaccount:analytics:report-generator \
-n analyticsKurztest
Testen Sie Ihr Verständnis von Service Accounts.
Zusammenfassung
Sie haben gelernt, dass ein ServiceAccount einem Pod eine eigene Identität verleiht, die durch kurzlebige, projizierte Tokens abgesichert ist. Setzen Sie das Prinzip der geringsten Berechtigung mit einem eigenen Konto pro Workload um, erteilen Sie Zugriff über RBAC-Bindings, deaktivieren Sie ungenutzte Token-Einbindungen und ordnen Sie Konten Cloud-IAM-Identitäten zu, um ohne gespeicherte Zugangsdaten auf Ressourcen zuzugreifen.
Häufig gestellte Fragen
Ist die Lektion „Service Accounts und Workload Identity“ kostenlos?
Ja — der vollständige Text von „Service Accounts und Workload Identity“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Service Accounts und Workload Identity“?
Lernen Sie, wie Service Accounts Pods eine eigene Identität geben, wie ihre Tokens funktionieren und wie Sie ihnen Zugriff mit geringstmöglichen Berechtigungen gewähren. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Service Accounts und Workload Identity“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Rollenbasierte Zugriffskontrolle (RBAC)
- Network Policies zur Isolation
- Pod-Sicherheitsstandards
- Service Accounts und Workload Identity