Client-Besuch und selbstsignierte Root-CA-Generierung
Eine bleibende Auswirkung der Pandemie, vor allem im Arbeits- und Geschäftsleben, ist die zunehmende Akzeptanz der Fernarbeit, die durch digitale Dienste und Plattformen für die Zusammenarbeit ermöglicht wird. Dennoch kann die gelegentliche physische Anwesenheit von Angesicht zu Angesicht vorteilhaft sein und ist etwas, das sich in der digitalen Welt nur schwer reproduzieren lässt. Es war großartig, einen Tag mit dem großartigen und hochqualifizierten Team in den Räumlichkeiten des Kunden in Älmhult, Schweden, zu verbringen. In diesem Teilzeit-Remote-Einsatz unterstütze ich das Team bei der Verbesserung und weiteren und vollständigen Nutzung der Möglichkeiten, die durch die richtigen und verbesserten Cloud-nativen Dienste und das Cloud-native Computing in Azure freigesetzt werden, einschließlich der Festlegung neuer Ressourcen-, Tagging- und Namenskonventionen für die Projektkostenverfolgung und -analyse, der Einführung neuer Speicherlösungen mit Schwerpunkt auf Kosteneffizienz, Leistung, Skalierung und Sicherheit, der Nutzung privater Endpunkte, des Azure VPN Gateways, konfiguriert mit Entra ID Arbeits- und Schulkonten-Authentifizierung und Azure Private DNS Resolver- und Zonen, für vollständig private Endpunktverbindungen und -auflösungen, Azure Kubernetes Services (AKS) Wartungen und Migrationen, Sicherstellung der Subnetz-NSG-Integration mit ein- und ausgehenden Regeln, Netzwerksegmentierung, Durchsetzung der VNet- und Subnetz-Integration und Anwendung eines Hub-Spoke-Netzwerktopologieansatzes, mit VNet-Peerings zu Zielanwendungs-VNets, Ausweitung der Nutzung identitätsbasierter Authentifizierung sowie Nutzung von IaC zur Automatisierung von Infrastrukturimplementierungen und zur einheitlichen Durchsetzung von Struktur-, Benennungs-, Hierarchie- und Sicherheitsvorgaben und -konfigurationen usw., um die Einhaltung von Best Practices und Richtlinien zu gewährleisten.
Bei einem kürzlich durchgeführten Workload bestand die Anforderung, vorzugsweise eine freie oder quelloffene öffentliche Stammzertifizierungsstelle (Certificate Authority) zu verwenden. Die meisten Geheimnisse und Zertifikate sind bereits in Azure Key Vaults gespeichert, der bevorzugten Option für die Speicherung von Geheimnissen und den Zugriff auf Geheimnisse in Azure, und da dieses CA-Zertifikat von einem anderen Azure-Dienst verwendet werden sollte, war die Speicherung des Zertifikats in Azure Key Vault eine naheliegende Wahl. Es gibt viele verschiedene Alternativen, Leitfäden und Ansätze im Internet, um selbstsignierte öffentliche Root-CAs zu generieren, jedoch erfordern viele von ihnen die Bereitstellung mehrerer Komponenten/Ressourcen und Ressourcengruppen, wie DNS-Zonen, Azure-Funktionen und andere Ressourcen für die Erstellung und regelmäßige Erneuerung der CA, Ansätze, die manchmal sogar hochprivilegierte Rollen wie z. B. das Recht des Eigentümers auf den Abonnementbereich erfordern, um zu funktionieren, was aus der Perspektive des Prinzips der geringsten Rechte (PoLP) und der Sicherheit nicht ideal ist, und auch ziemlich viele Schritte für die Generierung selbst umfassen und somit sowohl Sicherheitsbedenken als auch eine gewisse Komplexität für die Automatisierung der CA-Erneuerung hinzufügen, die für selbstsignierte Stammzertifikate erforderlich ist. Einige Tools wie Certbot bieten eine angemessene Benutzerfreundlichkeit mit relativ wenigen Schritten. Die Lösung mit den wenigsten Berechtigungen und den wenigsten Schritten, die für die Erstellung einer konformen öffentlichen Root-CA erforderlich sind, war AZ ACME. Sie erfordert nur Berechtigungen für die Azure Key Vault-Ressource, für die das Zertifikat ausgestellt werden soll, und die Azure DNS-Zone bzw. den Anbieter, AZ ACME repliziert die Zertifikatsverwaltungsfähigkeiten, die nativ zwischen Azure Key Vault und seinen nativen TLS-Ausstellern Digicert und GlobalSign bestehen, und ermöglicht es dem Zertifikat, Verwaltungsfähigkeiten zu zeigen, als wäre es eine voll ausgestattete CA, ohne dass irgendeine andere Infrastruktur oder Komponenten erforderlich sind, wobei nur zwei Befehle ausgeführt werden müssen, um die konforme Let's Encrypt- oder ZeroSSL-selbstsignierte öffentliche Root-CA zu erzeugen. Mit seiner az cli-Esque-Syntax und den leicht verfügbaren GitHub-Aktionen und BiCep-Beispielen wird die Automatisierung der regelmäßigen 90-tägigen Zertifikatserneuerung, z. B. mit dem cli, der auf einer Runner-VM, einem Cluster- oder Build-Agent mit der Identität zugewiesenen Rollen über die DNS-Zone und Azure Key Vault-Bereiche installiert ist, zu einem sehr unkomplizierten Prozess. Ich kann jedem, der auf der Suche nach erfüllenden Anwendungsfällen ist, die die Generierung von selbstsignierten Root-CAs beinhalten, und dies mit einem Minimum an Komponenten, Komplexität und Berechtigungen, definitiv empfehlen, AZ ACME einen Blick zu werfen.