BlogVerschlüsselung at Rest in Azure (Teil 2)

Verschlüsselung at Rest in Azure (Teil 2)

Der erste Teil unserer Reihe befasste sich mit der Verschlüsselung für Speicherkonten. In diesem Beitrag kümmern wir uns um die Festplatten deiner virtuellen Maschinen. Das umfasst wiederrum, verwaltete Datenträger, die Azure Disk Encryption (ADE) und die Verschlüsselung auf dem Host.  Der ditte und letzte Teil wird sich der Verschlüsslung im Kontext von SQL-Datenbanken, also Transparent „Data Encryption“ und „Always Encrypted“ widmen.
In allen drei Beiträgen befassen wir uns soweit erforderlich auch mit Azure-Schlüsseltresoren (Key Vault). Alle Themen werden vor allem im Azure-Kurs AZ 500, „Azure-Security-Engineer“ benötigt und behandelt.

Verschlüsseln verwalteter Datenträger mit CMK

Du weißt nun, wie du Daten in einen Speicherkonto mit eigenen Schlüsseln verschlüsseln kannst. Was ist aber mit den Datenträgern von virtuellen Maschinen? Schaust du dir die Details des Hosten virtueller Maschinen in Azure im Azure Architecture Center an, sieht das so aus:

Die Bereitstellung virtueller Maschinen auf der Azure-Plattform: ©Quelle: Microsoft

Demnach kennt jeder Azure VM Betriebssystemdatenträger (unter Windows Laufwerk C:\), einen oder mehrere Daten-Datenträger (unter Windows ab Laufwerk F:\) und ggf. einen temporären Datenträger (Laufwerk D:\). Alle erscheinen aus Sicht der VM als lokale Block-Geräte. Microsoft unterscheidet hier zwischen verwalteten Datenträgern (OS- und Data-Disks) und den temporären Datenträgern.

Verwaltete Datenträger werden komplett von Microsoft verwaltet (daher der Name). Azure legt diese in einem für dich nicht sichtbaren Speicherkonto als Objekte (Page-Blobs) ab, d. h. sie werden von der Speichervirtualisierungslösung der Azure-Plattform bereitgestellt und über das Netzwerk und den internen Azure-Backbone an die VM angeschlossen. Du kannst die Methode mit einer LUN aus deinem lokalen SAN vergleichen. Da du das Speicherkonto nicht kennst oder siehst, in dem Azure deine VM-Datenträger ablegt, kannst du die serverseitige Verschlüsselung deiner VM-Datenträger auch nicht auf die oben gezeigte Weise beeinflussen.

Trotzdem erfolgt auch die Ver- und Entschlüsselung von verwalteten Azure-Datenträgern durch Verwenden der  Envelope-Verschlüsselung vollständig transparent. Dabei werden deine Daten mithilfe eines symetrischen AES-256-basierten Datenverschlüsselungsschlüssels (DEK) verschlüsselt, der wiederum mit deinen (RSA)-Schlüssel geschützt wird. Der Speicherdienst generiert Datenverschlüsselungsschlüssel und verschlüsselt sie mit deinem kundenseitig verwalteten Schlüssel unter Verwendung der RSA-Verschlüsselung. Mit dem Envelope-Verfahren kannst du deine Schlüssel z. B. in Übereinstimmung mit deinen Kompatibilitätsrichtlinien regelmäßig rotieren, ohne damit deine VMs zu beeinträchtigen. Rotierst du deine Schlüssel, verschlüsselt der Speicherdienst die Datenverschlüsselungsschlüssel mit deinem neuen, kundenseitig verwalteten Schlüsseln neu. Du musst dazu nur als Administrator-Benutzer eine so genannte „Datenträgerverschlüsslungssatz“-Ressource erstellen. Hierfür musst du wiederrum eine Azure Key Vault-ID und entweder eine Schlüssel-URL angeben oder einen Schlüssel aus einem existenten oder neu zu erstellenden Key Vault auswählen.

Der Datenträgerverschlüsselungssatz ist eine neue Ressource, die von Microsoft zur Vereinfachung der Schlüsselverwaltung für verwaltete Datenträger eingeführt wurde. Beim Erstellen eines Datenträgerverschlüsselungssatzes wird eine benutzerseitig zugewiesene verwaltete Identität verwendet und mit dem Datenträgerverschlüsselungssatz verknüpft. Suche daher im Azure-Portal nach „Verwaltete Identitäten“ und erstelle ein solche. Du benötigst dazu lediglich eine Ressourcengruppe, eine Region und einen Namen.

Das Erstellen einer verwalteten Identität

Außerdem muss du der eben erstellten Identität in deinem Key Vault eine passende Zugriffsrichtlinie zum Abrufen, Packen und Entpacken von Schlüsseln erteilen. Die Identität benötigt mindestens Berechtigungen, um auf Schlüssel zuzugreifen. Dies ermöglicht das Ver- und Entschlüsseln von Daten mit den Schlüsseln im Key Vault. Du machst das im Abschnitt „Zugriffsrichtlinien“ deines Schlüsseltresors.

Das Erteilen von Schlüsselberechtigungen mit Hilfe einer Zugriffsrichtlinie

Danach kannst du einen Datenträgerverschlüsselungssatz erstellen und mit einem Key Vault verknüpfen. Du kannst für das folgende Beispiel problemlos den gleichen Key Vault und den gleichen Schlüssel verwenden, wie bei der Speicherkontoverschlüsslung oben, auch wenn das für die Praxis nicht zu empfehlen ist. Du musst hier zusätzlich die Schlüsselversion auswählen.

Bei „Verschlüsselungstyp“ wählst du z. B. „Verschlüsselung ruhender Daten mit einem kundenseitig verwalteten Schlüssel“. Bei „Benutzerseitig zugewiesene Identität“ wählst du die eben erstellte Identität aus.

Erstellen eines Datenträgerverschlüsselungssatzes

Du hast jetzt einen Datenträgerverschlüsselungssatz. Der weitere „interne“ Workflow bei der Envelope-Verschlüsselung ist in etwa so: Der Benutzer, der bei dir als Azure Key Vault-Administrator fungiert und der in seinem Key Vault einen neuen RSA-Key – den so genannten Key-Encryption-Key (KEK) – erstellt oder importiert hat erteilt der verwalteten Identität des Datenträgerverschlüsselungssatzes Berechtigungen zum Durchführen von Vorgängen im Schlüsseltresor. Ein „normaler“ VM-Benutzer kann nun einen neuen verschlüsselten Datenträger erstellen oder einen vorhandenen Datenträger verschlüsseln, indem er den Datenträger einem Datenträgerverschlüsselungssatz zuordnet. Verwaltete Datenträger verwenden die verwaltete Identität, um Anforderungen an den Azure Key Vault zu senden. Beim Lesen oder Schreiben von Daten senden verwaltete Datenträger Anforderungen an den Azure Key Vault, um den Datenverschlüsselungsschlüssel (DEK) zu verschlüsseln (wrap) und zu entschlüsseln (unwrap), um damit die Daten zu verschlüsseln und zu entschlüsseln. Folgende Abbildung illustriert den Zusammenhang:

Der Workflow des Envelope-Verfahrens: ©Quelle: Microsoft

Um das Ganze nun zum Verschlüsseln von Datenträgern einzusetzen, lassen sich drei Fälle unterscheiden:

  1. Erstellen eines neuen verschlüsselten Datenträgers (der später einer VM angehängt werden könnte)
  2. Verschlüsseln eines vorhandenen Datenträgers, der noch nicht einer VM zugeordnet ist
  3. Verschlüsseln eines vorhandenen Datenträgers, der bereits einer VM zugeordnet ist.

Beginnen wir mit dem einfachsten Fall, dem Erstellen eines neuen verschlüsselten Datenträgers: Suche im Azure-Portal nach Datenträger und trage im ersten Tab „Grundeinstellungen“ deines Datenträgers die gewünschten Werte für Subscription, Ressourcengruppe, Name, Größe usw. sein. Es versteht sich von selbst, dass dein Datenträger in der gleichen Region sein muss, wie die übrigen oben erstellten Komponenten. Navigiere weiter zum Tab „Verschlüsslung“. Hier wählst du bei „Schlüsselverwaltung“ statt „Plattform verwalteter Schlüssel“ (Default) den Eintrag „Kundenseitig verwalteter Schlüssel / <Name deines Datenträgerverschlüsselungssatzes>“.

Verschlüsseln eines neu zu erstellenden Datenträgers

Das wars dann schon. Mit „Überprüfen und Erstellen“ bekommst du eine neue Disk mit kundenseitig verwalteter Verschlüsslung im Ruhezustand.

Ebenso einfach gelingt das nachträgliche Umstellen der Verschlüsselung in Ruhe bei einem vorhandenen (aber nicht an einer eingeschalteten VM angehängten) Datenträger. Wechsele hier einfach im Blade des Datenträgers zum Abschnitt „Einstellungen / Verschlüsselung“ und wähle bei „Schlüsselverwaltung“ wieder deinen Datenträgerverschlüsslungssatz aus.

Verschlüsseln eines vorhandenen Datenträgers

Etwas aufwendiger ist das Umstellen der Verschlüsselung der OS- und/oder Daten-Datenträger einer existierenden virtuellen Maschine. Navigierst du im VM-Blade einer eingeschalteten VM zu „Einstellungen / Datenträger“ kannst du die der VM zugeordneten Datenträger zwar sehen, hast hier aber keine Möglichkeiten, irgendetwas zu konfigurieren.

Du könntest lediglich den Links zu den jeweiligen Datenträgern – hier ein „Betriebssystemdatenträger“ und ein „Datenträger“ folgen.

Die einer Azure-VM angehängten Datenträger

Navigierst du jetzt z. B. zum Datenträger „datadisk-0“ und dort zu „Verschlüsselung“ wirst du feststellen, dass alle Änderungsmöglichkeiten ausgegraut sind, weil die VM eingeschaltet ist.

Bei einer eingeschalteten VM kannst du die Verschlüsselung der Datenträger nicht konfigurieren

Fährst du VM jedoch vorab herunter, kannst du die Verschlüsslung genauso bearbeiten wie oben gezeigt.

Verschlüsseln der einer VM angehängten Data-Disk

Das gilt gleichermaßen für den OS-Datenträger:

Verschlüsseln der einer VM angehängten OS-Disk

Azure Disk Encyption (TDE)

Bisher sind alle deine VM Datenträger serverseitig in Ruhe verschlüsselt  – wahlweise mit plattformseitig – oder kundenseitig verwalteten Schlüsseln – weil sie als Objekte in der Azure-eigenen Speichervirtualisierung verwaltet und abgelegt werden. Allerdings könnte sich immer noch ein „böswilliger Microsoft-Administrator“ (den es natürlich nicht gibt) mit entsprechenden Berechtigungen zur Speichervirtualisierungsplattform, Zugriff auf die zugehörigen Images (Objekte) um zugeordneten Speicherkonto verschaffen. Verschlüsselst du aber zusätzlich deine Datenträger im Gast-System deiner VM, findet der Bösewicht im Image-File nur verschlüsselte Daten. Hier schafft die Azure Disk Encryption Abhilfe. Der Dienst stellt (bei Windows-VMs) unter Zuhilfenahme des Windows-Features „BitLocker“ eine Volume-Verschlüsselung für das Betriebssystem und die Datenträger von virtuellen Azure-Computern zur Verfügung und ist in Azure Key Vault integriert, um die Steuerung und Verwaltung von Verschlüsselungsschlüsseln und Geheimnissen für Datenträger zu ermöglichen. Die Azure-Disk-Encryption von Linux-VMs hingegen basiert auf „DMCrypt“, einer Linux-Kernel-Funktion.

Zum Aktivieren der Azure Disk Encryption navigierst du wieder im Blade deiner virtuellen Maschine zu „Einstellungen / Datenträger“ und klickst dort oben auf „Zusätzliche Einstellungen“. In diesem Fall „muss“ die VM eingeschaltet sein, sonst lässt sich die Funktion nicht aktivieren. Hier wählst du im Abschnitt „Verschlüsslungseinstellungen“ bei „Zu verschlüsselnde Datenträger“ entweder „Betriebssystemdatenträger“ oder „Datenträger für Betriebssystem und Daten“ aus.

Für ADE muss die VM ausgeschaltet sein

Danach musst du nur noch Schlüsseltresor, Schlüssel und Version auswählen. Du kannst zum Testen durchaus den gleichen Key Vault und den gleichen Schlüssel verwenden, auch wenn sich das in der Praxis nicht empfiehlt.

Das Aktivieren der Azure-Disk-Encryption

Mit einem Klick auf „Speichern“ ist die ADE nach wenigen Minuten aktiviert und du solltest tatsächliche keine Performanceeinschränkungen bemerken. Möchtest du für die ADE den gleichen Key Vault verwenden, wie für die anderen Beispiele, muss allerdings in dessen „Zugriffskonfiguration“ die Option „Azure Disk Encryption Volumeverschlüsselung“ aktiviert sein, damit die ADE zum Abrufen der Schlüssel berechtig ist.

Die ADE-Unterstützung muss im zugehörigen Key Vault aktiviert sein

Achtung: Es gibt hier einige Einschränkungen. So unterstützten Windows Server 2022 und Windows 11 keine RSA-2048-Bit-Schlüssel mehr. Du müsstest dir hierfür vorher einen passenden RSA-Key z. B. mit 4096 Bit erzeugen.

Eine RSA-Key mit mehr als 2048 Bit ist für Windows 11 und Server 2022 zwingend

Damit funktioniert die ADE dann auch bei diesen Betriebssystemen.

Erfolgreiche Aktivieren der ADE

Verschlüsselung auf dem Host

Vielleicht ist dir bei der Gelegenheit in den Konfigurationsmöglichkeiten der VM-Datenträger bei „Zusätzliche Einstellungen“ aufgefallen, dass es hier auch eine Funktion „Verschlüsselung auf dem Host“ gibt, die du optional aktivieren kannst. Mit dieser kannst du u. a. den ABC-Cache, den temporären Datenträger und etwaige vorhandene kurzlebige Datenträger auf deinen virtuellen Computern verschlüsseln. Aktivierst du die Verschlüsselung auf dem Host (hiermit ist der physische Host im Azure-Datacenter gemeint, der deine VM hostet) werden die auf dem VM-Host gespeicherten Daten ruhend verschlüsselt und erst dann verschlüsselt an den Speicherdienst übermittelt.  

Das ist vor allem für kurzlebige Betriebssystemdatenträger und temporäre Datenträger interessant, welche ja (wie die Abbildung oben zeigt) vom physischen Host bereitgestellt und verwaltet werden. Sie werden dann im Ruhezustand per Default mit plattformseitig verwalteten Schlüsseln verschlüsselt, sobald du diese End-to-End-Verschlüsselung aktivierst. Bei uns hat die VM allerdings keine temporären und auch keine kurzlebigen Datenträger.

Die Verschlüsslung auf dem Host ist auch für reguläre Betriebssystem- und Daten-Datenträger nützlich. Sofern aktiviert wird dann deren Cache im Ruhezustand entweder mit kundenseitig verwalteten Schlüsseln oder mit plattformseitig verwalteten Schlüsseln verschlüsselt, abhängig vom ausgewählten Datenträgerverschlüsselungstyp. Ist z. B. wie in unserem Fall der OS- oder Daten-Datenträger bereits mit kundenseitig verwalteten Schlüsseln verschlüsselt, wird beim Aktivieren der Verschlüsslung auf dem Host auch der Cache für den Datenträger mit kundenseitig verwalteten Schlüsseln verschlüsselt. Allerdings „beißt“ sich diese Funktion mit der Azure Disk Encryption. Ist letztere aktiviert, lässt sich die Verschlüsslung auf dem Host nicht aktvieren.

Verschlüsslung auf dem Host kollidiert mit ADE

Im Gegensatz zur ADE „muss“ die VM ausgeschaltet sein, um das Feature altvieren zu können:

Aktivieren der Verschlüsselung auf dem Host

Kontakt

Dein INCAS Team
Akkordion öffnen
telephone-icon-contact-coaching-box
0800 4772466
email-icon-contact-coaching-box
info@incas-training.de

*“ zeigt erforderliche Felder an

Hidden
Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Schulungen die dich interessieren könnten

Bewertungen

Kundenstimme männlich
Michael W.
Ernst & Young Retail Services GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Ich fühlte mich in diesem Seminar hervorragend betreut. Es war sehr praxisorientiert und anschaulich.
Kundenstimme männlich
Markus H.
CARAT Dreieich
star-participantstar-participantstar-participantstar-participantstar-participant
Der Trainer machte einen sehr netten und kompetenten Eindruck und ging auf unsere Wünsche und Anregungen sehr praxisorientiert ein .
Kundenstimme männlich
Torsten B.
Westdeutscher Rundfunk WDR
star-participantstar-participantstar-participantstar-participantstar-participant
Das Seminar hat nicht nur Spaß gemacht, sondern auch wirklich 'ne Menge gebracht :-)
Kundenstimme männlich
Mausolf B.
Struers GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Tolle Schulung - kompetenter Trainer, der geduldig auf alle Fragen einging, diese beantworten konnte und darüber hinaus viele neue Anregungen mit auf den Weg gab. Die Schulung hat Spaß gemacht.