Einführung
Die Azure AD App-Registrierung, allgemein bekannt als Service Principal, ist eine der bevorzugten Methoden für die Kommunikation mit Azure-Diensten unter Verwendung von Tools oder Skripten, um sie zu aktualisieren oder zu ändern. App-Registrierungen sind ein integraler Bestandteil der Sicherheitsvalidierung und bieten Authentifizierung und Autorisierung für Anwendungen. Unternehmen bevorzugen oft die Verwendung von Dienstkonten anstelle von Benutzerkonten, um Code mithilfe von CI/CD oder anderen Tools von Drittanbietern für die Integration mit Azure-Ressourcen bereitzustellen. Dieser Ansatz gewährleistet Konsistenz und Zuverlässigkeit, da Konfigurationen nur einmal erstellt werden müssen und ein vom AAD-Team des Unternehmens verwalteter Dienst genutzt wird. Durch den Einsatz von Service Principal können Unternehmen eine sichere und effiziente Kommunikation zwischen ihren Anwendungen und Azure-Diensten herstellen und so einen reibungslosen Betrieb und die Integrität der Daten gewährleisten.
Warum ist sie notwendig?
Azure-Dienste verfügen nicht über eine integrierte Funktion zur Verfolgung ablaufender App-Registrierungen, was zu Problemen mit bestehenden Integrationen und Autorisierungsmethoden führen kann, die in Automatisierungsskripten, Trigger-basierten Funktions-Apps und Diensten verwendet werden, die eine Interaktion in Azure erfordern. Ohne eine Lösung zur Überwachung und Benachrichtigung bei Ablauf dieser AD-App-Registrierungen können DevOps-CI/CD-Pipelines plötzlich nicht mehr funktionieren, was zu schwerwiegenden Unterbrechungen führt. Ursprünglich gab es die Option, ein Geheimnis zu erstellen, das nie abläuft, aber diese Option wurde aufgrund von Sicherheitsbedenken aus den AD-App-Registrierungseinstellungen entfernt, und jetzt kann das Ablaufdatum auf maximal 24 Monate festgelegt werden. Für Unternehmen ist es entscheidend, eine zuverlässige Überwachungslösung zu implementieren, um den kontinuierlichen Betrieb ihrer Azure-Dienste zu gewährleisten und potenzielle Sicherheitsrisiken im Zusammenhang mit abgelaufenen App-Registrierungen zu vermeiden.
Zugänge
- Logik-Apps und Funktions-Apps verwenden
- Verwendung kostenpflichtiger Überwachungsinstrumente
- Verwendung von Azure-Automatisierungskonten
Eine mögliche Lösung besteht darin, eine Funktionsanwendung zu erstellen, die den Ablauf der Geheimnisse der AD-App-Registrierung verfolgt, und eine Logikanwendung, die auf der Grundlage der Geschäftslogik ausgelöst wird und auf der Grundlage von Überwachungstools Benachrichtigungen ausgibt. Die Ausführung mehrerer Funktions- und Logik-Apps kann jedoch kostspielig sein.
Eine andere Möglichkeit ist die Verwendung von kostenpflichtigen Lösungen wie Serverless 360 Monitoring, die sich um die Benachrichtigung über das Auslaufen kümmern.
Die dritte Lösung ist die Verwendung von Azure-Automatisierungskonten, die PowerShell-Skripte als Aufträge ausführen können. Um E-Mail-Benachrichtigungen zu erhalten, können wir ein SendGrid-Konto (kostenloses Tier verfügbar) ohne zusätzliche Integrationsschritte mit anderen Ressourcen verwenden. In diesem Blog werden wir die dritte Lösung diskutieren.
Vereinfachte Herangehensweise mit Azure Automation Accounts
Um den Ablauf des AD-Anwendungsgeheimnisses zu verfolgen, werden wir PowerShell, Automatisierungskonten und SendGrid für die Benachrichtigung verwenden.
- Zunächst müssen wir eine Verbindung zu Azure AD mit einer anderen App-Registrierung herstellen, die über eine globale Leseberechtigung verfügt. Zur Authentifizierung verwenden wir ein selbstsigniertes X.509-Zertifikat anstelle eines Geheimnisses.
- Sobald die Verbindung hergestellt ist, können wir eine Liste aller App-Registrierungen abrufen, die ein Array mit allen App-Registrierungen einschließlich der Details zum Ablauf des Geheimnisses enthält. Wir können diese Informationen dann mit dem heutigen Datum vergleichen, um festzustellen, welche Geheimnisse abgelaufen sind, bald ablaufen werden oder noch gültig sind.
- Nachdem wir die notwendigen Informationen gesammelt haben, können wir SendGrid PowerShell API v3-Befehle verwenden, um eine E-Mail-Benachrichtigung mit einem API-Schlüssel und einem HTML-Text zu senden.
- Sobald das PowerShell-Skript fertig ist, sollten wir es in ein Azure-Automatisierungs-Runbook hochladen und es testen, indem wir es im Testbereich ausführen. Die gesendete E-Mail wird in etwa so aussehen:
Mit diesem Ansatz können wir AD-Anwendungsgeheimnisse proaktiv überwachen und verwalten, den kontinuierlichen Betrieb unserer Azure-Dienste sicherstellen und potenzielle Sicherheitsrisiken im Zusammenhang mit abgelaufenen Geheimnissen vermeiden.
Schlussfolgerung
Der einfachste und kostengünstigste Ansatz, der DevOps-Dienste einbezieht, wurde oben beschrieben. Mit dieser Methode können wir einen Job für ein Automatisierungskonto einrichten, um das Team zu überwachen und über ablaufende Anmeldedaten zu informieren. Dieser proaktive Ansatz ermöglicht es dem Team, die Zugangsdaten im Voraus zu erneuern und verhindert so potenzielle Unterbrechungen in letzter Minute, die sich auf integrierte Anwendungen oder Pipelines auswirken könnten.
Mit seinem Fachwissen über Azure- und AWS-Plattformen hat eInfochips strategische Cloud-Initiativen wie Cloud-Native-Design und -Entwicklung, monolithische zu Microservices-Architektur und Enterprise-Cloud-Migration geleitet. Unser Team besteht aus über 500 Ingenieuren, die Azure/AWS-basierte Projekte unterstützen, darunter mehr als 100 Azure/AWS-zertifizierte Experten. Durch die Nutzung unserer Cloud-Expertise haben wir einen erheblichen Einfluss auf die wichtigsten Geschäftskennzahlen unserer Kunden, wie z. B. die Senkung der TCO und TTM um 50 %, die Monetarisierung zusätzlicher Umsatzströme und die Ermöglichung neuer Geschäftsmodelle.