Das häufigste Problem, mit dem Entwickler zu kämpfen haben, wenn es um die Sicherung der Kommunikation zwischen verschiedenen Diensten und Geräten geht, ist die Verwaltung und Sicherung von Anmeldeinformationen, Schlüsseln, Zertifikaten und Geheimnissen innerhalb ihrer Cloud-nativen Anwendungen. Wenn solche Anmeldeinformationen, Geheimnisse und Schlüssel jedoch direkt im Anwendungscode gespeichert werden, ist die Sicherheit der Anwendung bedroht.
Indem solche Daten aus dem Code entfernt werden, kann man die Sicherheit der Anwendung erhöhen, aber wie können dann Anmeldeinformationen, Schlüssel und Geheimnisse verwaltet werden? Hier kommen verwaltete Identitäten ins Spiel. Mit verwalteten Identitäten müssen Ihre Entwickler solche Informationen nicht mehr manuell verarbeiten.
Verwaltete Identitäten entlasten die manuelle Verwaltung von Zugangsdaten, Geheimnissen, Passwörtern und Schlüsseln im Anwendungscode. Stattdessen werden diese Informationen automatisch im Azure Active Directory (AD) verwaltet, wenn eine Verbindung mit Ressourcen hergestellt wird, die die AD-Authentifizierung unterstützen. Mit verwalteten Identitäten können Azure-AD-Token angefordert und empfangen werden, ohne dass dafür mit Zugangsdaten, Geheimnissen, Schlüsseln und Kennwörtern gearbeitet werden muss.
Azure Key Vault ist eine alternative Lösung zum Speichern und Verwalten der Geheimnisse und Anmeldeinformationen einer Anwendung. In diesem Fall werden die Informationen innerhalb des Key Vaults gespeichert. Die Anwendung muss sich jedoch weiterhin beim Azure Key Vault authentifizieren, um die Schlüssel und andere Geheimnisse abzurufen. Das bedeutet, dass weiterhin wichtige Informationen direkt im Anwendungscode gespeichert werden müssen.
Verwaltete Identitäten für Azure-Ressourcen – die neue Bezeichnung für den früher als Managed Service Identity (MSI) bekannten Dienst – sind äußerst leistungsfähig und reduzieren den mit der manuellen Überwachung verbundenen Arbeitsaufwand. Der Code bleibt sauber, und mit Azure Key Vault müssen die Konfigurationen nicht innerhalb des Codes gepflegt werden. Sie können auch auf andere Azure-Ressourcen zugreifen, die die AD-Authentifizierung unterstützen, ohne deren jeweilige Verbindungs-Strings und andere Konfigurationsdetails in der Anwendung zu speichern. Sie können Operationen an Berechtigungen für verwaltete Identitäten über das Azure-Portal, eine ARM-Vorlage, Azure CLI, PowerShell und REST-APIs ausführen.
Es gibt zwei Arten von verwalteten Identitäten:
Beide Arten von Identitäten unterscheiden sich im Detail, und jede hat ihre eigenen Vor- und Nachteile. Lassen Sie uns die Merkmale und Unterschiede zwischen diesen beiden Arten von Identitäten erläutern.
Vom System zugewiesene verwaltete Identitäten lassen sich für die am häufigsten verwendeten Azure-Dienste aktivieren. Nach der Aktivierung innerhalb der Azure-Dienstinstanz wird eine Identität in Azure Active Directory erstellt – der Dienstprinzipal für diese Dienstinstanz.
Die Identität ist außerdem an den Lebenszyklus der Dienstinstanz gebunden. Sie wird also automatisch entfernt, wenn die Dienstinstanz gelöscht oder außer Betrieb genommen wird. Wenn die Identität gelöscht wird, wird auch der entsprechende Dienstprinzipal in Azure AD gelöscht.
Eine weitere Möglichkeit, verwaltete Identitäten für Azure-Ressourcen zu verwenden, besteht darin, eine vom Benutzer zugewiesene verwaltete Identität separat zu erstellen und diese dann als eigenständige Azure-Ressource zuzuweisen. Das Beste an dieser Methode ist, dass Sie dieselbe verwaltete Identität mehr als einem Azure-Dienst bzw. mehr als einer Instanz eines Azure-Dienstes zuweisen können. Da die vom Benutzer zugewiesene verwaltete Identität separat erstellt wird, wird sie nicht gelöscht, wenn die mit ihr verknüpfte Azure-Ressource gelöscht oder außer Betrieb genommen wird.
Vom System zugewiesen:
Vom Benutzer zugewiesen:
Eine vollständige Liste der Azure-Dienste, die verwaltete Identitäten unterstützen, finden Sie hier.
Ein wichtiger Punkt ist, dass eine verwaltete Identität – egal ob sie vom System oder vom Benutzer zugewiesen ist – eine besondere Art von Dienstprinzipal ist, der nur mit Azure-Ressourcen verwendet wird.
Da sie synchronisiert sind, können sich Änderungen an einem auf das andere auswirken. Der Dienstprinzipal wird beispielsweise entfernt, wenn die entsprechende verwaltete Identität gelöscht wird.
Über verwaltete Identitäten können Sie Zugriffstoken für die Ressourcen anfordern, die die Azure-AD-Authentifizierung unterstützen.
Zugriffstoken werden anhand der RBAC empfangen, die ihnen auf der Ressource zugewiesen ist. Sobald die Ressource den Zugriffstoken erhält, kann darauf zugegriffen werden. Das Beste daran ist, dass Azure das Rolling der Anmeldeinformationen übernimmt, die die Dienstinstanz verwendet. So werden Passwort-Leaks ausgeschlossen.
Im Folgenden finden Sie die Schritte zum Erstellen und Konfigurieren von verwalteten Identitäten sowie zur Zuweisung von RBACs.
Sie können entweder die vom System zugewiesene oder die vom Benutzer zugewiesene verwaltete Identität für Ihre Projekte auswählen, je nach Ihren Anforderungen und Zielen. Zu Demonstrationszwecken wurde dieses Lab jedoch in zwei verschiedene Abschnitte aufgeteilt.
Im ersten Abschnitt aktivieren wir die vom System zugewiesene verwaltete Identität für eine virtuelle Maschine in Azure und stellen diesen Dienstprinzipal und die Rolle „Mitwirkender“ für das Speicherkonto bereit.
Im zweiten Teil des Labs erstellen wir eine vom Benutzer zugewiesene verwaltete Identität als separate Ressource, weisen diese Identität der virtuellen Maschine zu und weisen dieser Identität im Speicherkonto eine RBAC zu.
1. Melden Sie sich beim Azure-Portal an und öffnen Sie die Seite „Virtuelle Maschinen“.
2. Klicken Sie im Menü links unter „Einstellungen“ auf „Identität“.
3. Sobald Sie sich auf der Identitätsseite befinden, sehen Sie zwei Registerkarten: eine für die vom System zugewiesene Benutzeridentität und eine für die vom Benutzer zugewiesene Identität.
4. Schalten Sie auf der Registerkarte „Vom System zugewiesen“ die Statusschaltfläche auf „Ein“. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche „Speichern“.
5. Nach einigen Sekunden wird die vom System zugewiesene verwaltete Identität bereitgestellt.
6. Öffnen Sie nun die Speicherkontoseite und klicken Sie in der linken Navigationsleiste auf „Zugriffskontrolle (IAM)“.
7. Klicken Sie auf der Zugriffskontrollseite auf die Schaltfläche „Hinzufügen“ in der oberen Navigation und dann auf „Rollenzuweisung hinzufügen“.
8. Wählen Sie auf der Seite „Rollenzuweisung hinzufügen“ eine Rolle aus, die Sie dem erstellten Dienstprinzipal geben möchten, und klicken Sie unten auf die Schaltfläche „Weiter“.
9. Wählen Sie unter „Zugriff zuweisen zu“ die Option „Verwaltete Identität“ und klicken Sie auf den Link „Mitglieder auswählen“.
10. Auf der rechten Seite erscheint ein Pop-up. Wählen Sie „Virtuelle Maschine“ aus der Dropdown-Liste „Verwaltete Identität“ aus. Der neu erstellte Dienstprinzipal für die virtuelle Maschine wird zur Auswahl angezeigt.
11. Wählen Sie den korrekten Dienstprinzipal aus, der angezeigt wird, und klicken Sie auf die Schaltfläche „Auswählen“.
12. Klicken Sie nun auf die Schaltfläche „Prüfen + zuweisen“.
13. Wenn Sie sich auf der Bestätigungsseite befinden, klicken Sie erneut auf die Schaltfläche „Prüfen + zuweisen“.
14. Die anschließend zugewiesene Rolle wird auf der Registerkarte „Rollenzuweisungen“ angezeigt.
1. Klicken Sie auf der Seite der virtuellen Maschine auf die Suchleiste und suchen Sie nach „Verwaltete Identität“.
2. Wählen Sie die erste Option für verwaltete Identitäten. Sobald Sie sich auf der Seite „Verwaltete Identitäten“ befinden, klicken Sie in der oberen Navigationsleiste auf die Schaltfläche „Erstellen“.
3. Wählen Sie auf der Seite „Vom Benutzer zugewiesene verwaltete Identität erstellen“ das Abonnement, die Ressourcengruppe und den Speicherort aus. Geben Sie abschließend der verwalteten Identität einen Namen (in diesem Fall die Identität „vmidentity“). Wenn Sie fertig sind, klicken Sie auf die Schaltfläche „Überprüfen + erstellen“.
4. Klicken Sie nach erfolgreicher Validierung auf die Schaltfläche „Erstellen“, um die verwaltete Identität bereitzustellen.
5. Gehen Sie zurück zur Seite „Virtuelle Maschine“ und klicken Sie unter „Einstellungen“ auf „Identität“. Klicken Sie auf der Seite „Identität“ auf die vom Benutzer zugewiesene Registerkarte.
6. Klicken Sie auf der vom Benutzer zugewiesenen Registerkarte in der oberen Navigationsleiste auf „Hinzufügen“. Auf der rechten Seite erscheint ein Pop-up. Wählen Sie die neu erstellte verwaltete Identität (hier die Identität „vmidentity“) aus und klicken Sie auf „Hinzufügen“.
7. Die Identität erscheint nun auf der Seite „Vom Benutzer zugewiesene verwaltete Identität“.
8. Gehen Sie nun zurück zum Speicherkonto und klicken Sie auf „Zugriffskontrolle (IAM)“. Klicken Sie auf der Seite „Zugriffssteuerung“ in der oberen Navigationsleiste auf „Hinzufügen“ und wählen Sie „Rollenzuweisung hinzufügen“.
10. Wählen Sie „Verwaltete Identität“ under „Zugriff zuweisen zu“ aus und klicken Sie dann auf „Mitglieder auswählen“. Ein Pop-up wird auf der rechten Seite angezeigt. Wählen Sie die neu erstellte, vom Benutzer zugewiesene verwaltete Identität aus und klicken Sie auf die Schaltfläche „Auswählen“.
11. Klicken Sie nun auf der Hauptseite auf die Schaltfläche „Überprüfen + zuweisen“. Klicken Sie nach der Validierung erneut auf die Schaltfläche „Überprüfen + zuweisen“.
12. Nach einigen Sekunden wird die vom Benutzer zugewiesene verwaltete Identität für das Speicherkonto bereitgestellt.
Nachdem Sie den verwalteten Identitäten nun eine Rolle im Speicherkonto zugewiesen haben, können Sie über die virtuelle Maschine auf die Speicherressourcen zugreifen.
Verwaltete Identitäten sind nützlich, weil darüber die Workload-Identitäten, die sich bei Azure Active Directory authentifizieren, automatisch verwaltet werden. So erhalten Anwendungen Token von Azure AD, ohne dass die Anmeldeinformationen und Geheimnisse im Code der Anwendung gespeichert werden müssen. Sie können diesen Identitäten Rollen innerhalb anderer Ressourcen zuweisen, die die Azure-AD-Authentifizierung für den Zugriff auf die Ressource unterstützen. Für Entwickler und Administratoren entfällt dadurch die manuelle Verwaltung der Anmeldeinformationen innerhalb des Anwendungscodes oder der Workloads, und dadurch werden die Möglichkeiten für Leaks von Sicherheitsdaten oder Passwörtern deutlich reduziert.