Berechtigungen und Sicherheit in Azure Chaos Studio

Das Azure Chaos Studio ermöglicht es Ihnen, die Resilienz von Diensten zu verbessern, indem Sie systematisch Fehler in Ihre Azure-Ressourcen einschleusen. Die Einschleusung von Fehlern ist eine effiziente Möglichkeit zur Verbesserung der Resilienz von Diensten, sie kann aber auch gefährlich sein. Das Verursachen von Fehlern in Ihrer Anwendung kann mehr Auswirkungen haben als ursprünglich vorgesehen und böswilligen Akteuren die Möglichkeit bieten, Ihre Anwendungen zu infiltrieren.

Chaos Studio verfügt über ein starkes Berechtigungsmodell, das verhindert, dass Fehler unbeabsichtigt oder von einem böswilligen Akteur ausgeführt werden. In diesem Artikel erfahren Sie, wie Sie Ressourcen schützen können, die für die Einschleusung von Fehlern mithilfe von Chaos Studio ins Visier genommen werden.

Wie kann ich die Möglichkeiten einschränken, Fehler mit Chaos Studio einzuschleusen?

Chaos Studio verfügt über drei Sicherheitsebenen, mit denen Sie steuern können, wie und wann Fehler für eine Ressource eingeschleust werden können:

  • 1. Ein Chaos-Experiment ist eine Azure-Ressource, die in einer Region, einer Ressourcengruppe und einem Abonnement bereitgestellt wird. Benutzer müssen über die entsprechenden Azure Resource Manager-Berechtigungen zum Erstellen, Aktualisieren, Starten, Abbrechen, Löschen oder Anzeigen eines Experiments verfügen.

    Jede Berechtigung ist ein Resource Manager-Vorgang, der präzise einer Identität oder als Teil einer Rolle mit Platzhalterberechtigungen zugewiesen werden kann. Die Rolle „Mitwirkender“ in Azure verfügt beispielsweise über die Berechtigung */write im zugewiesenen Bereich, was die Berechtigung Microsoft.Chaos/experiments/write mit einschließt.

    Beim Versuch, die Möglichkeit zur Einschleusung von Fehlern für eine Ressource zu steuern, ist Microsoft.Chaos/experiments/start/action der wichtigste einzuschränkende Vorgang. Dieser Vorgang startet ein Chaos-Experiment, das Fehler einschleust.

  • 2. Ein Chaos-Experiment verfügt über eine systemseitig zugewiesene verwaltete Identität oder über eine benutzerseitig zugewiesene verwaltete Identität, die Fehler für eine Ressource ausführt. Wenn Sie eine systemseitig zugewiesene verwaltete Identität für Ihr Experiment verwenden möchten, wird die Identität zum Zeitpunkt der Experimenterstellung in Ihrem Microsoft Entra-Mandanten erstellt. Benutzerseitig zugewiesene verwaltete Identitäten können für eine beliebige Anzahl von Experimenten verwendet werden.

    Innerhalb eines Chaos-Experiments können Sie die benutzerdefinierte Rollenzuweisung entweder für die Auswahl Ihrer systemseitig zugewiesenen verwalteten Identität oder für die Auswahl Ihrer benutzerseitig zugewiesenen verwalteten Identität aktivieren. Wenn Sie diese Funktion aktivieren, kann Chaos Studio eine benutzerdefinierte Rolle erstellen, die alle erforderlichen (und noch nicht in Ihrer Identitätsauswahl vorhandenen) Experimentaktionsfunktionen enthält, und sie der Identität Ihres Experiments zuweisen. Wenn ein Chaos-Experiment eine benutzerseitig zugewiesene verwaltete Identität verwendet, bleiben alle benutzerdefinierten Rollen, die der Experimentidentität von Chaos Studio zugewiesen wurden, nach dem Löschen des Experiments erhalten.

    Wenn Sie sich für die manuelle Erteilung Ihrer Experimentberechtigungen entscheiden, müssen Sie der jeweiligen Identität entsprechende Berechtigungen für alle Zielressourcen erteilen. Wenn die Experimentidentität nicht über die entsprechende Berechtigung für eine Ressource verfügt, kann sie keinen Fehler für diese Ressource ausführen.

  • 3. Jede Ressource muss als Ziel mit entsprechenden aktivierten Funktionen in Chaos Studio integriert werden. Wenn ein Ziel oder die Funktion für den ausgeführten Fehler nicht vorhanden ist, ist das Experiment nicht erfolgreich und hat keine Auswirkungen auf die Ressource.

Dem Benutzer zugewiesene Managed Identity

Ein Chaos-Experiment kann mithilfe einer benutzerseitig zugewiesenen verwalteten Identität ausreichende Berechtigungen erhalten, um Fehler in die Zielressourcen des Experiments einzuschleusen. Außerdem können benutzerseitig zugewiesene verwaltete Identitäten für eine beliebige Anzahl von Experimenten in Chaos Studio verwendet werden. Um diese Funktion nutzen zu können, müssen folgende Schritte ausgeführt werden:

  • 1. Erstellen Sie im Dienst für verwaltete Identitäten eine benutzerseitig zugewiesene verwaltete Identität. Bei dieser Gelegenheit können Sie Ihrer benutzerseitig zugewiesenen verwalteten Identität die Berechtigungen zuweisen, die zum Ausführen Ihrer Chaos-Experimente erforderlich sind.
  • 2. Wählen Sie beim Erstellen Ihres Chaos-Experiments eine benutzerseitig zugewiesene verwaltete Identität aus Ihrem Abonnement aus. In diesem Schritt können Sie die benutzerdefinierte Rollenzuweisung aktivieren. Wenn Sie diese Funktion aktivieren, werden Ihrer Identitätsauswahl basierend auf den Fehlern in Ihrem Experiment alle erforderlichen Berechtigungen erteilt, die sie ggf. benötigt.
  • 3. Überprüfen Sie nach dem Hinzufügen aller Fehler zu Ihrem Chaos-Experiment, ob Ihre Identitätskonfiguration alle erforderlichen Aktionen enthält, damit Ihr Chaos-Experiment erfolgreich ausgeführt werden kann. Falls nicht, wenden Sie sich an den Systemadministrator, um auf die Fehlerauswahl Ihres Experiments zuzugreifen oder sie zu bearbeiten.

Agent-Authentifizierung

Wenn Sie Agent-basierte Fehler ausführen, müssen Sie den Chaos Studio-Agent auf Ihrem virtuellen Computer (Virtual Machine, VM) oder in Ihrer VM-Skalierungsgruppe installieren. Der Agent verwendet eine benutzerseitig zugewiesene verwaltete Identität für die Authentifizierung bei Chaos Studio und ein Agent-Profil, um eine Beziehung zu einer bestimmten VM-Ressource einzurichten.

Wenn Sie einen virtuellen Computer oder eine VM-Skalierungsgruppe für Agent-basierte Fehler integrieren, erstellen Sie zunächst ein Agent-Ziel. Das Agent-Ziel muss über einen Verweis auf die benutzerseitig zugewiesene verwaltete Identität verfügen, die für die Authentifizierung verwendet wird. Das Agent-Ziel enthält eine Agent-Profil-ID, die bei der Installation des Agents als Konfiguration bereitgestellt wird. Agentprofile sind für jedes Ziel eindeutig, und Ziele sind für jede Ressource eindeutig.

Vorgänge und Rollen von Azure Resource Manager

Chaos Studio umfasst die folgenden Vorgänge:

Vorgang Beschreibung
Microsoft.Chaos/targets/[Read,Write,Delete] Ziel abrufen, erstellen, aktualisieren oder löschen.
Microsoft.Chaos/targets/capabilities/[Read,Write,Delete] Funktion abrufen, erstellen, aktualisieren oder löschen.
Microsoft.Chaos/locations/targetTypes/Read Alle Zieltypen abrufen.
Microsoft.Chaos/locations/targetTypes/capabilityTypes/Read Alle Funktionstypen abrufen.
Microsoft.Chaos/experiments/[Read,Write,Delete] Chaos-Experiment abrufen, erstellen, aktualisieren oder löschen.
Microsoft.Chaos/experiments/start/action Chaos-Experiment starten.
Microsoft.Chaos/experiments/cancel/action Chaos-Experiment beenden.
Microsoft.Chaos/experiments/executions/Read Ausführungsstatus für eine Ausführung eines Chaos-Experiments abrufen.
Microsoft.Chaos/experiments/executions/getExecutionDetails/action Ausführungsdetails (Status und Fehler für jede Aktion) für eine Ausführung eines Chaos-Experiments abrufen.

Um diese Berechtigungen präzise zu zuweisen, können Sie eine benutzerdefinierte Rolle erstellen.

Netzwerksicherheit

Alle Benutzerinteraktionen mit Chaos Studio erfolgen über Azure Resource Manager. Wenn ein Benutzer ein Experiment startet, interagiert das Experiment je nach Fehler ggf. mit Endpunkten, bei denen es sich nicht um Resource Manager handelt:

  • Dienstspezifische Fehler: Die meisten dienstspezifischen Fehler werden über Azure Resource Manager ausgeführt und erfordern keine Netzwerkendpunkte in einer Positivliste.
  • Dienstspezifische AKS Chaos Mesh-Fehler: Dienstspezifische Fehler für Azure Kubernetes Service, die Chaos Mesh verwenden, setzen Zugriff auf den Kubernetes-API-Server des AKS-Clusters voraus.
  • Agent-basierte Fehler: Für die Verwendung Agent-basierter Fehler benötigt der Agent Zugriff auf den Chaos Studio-Agent-Dienst. Eine VM oder VM-Skalierungsgruppe muss über ausgehenden Zugriff auf den Dienstendpunkt des Agents verfügen, damit der Agent erfolgreich eine Verbindung herstellen kann. Der Agent-Dienstendpunkt ist https://acs-prod-<region>.chaosagent.trafficmanager.net. Ersetzen Sie den Platzhalter <region> durch die Region, in der Ihre VM bereitgestellt wird. Ein Beispiel ist https://acs-prod-eastus.chaosagent.trafficmanager.net (für eine VM in „USA, Osten“).
  • Agent-basiertes privates Netzwerk: Der Chaos Studio-Agent unterstützt jetzt private Netzwerke. Weitere Informationen finden Sie unter Konfigurieren von Private Link für Agent-basierte Experimente (Vorschau).

Diensttags

Bei einem Diensttag handelt es sich um eine Gruppe von IP-Adresspräfixen, die Ein- und Ausgangsregeln für Netzwerksicherheitsgruppen zugewiesen werden können. Es verarbeitet automatisch Updates für die Gruppe der IP-Adresspräfixe ohne jeglichen Eingriff. Da Diensttags in erster Linie dazu dienen, die IP-Adressfilterung zu ermöglichen, sind sie allein nicht ausreichend, um den Datenverkehr zu schützen.

Sie können Diensttags verwenden, um eingehenden Datenverkehr von Chaos Studio explizit zuzulassen, ohne die IP-Adressen der Plattform kennen zu müssen. Das Diensttag von Chaos Studio ist ChaosStudio.

Eine Einschränkung von Diensttags besteht darin, dass sie nur mit Anwendungen verwendet werden können, die über eine öffentliche IP-Adresse verfügen. Wenn eine Ressource nur über eine private IP-Adresse verfügt, können Diensttags keinen Datenverkehr an sie weiterleiten.

Anwendungsfälle

Chaos Studio verwendet Diensttags für mehrere Anwendungsfälle.

  • Zur Verwendung agentbasierter Fehler muss der Chaos Studio-Agent, der in VMs von Kunden ausgeführt wird, mit dem Chaos Studio-Back-End-Dienst kommunizieren. Mit dem Diensttag können Kunden den Datenverkehr von der VM zum Chaos Studio-Dienst auf die Zulassungsliste setzen.
  • Für die Verwendung bestimmter Fehler, die eine Kommunikation außerhalb des management.azure.com-Namespaces erfordern (z. B. Chaos Mesh-Fehler für Azure Kubernetes Service), fließt der Datenverkehr vom Chaos Studio-Dienst zur Kundenressource. Mit dem Diensttag können Kunden den Datenverkehr vom Chaos Studio-Dienst zur Zielressource auf die Zulassungsliste setzen.
  • Kunden können andere Diensttags in den Netzwerksicherheitsgruppen-Regeln verwenden, um den Datenverkehr zu/von bestimmten Azure-Diensten zu steuern.

Durch Angeben des ChaosStudio-Diensttags in Sicherheitsregeln kann Datenverkehr für den Chaos Studio-Dienst zugelassen oder verweigert werden, ohne einzelne IP-Adressen anzugeben.

Sicherheitshinweise

Wenn Sie die Verwendung von Diensttags erwägen oder Diensttags nutzen, ist zu beachten, dass diese keine präzise Kontrolle über einzelne IP-Adressen bieten und nicht als einzige Methode zum Sichern eines Netzwerks verwendet werden sollten. Sie sind kein Ersatz für geeignete Netzwerksicherheitsmaßnahmen.

Datenverschlüsselung

Chaos Studio verschlüsselt standardmäßig alle Daten. Chaos Studio akzeptiert nur Eingaben für Systemeigenschaften wie Objekt-IDs der verwalteten Identität, Experiment-/Schritt-/Branchnamen und Fehlerparameter. Ein Beispiel wäre etwa der Netzwerkportbereich, der bei einem Fehler beim Trennen der Netzwerkverbindung blockiert werden soll.

Diese Eigenschaften sollten nicht zum Speichern von vertraulichen Daten wie Zahlungsinformationen oder Kennwörtern verwendet werden. Weitere Informationen zum Schutz Ihrer Daten durch Chaos Studio finden Sie unter Schutz der Azure-Kundendaten.

Kunden-Lockbox

Lockbox bietet Ihnen die Möglichkeit, die Zugriffsanforderung eines Microsoft-Technikers für Ihre Daten im Rahmen einer Supportanfrage zu genehmigen oder abzulehnen.

Lockbox kann für Chaos-Experimentinformationen aktiviert werden, und die Berechtigung für den Zugriff auf Daten wird vom Kunden auf Abonnementebene erteilt, wenn Lockbox aktiviert ist.

Weitere Informationen finden Sie unter Kunden-Lockbox für Microsoft Azure.

Nächste Schritte

Nachdem Sie nun wissen, wie Sie Ihr Chaos-Experiment schützen können, sind Sie bereit für Folgendes: