Client-Besuch und selbstsignierte Root-CA-Generierung
One lasting effect following the pandemic, especially in the work- and business life, is a higher degree of remote work typically accepted, enabled through digital collaboration services and platforms. Still, the occasional physical presence meeting face-to-face can be beneficial though and something that’s not easy to replicate in digital realms only, and it was great spending a day together with the great and highly skilled team at the client premises in Älmhult, Sweden. In this part-time remote assignment, I’m assisting the team in enhancing and further and fully leverage the capabilities unlocked through the right and enhanced of cloud-native services and cloud-native computing in Azure, including setting new resource-, tagging- and naming conventions for project cost follow-up and analysis, bringing forth new storage solutions with emphasis on cost efficiency-, performance-, scale- and security, leveraging private endpoints Azure VPN Gateway configured with Entra ID work- and school account authentication and Azure Private DNS Resolvers- and Zones, for fully private end-to-end endpoint connections and resolution, Azure Kubernetes Services (AKS) maintenance- and migrations, ensuring subnet NSG integration with in- and outbound rules, network segmentation, enforcing VNet- and subnet integration and adopting a hub-spoke network topology approach, with VNet peerings to target application VNets, extending the use of identity-based authentication, as well as leveraging IaC for automating infrastructure deployments and enforcing structural-, naming-, hierarchical- and security defaults and configurations in a consistent manner etc., helping ensure adherence to best practices- and policy compliance.
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, Anleitungen und Ansätze im Internet, um selbstsignierte öffentliche Root-CAs zu generieren, allerdings erfordern viele von ihnen die Bereitstellung mehrerer Komponenten/Ressourcen und Ressourcengruppen, wie DNS-Zonen, Azure-Funktionen und andere Ressourcen für die Generierung und regelmäßige Erneuerung der CA, Ansätze, die manchmal sogar hochprivilegierte Rollen wie z. B. Eigentümerrechte für den Abonnementbereich erfordern, um zu funktionieren, was aus der Perspektive des Prinzips der geringsten Privilegien (PoLP) und der Sicherheit nicht ideal ist, und auch ziemlich viele Schritte für die Erstellung selbst umfassen, was sowohl Sicherheitsbedenken als auch eine gewisse Komplexität für die Automatisierung der CA-Erneuerung mit sich bringt, 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 lediglich Zugriffsrechte auf die Azure Key Vault-Ressource, für die das Zertifikat ausgestellt werden soll, sowie auf die DNS-Zone oder den Provider, AZ ACME replicates the certificate management capabilities existing natively between Azure Key Vault and its native TLS issuers, Digicert and GlobalSign, enabling the certificate to exhibit management capabilities as it was a fully featured CA, with no infrastructure or other components required whatsoever, requiring only two commands to be run only in order to generate a compliant Let’s Encrypt or ZeroSSL self-signed root CA. With its az cli-Esque syntax, and readily available GitHub Actions and BiCep samples, automating the periodic 90-day certificate renewal, e.g., with the cli installed on a runner VM, cluster- or build agent with roles assigned to the identity over the DNS Zone and Key Vault scopes, becomes a very straight-forward process. I can definitely recommend anyone looking for fulfilling uses cases that includes generating self-signed root CAs with a minimum of components, complexity and permissions needed to give AZ ACME a look.