0Pricing
DevOps Bootcamp · Lektion

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

Einem 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.0

Das 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/token

Warum 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.0

Berechtigungen 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.io

Least 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-role

Berechtigungen ü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 analytics

Kurztest

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

  1. Rollenbasierte Zugriffskontrolle (RBAC)
  2. Network Policies zur Isolation
  3. Pod-Sicherheitsstandards
  4. Service Accounts und Workload Identity
← Zurück zu DevOps Bootcamp