Keine statischen Passwörter mehr zwischen den Diensten
Arbeitslastidentität und SPIFFE: Dienstleistungen ihre Identität beweisen lassen.
Arbeitslastidentität und SPIFFE: Dienstleistungen ihre Identität beweisen lassen.

Denken Sie darüber nach, wie Ihre Dienste sich gegenseitig und in der Cloud authentifizieren. In vielen Unternehmen ist die Antwort statische Anmeldeinformationen. Ein Zugangsschlüssel in einer Umgebungsvariablen. Ein geteiltes API-Token in einer Konfigurationsdatei. Ein Datenbankpasswort, das an fünf Orte kopiert wurde. Sie werden selten gedreht, und wenn eine undicht ist, weiß man oft nicht, wo sie sonst noch verwendet wird.
Menschen haben das vor einiger Zeit überwunden: Einfach-Anmeldevorgang, MFA, kurzlebige Sitzungen. Arbeitsaufwand verdient das Gleiche.
Statische Anmeldeinformationen haben drei große Schwächen:
Null Vertrauen ist die Idee, dass man nichts vertrauen sollte, nur weil es in deinem Netzwerk ist. Jede Anfrage sollte beweisen, von wem sie kommt. Für Workloads bedeutet das, jedem Service eine starke, überprüfbare Identität zu geben.
Der einfachste Gewinn: Lassen Sie Ihre Workloads mit ihren Plattformidentitäten anstelle von Schlüsseln an Cloud-Dienste authentifizieren.
Auf Kubernetes läuft jede Kapsel mit einem Dienstleistungskonto- Ich weiß . Cloud-Anbieter können Kubernetes-Service-Konto-Token vertrauen und gegen kurzlebige Cloud-Anmeldeinformationen tauschen:
Die Einrichtung: Verknüpfen Sie ein Kubernetes-Dienstkonto mit einer Cloud-Rolle. Pods, die dieses Dienstkonto verwenden, erhalten automatisch temporäre Anmeldeinformationen, die für sie rotiert werden, die dem Rollen zugeordnet sind. Kein Geheimnis zu speichern, nichts, das lange durchsickern kann.
apiVersion: v1
kind: ServiceAccount
metadata:
name: orders
namespace: shop
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/shop-orders
Die gleiche Idee funktioniert in CI: OIDC-Föderation GitHub Actions, GitLab CI und andere können Cloud-Zugriffsdaten ohne gespeicherte Schlüssel erhalten.
Die sicherste Anmeldeurkunde ist die, die für ein paar Minuten, für eine Arbeitslast, für einen Job ausgestellt wird, und dann einfach abläuft.
Cloud-Workload-Identität löst "meine Kapsel spricht mit meinem Cloud-Anbieter". Aber was ist mit Service-to-Service-Anrufen, über Cluster, Clouds und lokale Maschinen hinweg?
SPIFFE (Secure Production Identity Framework For Everyone) ist ein CNCF-Standard für die Workload-Identität, unabhängig von jeder Plattform. Es definiert:
spiffe://acme.com/ns/shop/sa/orders.SPIRE ist die Referenzimplementierung. Ein SPIRE-Server gibt Identitäten und Agenten an jedem Knoten aus Bescheinigung Arbeitslasten: Sie überprüfen, welche Arbeitslast tatsächlich vorhanden ist (welches Kubernetes-Dienstkonto, welcher Knoten, welcher Prozess), bevor sie eine Identität austeilen. Die Zertifikate werden automatisch, oft stündlich, umgeschaltet.
Viele Tools sprechen SPIFFE: Service-Meshes wie Istio und Linkerd verwenden intern SPIFFE-ähnliche Identitäten, und Envoy, Cilium und verschiedene Datenbanken und Proxies können SVIDs verwenden.
Die Identität der Benutzer ist gegenseitige TLS (mTLS)Beide Seiten präsentieren Zertifikate, so dass jeder genau weiß, mit wem er spricht, und der Verkehr verschlüsselt ist.
MTLS in jeder Anwendung von Hand zu machen, ist schmerzhaft. Deshalb wird es meistens von:
Auf der Oberseite von mTLS, können Sie schreiben Genehmigungsrichtlinien: "nur die checkout Der Dienst kann anrufen payments auf /charge"Ich bin ein Mann. Das ist echtes Nullvertrauen: Identitätsbasierter Zugriff, nicht netzwerkbasierter.
Du brauchst SPIRE nicht am ersten Tag. Ein praktischer Weg:
- Ja, das ist es. Das Entfernen statischer Anmeldeinformationen beseitigt eine der häufigsten Ursachen für Sicherheitsverletzungen. Die ersten Schritte, die Cloud-Workload-Identität und CI OIDC, sind überraschend einfach und bringen sofortigen Nutzen.
Meine Meinung: Dienste sollten immer beweisen, wer sie sind, mit Anmeldeinformationen, die ablaufen, bevor sie missbraucht werden können. Passwörter sind für Menschen, und selbst wir geben sie auf.
Desly