stackit.guru
DE

Confidential Kubernetes – Hardware-basierte Isolation

#confidential
confidential kubernetes security

Confidential Kubernetes – Hardware-basierte Isolation

Verschlüsselung schützt deine Daten at-rest und in-transit – aber was ist mit Daten, die gerade verarbeitet werden? Genau hier setzt Confidential Computing an. STACKIT Confidential Kubernetes nutzt hardware-basierte Trusted Execution Environments (TEEs), um deine Workloads selbst vor privilegierten Zugriffen auf Infrastrukturebene zu schützen.


Was ist Confidential Kubernetes?

Confidential Kubernetes erweitert reguläre Kubernetes-Cluster um hardware-gestützte Sicherheitsmechanismen:

  • Trusted Execution Environments (TEEs) – CPU-basierte Enklaven (z. B. Intel SGX, AMD SEV), die Code und Daten während der Verarbeitung isolieren.
  • Data-in-Use-Schutz – Selbst der Cloud-Provider kann den Speicherinhalt deiner Workloads nicht einsehen.
  • Confidential Containers – Container laufen innerhalb von TEEs, ohne dass du deinen Anwendungscode anpassen musst.
  • Attestierung – Kryptografischer Nachweis, dass dein Workload in einer vertrauenswürdigen Umgebung läuft.
  • Digitale Souveränität – Besonders relevant für deutsche Unternehmen mit strengen Datenschutzanforderungen.

Tutorial: Confidential Kubernetes Cluster einrichten

1. Confidential Cluster erstellen

Erstelle einen SKE-Cluster mit Confidential-Node-Pool:

stackit ske cluster create \
  --project-id your-project-id \
  --name "confidential-prod" \
  --node-pool name=confidential,machine-type=c1.confidential.2,count=3

2. Kubeconfig abrufen

Lade die Kubeconfig für deinen Cluster herunter:

stackit ske kubeconfig create \
  --project-id your-project-id \
  --cluster-name "confidential-prod" \
  > kubeconfig.yaml

export KUBECONFIG=./kubeconfig.yaml

3. Confidential Workload deployen

Erstelle ein Deployment, das in einer TEE-Umgebung läuft:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: secure-api
spec:
  replicas: 2
  selector:
    matchLabels:
      app: secure-api
  template:
    metadata:
      labels:
        app: secure-api
    spec:
      runtimeClassName: kata-cc
      nodeSelector:
        node.stackit.cloud/confidential: "true"
      containers:
        - name: api
          image: registry.stackit.cloud/your-project-id/secure-api:latest
          resources:
            limits:
              memory: "512Mi"
              cpu: "500m"

4. Attestierung prüfen

Verifiziere, dass dein Workload in einer TEE läuft:

kubectl exec -it deploy/secure-api -- cat /sys/firmware/tdx/attestation_report

5. Secrets sicher bereitstellen

Nutze Sealed Secrets oder einen externen KMS, um Secrets erst innerhalb der TEE zu entschlüsseln:

apiVersion: v1
kind: Secret
metadata:
  name: db-credentials
  annotations:
    confidential.stackit.cloud/encrypt: "true"
type: Opaque
data:
  username: <base64-encoded>
  password: <base64-encoded>

Nächste Schritte

  • Implementiere Remote Attestation in deiner CI/CD-Pipeline, um die Integrität deiner TEE-Umgebung automatisiert zu prüfen.
  • Kombiniere Confidential Kubernetes mit STACKIT Secrets Manager für sicheres Key-Management.
  • Evaluiere, welche deiner Workloads von Data-in-Use-Schutz profitieren (z. B. PII-Verarbeitung, Finanz-Transaktionen).
  • Lies die STACKIT-Dokumentation zu unterstützten TEE-Typen und Machine-Flavors.