Digitale Zertifikate (z. B. SSL/TLS, X.509) können über viele verschiedene Tools in Ihrer DevOps-Toolkette ausgestellt und verwaltet werden. Je mehr Tools Sie jedoch für die Verwaltung der Ausstellung dieser Zertifikate haben, desto mehr Lücken entstehen bei der Sicherheitssteuerung und -überwachung.
Sehen Sie, wie Anthony Ricci, VP of Engineering bei Keyfactor, ein Beispiel für einen Technologie-Stack und die Rolle von Zertifikaten im Entwicklungszyklus erläutert.
Vollständige Abschrift unten.
Aufbau eines Beispiel-Technologiestapels
Wie geht es Ihnen, meine Damen und Herren? Mein Name ist Anthony Ricci. Ich bin der Vizepräsident für Technik bei Keyfactor. Heute werden wir über die Herausforderungen von digitalen Zertifikaten in einer DevOps-Umgebung sprechen.
Nachfolgend finden Sie ein Beispiel für einen Technologie-Stack, den wir durchgehen und erklären werden, was Ihr Unternehmen möglicherweise für die Entwicklung oder den Einsatz Ihrer Anwendungen tun kann.
Danach werden wir uns ansehen, welche Rolle Geheimnisse und Zertifikatsverwaltung bei DevOps spielen.
Infrastruktur
Wenn wir ganz unten anfangen, ist das Ihre Infrastruktur. Im Wesentlichen könnte es sich um Bare Metal handeln. Es könnte sich um ein Rechenzentrum handeln, oder um mehrere Rechenzentren. Vielleicht eine Cloud-basierte Umgebung. Das kann AWS, Google Cloud oder Azure sein, aber das spielt eigentlich keine Rolle. Hier fängt es an, und dann konzentrieren wir uns auf die Bereitstellung Ihrer virtuellen Maschinen in diesen Umgebungen.
Und wenn Sie Ihre Infrastruktur im Wesentlichen konfiguriert haben, lassen Sie uns nun über Ihre Cluster sprechen.
Cluster und Service Mesh
Sie können mehrere Cluster haben. In diesem Beispiel werden wir zwei Cluster haben. Sobald Sie einen Cluster konfiguriert haben, benötigen Sie einen Orchestrator, um ihn zu verwalten. Die meisten Leute setzen Kubernetes ein und verwenden möglicherweise ein Service-Mesh wie Istio.
Die Verwendung eines Service Mesh hängt von der Komplexität Ihrer Umgebung oder Multi-Umgebung ab. Das Service Mesh bietet Ihnen die Möglichkeit zur servicebasierten Erkennung, DNS Verwaltung Ihrer verschiedenen Dienste und Pods innerhalb dieser Umgebungen. Auf diese Weise kann alles in angemessener Weise kommunizieren. Es ermöglicht Ihnen auch die Verwaltung in einer ephemeren Umgebung, in der sich ständig etwas ändert.
Logische Eingänge und Anwendungen
Sie können hier auch einen logischen Eingang haben. Es handelt sich also um einen Randbereich, in dem Sie eine Art von Webserver haben, der eingesetzt wird, um uns zu bedienen. Ob es sich um eine API, eine Website oder eine Anwendung handelt, die von bestimmten Personen genutzt wird. Und natürlich Ihre Anwendung oder die Anzahl der Anwendungen, die Sie bereitstellen. Dies ist ein sehr einfaches Diagramm, bei dem Sie von unten angefangen haben, von der Infrastruktur bis hin zu den Anwendungen.
Lassen Sie uns nun über die Sicherheit sprechen.
Hinzufügen von Geheimnissen und Zertifikatsverwaltung
Kubernetes verfügt über ein integriertes SED, in dem Sie Dinge wie Anmeldeinformationen und geheime Informationen, die Sie verwenden werden, bereitstellen können. HashiCorp Vault ist ein weiteres Produkt mit einer sehr guten Schnittstelle und vielen guten Funktionen für die Verwaltung von Anwendungsgeheimnissen auf Unternehmensebene.
Der nächste Punkt sind digitale Zertifikate. Viele Leute denken, dass SSL Zertifikate die einzigen digitalen Zertifikate sind, die Sie verwenden. Es gibt jedoch noch viel mehr.
Wir haben Client Auth in einer Umgebung wie dieser. Der Ingress unterstützt die Verwendung von SSL Zertifikaten. Ihre Orchestratoren oder Pods mit Diensten müssen gegenseitig authentifizierte Zertifikate (MTLs) bereitstellen. Woher wollen Sie bei all diesen Tools und Anwendungen, die Zertifikate benötigen, diese bekommen?
Nun, das ist eine gute Frage.
Interne CAs (Zertifizierungsstellen)
Kubernetes hat eine so genannte Onboard-CA. Istio hat eine eingebaute CA. Und, Sie haben es erraten, auch Vault hat eine integrierte CA.
Aus der DevOps-Perspektive ist man der Meinung, dass man Sicherheit hat, und das hat man auch. Das Problem ist jedoch die Verwaltung dieser Sicherheit. Was wir mit diesen DevOps-Umgebungen oder dem Fluss Ihrer Anwendungen und der Bereitstellung zu tun versuchen, ist die Minimierung der Gesamtbetriebskosten (TCO).
In diesem Fall erhöhen Sie tatsächlich Ihre TCO. Sie haben vier verschiedene Implementierungen mit unterschiedlichen CAs, die Sie in dieser Umgebung einsetzen. Die Herausforderungen bei der Implementierung dieser Zertifizierungsstellen, die Durchsetzung von Richtlinien und die Art und Weise, wie Sie damit umgehen, können sich von einer Technologie zur anderen erheblich unterscheiden.
Dies ist ein großes Problem im digitalen Raum. Es war schon immer ein großes Problem, aber was wäre, wenn wir eine Lösung für Sie hätten, um dieses Problem zu lösen?
Zertifikatsautomatisierung für DevOps
Nun, das tun wir, und es heißt Keyfactor.
Wir haben eine PKI as-a-Service oder Public-Key-Infrastruktur als Service, die es Ihnen ermöglicht, die Verwaltung dieser digitalen Zertifikate aus Ihrer Umgebung zu entfernen. Und es erlaubt uns, dies in Ihrem Namen zu tun.
In diesem Fall versuchen wir, die Ausstellung dieser Zertifizierungsstellen aus diesen Onboard- oder Technologie-Stacks zu eliminieren und dann so genannte "Last Mile"-Integrationspunkte in Key Factor zu schaffen. Dadurch erhalten Sie einen einheitlichen Ansatz für die Verwaltung von Zertifikaten innerhalb der Umgebung. Jetzt haben Sie Interoperabilität zwischen den verschiedenen Technologie-Stacks und die Möglichkeit für Keyfactor , diese CAs hinter den Kulissen zu verwalten.
Was bringt Ihnen das wirklich? Aus der DevOps-Perspektive gibt Ihnen das Kontrolle, Sichtbarkeit und Autonomie zwischen all Ihren verschiedenen CAs. Wir geben Ihrer InfoSec-Gruppe die Möglichkeit, Richtlinien durchzusetzen, diese CAs zu überprüfen und sicherzustellen, dass Sie in Ihrer Branche und in Ihrem Unternehmen konsistent und konform sind.
So können Sie sich als DevOps-Experte oder Anwendungsentwickler auf die Merkmale und Funktionen Ihrer Anwendung konzentrieren und sicherstellen, dass diese im Stack bereitgestellt werden.