Der Inside-Out-Sicherheits Blog - Der Inside-Out-Sicherheits Blog

Verwaltete Azure-Identitäten: Vollständige Anleitung mit kostenloser Demonstration

Geschrieben von Neeraj Kumar | Oct 24, 2022 8:04:18 AM

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.

Was sind verwaltete Identitäten in Azure?

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.

Holen Sie sich den kostenlosen Grundlagen-Videokurs für PowerShell und Active Directory.

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.

Verschiedene Arten verwalteter Identitäten und die Unterschiede zwischen ihnen

Es gibt zwei Arten von verwalteten Identitäten: 

  1. Vom System zugewiesene verwaltete Identitäten
  2. Vom Benutzer zugewiesene verwaltete 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

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. 

Vom Benutzer zugewiesene verwaltete Identitäten

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. 

Unterschiede zwischen vom System und vom Benutzer zugewiesenen verwalteten Identitäten

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.

Wie funktionieren verwaltete Identitäten?

Ü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.

Sieben Schritte zur Implementierung von verwalteten Azure-Identitäten:

  • Schritt 1: Anfrage wird an den Azure Resource Manager gesendet, um eine verwaltete Identität zu aktivieren (im Falle einer vom System zugewiesenen verwalteten Identität) oder zu erstellen (im Falle einer vom Benutzer zugewiesenen verwalteten Identität).
  • Schritt 2: Für vom System zugewiesen verwaltete Identitäten erstellt der Azure Resource Manager einen Dienstprinzipal für die verwaltete Identität innerhalb von AD, sobald er eine Anfrage erhält, eine verwaltete Identität auf der virtuellen Maschine zu aktivieren. Der vertrauenswürdige Azure-AD-Mandant hostet den neuen Dienstprinzipal.
    • Bei vom Benutzer zugewiesenen verwalteten Identitäten erhält der Azure Resource Manager die Anfrage, die verwaltete Identität als separate Ressource zu erstellen. Wenn die vom Benutzer zugewiesene verwaltete Identität erstellt wird, wird auch ein entsprechender Dienstprinzipal vom Resource Manager innerhalb des vertrauenswürdigen Azure-AD-Mandanten erstellt.
  • Schritt 3: Für vom System zugewiesene verwaltete Identitäten aktualisiert der Resource Manager die Identität der virtuellen Maschine über den Identitäts-Endpoint IMDS (Azure Instance Metadata Service). Diese Konfiguration stellt dem Endpoint die Dienstprinzipal-Client-ID und das Zertifikat zur Verfügung.
    • Wenn bei vom Benutzer zugewiesenen verwalteten Identitäten der Resource Manager die Anfrage zur Konfiguration der vom Benutzer zugewiesenen verwalteten Identität auf virtuellen Maschinen erhält, aktualisiert er anschließend den IMDS-Identitäts-Endpoint mit der Dienstprinzipal-Client-ID und dem Zertifikat der vom Benutzer zugewiesenen verwalteten Identität.
  • Schritt 4: Nachdem Sie den Dienstprinzipal erstellt und die Identität der virtuellen Maschine aktiviert bzw. zugewiesen haben, müssen Sie die Dienstprinzipalinformationen verwenden, um der Azure-Ressource eine geeignete RBAC zuzuweisen.
  • Schritt 5: Der auf der virtuellen Maschine ausgeführte Anwendungscode fordert einen Token vom IMDS-Endpoint an, auf den nur innerhalb der virtuellen Maschine zugegriffen werden kann. Für Token-Anfragen werden bestimmte Parameter gesendet. Das sind:
    • Ressourcenparameter: legt den Dienst fest, an den der Token zur Authentifizierung gesendet wird.
    • API-Versionsparameter: legt die IMDS-Version fest. Verwenden Sie „api-version=2018-02-01“ oder höher.
    • Client-ID-Parameter: der Dienstprinzipal für die von Token angeforderte Identität. Dies gilt nur für vom Benutzer zugewiesene verwaltete Identitäten, da nur so einer einzelnen virtuellen Maschine mehr als eine Identität zugewiesen werden kann.
  • Schritt 6: Die Zugriffstokenanfrage wird über die Client-ID und das Zertifikat an Azure AD gesendet. Azure AD gibt einen JSON-Web-Token (JWT) zurück.
  • Schritt 7: Der Code sendet jetzt den Azure-AD-Token, um auf den gewünschten Azure-Dienst zuzugreifen, sofern die Azure-AD-Authentifizierung unterstützt wird.

Erstellung und Konfiguration verwalteter Identitäten: Demonstration

Im Folgenden finden Sie die Schritte zum Erstellen und Konfigurieren von verwalteten Identitäten sowie zur Zuweisung von RBACs.

  1. Festlegen des Szenarios: Lab-Ziele
  2. Voraussetzungen
  3. Phase 1: Arbeit mit vom System zugewiesenen verwalteten Identitäten
  4. Phase 2: Arbeit mit vom Benutzer zugewiesenen verwalteten Identitäten

Festlegen des Szenarios: Lab-Ziele

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.

Voraussetzungen für das Lab

  1. Ein Azure-Abonnement ist erforderlich. Klicken Sie hier, um sich anzumelden.
  2. Ein virtuelles Netzwerk
  3. Eine virtuelle Maschine innerhalb des virtuellen Netzwerks
  4. Ein Speicherkonto für die Zuweisung der RBAC

Phase 1: Arbeit mit vom System zugewiesenen verwalteten Identitäten

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.

Phase 2: Arbeit mit vom Benutzer zugewiesenen verwalteten Identitäten

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“.

9. Weisen Sie auf der Seite „Rollenzuweisung hinzufügen“ die Rolle zur vom Benutzer zugewiesenen verwalteten Identität zu, die soeben erstellt wurde.

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.

FAZIT

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.