VHD-Images verschlüsseln
Um das Feature zur E2E-Verschlüsselung zu nutzen, müssen Sie Ihr VHD-Image (Virtual Hard Drive) vor dem Import in die Imagevorlagen zur Bereitstellung verschlüsselter Instanzen mit dem Tool 'vhd-util' verschlüsseln. Es werden zwei Ebenen der AES-Verschlüsselung unterstützt: AES 256 Bit und AES 512 Bit.
Voraussetzungen für verschlüsselte VHD-Images
Verschlüsselte VHD-Images müssen die folgenden Voraussetzungen erfüllen:
- Sie müssen im VHD-Format vorliegen.
- Sie müssen mit der Infrastrukturumgebung der IBM Cloud®-Konsole kompatibel sein.
- Sie müssen mit einem unterstützten Betriebssystem bereitgestellt werden.
- Sie müssen cloud-init-fähig sein.
- Sie müssen mit dem Tool 'vhd-util' verschlüsselt worden sein.
Eigenes VHD-Image verschlüsseln
Führen Sie die folgenden Schritte aus, um Ihr verschlüsseltes VHD-Image zu erstellen:
-
Wählen Sie ein CentOS-System mit Version 7 oder höher aus, um Ihre VHD-Datei (virtuelles Plattenimage) für IBM Cloud zu verschlüsseln. Falls Sie keinen Zugriff auf die physische Hardware mit installiertem CentOS haben, können Sie eine virtuelle Serverinstanz mit CentOS 7 innerhalb von IBM Cloud bereitstellen; verwenden Sie dabei entweder einen öffentlichen oder einen dedizierten Host. Das für die Verschlüsselung der VHD-Dateien verwendete CentOS-System muss selbst verschlüsselt werden.
-
Laden Sie das Verschlüsselungstool von IBM Cloud herunter und verwenden Sie dann die beste verfügbare Option zur Verschlüsselung der VHD.
Option 1 Falls Ihr CentOS-System nicht in IBM Cloud ausgeführt wird, melden Sie bei Ihrem Kunden-VPN an und stellen Sie eine Verbindung her. Weitere Informationen zum Festlegen eines VPN finden Sie in "SSL-VPN-Verbindungen konfigurieren". Nachdem Sie eine Verbindung zu Ihrem VPN hergestellt haben, rufen Sie die IBM Cloud Download-Site auf und wählen Sie die RPM-Paketdatei des vhd-util-Tools aus:
vhd-util-standalone-3.5.0-xs.2+1.0_71.2.2.x86_64.rpm
.Option 2 Wenn Sie die RPM-Paketdatei nicht direkt in Ihr CentOS-System herunterladen können, stellen Sie eine Verbindung zu Ihrem Kunden-VPN her und laden Sie die Datei auf die Workstation herunter, an der Sie arbeiten. Anschließend können Sie sie mithilfe des Befehls zum sicheren Kopieren (scp) in Ihr CentOS-System hochladen. Bei der Verwendung einer virtuellen Serverinstanz in IBM Cloud nutzen Sie für den Upload die öffentliche IP-Adresse des Systems in Verbindung mit dem folgenden Befehl.
scp vhd-util-standalone-3.5.0-xs.2+1.0_71.2.2.x86_64.rpm root@<vsi_public_ip>:
Option 3 Wenn Sie vorhaben, in Schritt 1 eine virtuelle CentOS-Serverinstanz in IBM Cloud bereitzustellen, können Sie den folgenden Befehl des Typs 'curl' verwenden, und zwar ohne eine Verbindung zu Ihrem Kunden-VPN herzustellen:
curl -O http://downloads.service.softlayer.com/citrix/xen/vhd-util-standalone-3.5.0-xs.2+1.0_71.2.2.x86_64.rpm
-
Installieren Sie den RPM mithilfe des folgenden Befehls:
rpm -iv vhd-util-standalone-3.5.0-xs.2+1.0_71.2.2.x86_64.rpm
-
Geben Sie den AES-Datenverschlüsselungsschlüssel (DEK) an, den Sie für die Ver- und Entschlüsselung Ihres Plattenimage benötigen, und schreiben Sie ihn anschließend in eine Schlüsseldatei. Bei diesem DEK handelt es sich um den gleichen base64-codierten DEK, den Sie mit dem vom Schlüsselmanagementservice bereitgestellten Kundenrootschlüssel eingeschlossen haben. Dieses Vorgehen wird in Ihre Umgebung vorbereiten erläutert. Für die Schlüsselinformationen, die in Schlüsseldateien geschrieben werden, darf kein Wrapping durchgeführt worden sein und sie dürfen nicht verschlüsselt sein.
Da die Schlüsseldatei keine Base64-Codierung aufweist, ist es nicht möglich, mithilfe der standardmäßigen ASCII-Zeichen den Inhalt der Schlüsseldatei über die Befehlszeile zu drucken oder anzuzeigen.
Mit dem folgenden Befehl können Sie Schlüsseldateien mit einem Verschlüsselungsschlüssel vom Typ AES 256 Bit oder AES 512 Bit erstellen.
echo <data_key> | base64 -d - > <keyfile_name>
Beispielbefehl:
echo Nrfen98EpMxF2B+wdgLfagzrqvgUZfMK4vL2T0NsT20ihrsNC9pUUHtizF6218pze8RLCgQ6kwxuE58IWLzgDA== | base64 -d - > aes512.dek
-
Verwenden Sie den folgenden Befehl, um die Schlüsseldateien zu prüfen, die Sie im vorherigen Schritt erstellt haben:
vhd-util key -C -k <keyfile_name>
Beispielbefehl mit Ausgabe:
vhd-util key -C -k aes512.dek vhd_util_read_key: using keyfile aes512.dek, Size (bytes) 64 21681bba94f04b33b112f5f90a0faa885a6d1dbf1bd68ed16c5b995143088eda
Die erste Zeile der Ausgabe im vorherigen Beispiel gibt an, dass die Schlüsseldatei mit dem Namen
aes512.dek
einen Schlüssel mit 64 Byte enthält. Die Zahlen in der zweiten Zeile sind die SHA256-Hashwerte oder Sicherheitshashwerte für die jeweiligen Verschlüsselungsschlüssel. Die Ausgabe für Dateien, die einen 256-Bit-Verschlüsselungsschlüssel enthalten, weist auf einen Schlüssel mit 32 Byte hin. -
Verwenden Sie den folgenden Befehl, um verschlüsselte Kopien Ihrer VHD-Dateien zu erstellen.
target_vhd
steht für den Namen der Datei, die die verschlüsseltesource_vhd
-Version enthält.vhd-util copy -n <source_vhd> -N <target_vhd> -k <keyfile_name>
Beispielbefehl:
vhd-util copy -n debian8-ne.vhd -N debian8-aes512.vhd -k aes512.dek
-
Überprüfen Sie mithilfe des folgenden Befehls, ob die VHD-Dateien verschlüsselt wurden.
vhd-util key -p -n <vhd_filename>
Beispielbefehl mit Ausgabe:
vhd-util key -p -n debian8-aes512.vhd 0000000000000000000000000000000000000000000000000000000000000000 21681bba94f04b33b112f5f90a0faa885a6d1dbf1bd68ed16c5b995143088eda
Ist die VHD-Datei verschlüsselt, sehen Sie ähnlich wie im vorherigen Beispiel in der Ausgabe zwei Hashwerte. Der erste Hashwert besteht nur aus Nullen. Der zweite Hashwert ist der SHA256-Hashwert, den der AES-Verschlüsselungsschlüssel für die Ver- und Entschlüsselung der VHD nutzt. Stellen Sie sicher, dass die SHA256-Hashwerte für die VHD-Dateien mit den in Schritt 5 gezeigten Hashwerten identisch sind.
Durch den Beispielbefehl in Schritt 7 wird eine neue verschlüsselte VHD-Datei mit dem Namen “debian8-aes512.vhd” erstellt. Sie wird mit dem AES 512-Bit-Verschlüsselungsschlüssel aus der Schlüsseldatei “aes512.dek” verschlüsselt.
Der SHA256-Hashwert für die Verschlüsselung lautet 21681bba94f04b33b112f5f90a0faa885a6d1dbf1bd68ed16c5b995143088eda
.