Mit GitHub Advanced Security können Sie Ihren Code auf Geheimnisse und Schwachstellen in Ihrer Codebasis und Git-Historie scannen, indem Sie Secret Scanning verwenden oder sogar noch einen Schritt weiter gehen und Push-Schutz verwenden, um zu verhindern, dass Geheimnisse in Ihr Repository gepusht werden. Das ist eine hervorragende Funktion, wenn wir Geheimnisse in unseren Anwendungen haben, aber es reicht nicht aus, wenn wir von Passwörtern in Verbindungsstrings sprechen. Sie müssen diese Passwörter auch rotieren, sie schützen und sicherstellen, dass Sie für die verschiedenen Phasen (Dev, QA, Prod usw.) jeweils das richtige verwenden. Eine Lösung für dieses Problem ist die Verwendung von Managed Service Identity (MSI) anstelle von Benutzernamen und Kennwörtern für die Verbindung mit verschiedenen Azure-Diensten, einschließlich SQL Azure.
In diesem Beitrag zeige ich Ihnen, wie Sie eine Verbindung zu SQL Azure ohne Geheimnisse herstellen können, indem Sie Azure Active Directory verwenden. Dies gilt für Benutzer, verwaltete Identitäten und Dienstprinzipien.
Aktivieren der Azure Active Directory-Authentifizierung auf SQL Azure
Zunächst müssen wir sicherstellen, dass die Azure Active Directory-Authentifizierung auf SQL Azure aktiviert ist.
Hinzufügen von Benutzern zu SQL Azure und Zuweisen von Berechtigungen
Dazu müssen wir uns über SSMS mit dem SQL Azure-Server verbinden und die folgende Abfrage ausführen, die einen Benutzer aus einem Azure Active Directory-Konto erstellt und ihm die Rolle db_datareader zuweist. Mehr über die SQL-Rollen erfahren Sie hier.
CREATE USER [<user@AAD-tenant-domain>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<user@AAD-tenant-domain>];
Beispiel:
Hinweis: Sie können dies auf Serverebene oder auf Datenbankebene tun. Wenn Sie dies auf der Serverebene tun, hat der Benutzer Zugriff auf alle Datenbanken des Servers. Wenn Sie dies auf Datenbankebene tun, hat der Benutzer nur Zugriff auf diese Datenbank.
Wie bereits erwähnt, können Sie auch verwaltete Identitäten und Dienstprinzipale verwenden. Hier sehen Sie ein Beispiel, wie es bei der Verwendung einer verwalteten Identität aussieht:
Hier ist ein Beispiel für die Abfrage, die Sie ausführen müssen, um den Benutzer aus einer verwalteten Identität zu erstellen und ihm eine Rolle zuzuweisen, in diesem Fall db_datareader:
CREATE USER [name-of-the-object] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [name-of-the-object];
Beispiel:
Verbindung zu SQL Azure über Azure Active Directory
Jetzt, da die Azure Active Directory-Authentifizierung auf SQL Azure aktiviert ist und wir Benutzer hinzugefügt und Berechtigungen zugewiesen haben, können wir uns über Azure Active Directory mit SQL Azure verbinden.
Der Verbindungsstring sieht wie folgt aus:
Server=tcp;<your-server>.database.windows.net,1433;Initial Catalog=<your-database>;Authentication=Active Directory Managed Identity;
Fazit
Ihre Verbindungen zu SQL Azure sind jetzt durch die Verwendung von Azure Active Directory sicherer und ohne Geheimnisse.
Referenzen
SQL Azure - Verwendung der Azure Active Directory-Authentifizierung
Contact
