IBM Cloud Docs
Verschlüsseltes angepasstes Image erstellen

Verschlüsseltes angepasstes Image erstellen

Wenn Sie ein benutzerdefiniertes qcow2-Bild haben, das die Anforderungen für die IBM Cloud® Virtual Private Cloud-Infrastruktur erfüllt, können Sie es verschlüsseln. Das folgende Verfahren beschreibt, wie Sie Ihr benutzerdefiniertes Image mit LUKS-Verschlüsselung verschlüsseln, indem Sie QEMU und Ihre eigene eindeutige Passphrase verwenden. Nachdem Sie das Image verschlüsselt haben, schließen Sie die Kennphrase mit Ihrem Kundenrootschlüssel (CRK) ein. Der eingeschlossene (oder verschlüsselte) Datenverschlüsselungsschlüssel wird mit Ihren Image-Metadaten gespeichert, wenn Sie ihn in IBM Cloud VPCimportieren.

Eine schnelle Möglichkeit, ein verschlüsseltes angepasstes Image zu erstellen, ist die Verwendung eines Images vom Datenträger. Sie können diese Funktion verwenden, um ein angepasstes Image aus dem Bootdatenträger einer Instanz zu erstellen und die vom Kunden verwaltete Verschlüsselung anzugeben. Weitere Informationen finden Sie unter Informationen zum Erstellen eines Image aus einem Datenträger.

Sie können kein verschlüsseltes angepasstes Image in einem privaten Katalog oder auf einem Bare-Metal-Server verwenden.

Weitere Informationen finden Sie unter Einführung in SSH-Schlüssel.

Funktionsweise verschlüsselter angepasster Images

Nach der Verschlüsselung eines angepassten Image mit Ihrer eigenen Kennphrase können Sie es in IBM Cloud Object Storage hochladen. Bevor Sie das verschlüsselte Image in IBM Cloud VPC hochladen, müssen Sie einen Schlüsselmanagementservice (KMS - Key Management Service) einrichten und einen angepassten Kundenrootschlüssel (CRK - Customer Root Key) erstellen. Verwenden Sie dann Ihr CRK, um die Passphrase zu schützen, die Sie zum Verschlüsseln Ihres Bildes verwenden. Durch das Wrapping der geheimen Kennphrase mit Ihrem CRK erstellen Sie ein Element, dass im KMS als WEDK (Wrapped Data Encryption Key - Datenverschlüsselungsschlüssel mit Wrapping) bezeichnet wird. Durch das Umschließen Ihrer Passphrasendaten werden diese verschlüsselt und gesichert, sodass Sie Ihre Passphrase nie im Klartext weitergeben müssen.

Wenn Sie das Image importieren, müssen Sie den Cloudressourcennamen (CRN) für Ihren Kundenrootschlüssel (CRK) angeben, der in Ihrem KMS gespeichert wird. Darüber hinaus müssen Sie auch den verschlüsselten Text (Ciphertext) für Ihren Datenverschlüsselungsschlüssel mit Wrapping (WDEK) angeben. Die Kennphrase wird immer verschlüsselt im WDEK gespeichert. Das Wrapping wird nur aufgehoben, wenn ein virtueller Server, der das verschlüsselte Image verwendet, gestartet wird.

Wenn Sie bereit sind, einen virtuellen Server mit dem verschlüsselten Image bereitzustellen, sind die Verschlüsselungsdaten nicht erforderlich. Der WDEK und der CRN des CRK werden als Metadaten zusammen mit dem Image gespeichert. Weitere Informationen finden Sie unter Informationen zu verschlüsselten angepassten Images.

Übersicht über den Prozess für verschlüsselte Images

In den folgenden Schritten wird der allgemeine Prozess zusammengefasst, den Sie befolgen müssen, um ein verschlüsseltes Image erfolgreich zu erstellen und zu verschlüsseln. In nachfolgenden Abschnitten werden Details zur Ausführung der Schritte erläutert.

  1. Erstellen Sie ein verschlüsseltes Image mit QEMU und einer Kennphrase Ihrer Wahl, um eine qcow2-Datei mit der LUKS-Verschlüsselung zu verschlüsseln.
  2. Laden Sie die verschlüsselte Imagedatei in IBM Cloud Object Storage hoch.
  3. Stellen Sie einen Schlüsselmanagementservice bereit, erstellen Sie einen Kundenrootschlüssel (CRK) und führen Sie ein Wrapping Ihrer Kennphrase mit dem CRK durch, um einen Datenverschlüsselungsschlüssel mit Wrapping (WDEK) zu generieren.
  4. Stellen Sie sicher, dass Sie über die erforderlichen IBM Cloud Identity and Access Management-Autorisierungen verfügen, sodass Sie das Image aus IBM Cloud Object Storage importieren können und Ihr WDEK für die Datenverschlüsselung verwendet werden kann.
  5. Importieren Sie das Image in IBM Cloud VPC. Sie müssen die IBM Cloud Object Storage-Position, den CRK, der in Ihrem KMS gespeichert ist, und den verschlüsselten Text (Ciphertext) Ihres WDEK angeben.

Image verschlüsseln

In diesem Schritt verwenden Sie QEMU, um Ihre eigene Passphrase anzugeben und Ihr benutzerdefiniertes Image mit LUKS-Verschlüsselung zu verschlüsseln.

Das angepasste Image, das Sie verschlüsseln wollen, muss die Anforderungen für angepasste Images für die IBM Cloud VPC-Infrastruktur erfüllen. Vergewissern Sie sich, dass Sie die Anforderungen zur Bildvorbereitung in den folgenden Themen erfüllt haben:

Um die Verschlüsselungsaufgabe abzuschließen, muss QEMU Version 2.12 oder höher installiert sein.

Sie müssen ein Linux- oder Windows-Betriebssystem verwenden, um die Anweisungen für die QEMU-Verschlüsselung auszuführen. Das Mac-Betriebssystem wird nicht unterstützt.

Führen Sie die folgenden Schritte aus, indem Sie QEMU verwenden, um eine zweite verschlüsselte qcow2-Datei Ihres benutzerdefinierten Images zu erstellen.

  1. Bestimmen Sie eine eigene Kennphrase zur Verschlüsselung Ihres Image. In den Beispielbefehlen dieser Task wird die Kennphrase abc123 verwendet. Halten Sie Ihre Kennphrase verfügbar. Später müssen Sie die Passphrase umwandeln, um einen Wrapped Data Encryption Key (WDEK) zu erstellen. Der WDEK ist erforderlich, wenn Sie das Image in IBM Cloud VPC importieren.

  2. Prüfen Sie Ihr aktuelles angepasstes qcow2-Image mithilfe des folgenden Befehls:

    qemu-img info my_100G_custom_image.qcow2
    

    Für das hier aufgeführte Beispiel wird eine Ausgabe wie die folgende zurückgegeben:

    image: my_100G_custom_image.qcow2
    file format: qcow2
    virtual size: 100 GiB (107374182400 bytes)
    disk size: 1.28 GiB
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false
        refcount bits: 16
        corrupt: false
    
  3. Erstellen Sie eine neue leere qcow2-Datei genau der gleichen Größe und verschlüsseln Sie sie mit der LUKS-Verschlüsselung. Verwenden Sie Ihre gewählte Kennphrase, zum Beispiel abc123, um die Datei zu verschlüsseln.

    qemu-img create --object secret,id=sec0,data=abc123 -f qcow2 -o encrypt.format=luks,encrypt.key-secret=sec0 my_100G_custom_image-encrypted.qcow2 100G
    
  4. Wandeln Sie Ihr qcow2, my_100G_custom_image.qcow2, in das verschlüsselte Image, my_100G_custom_image-encrypted.qcow2, um.

    qemu-img convert --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2 --target-image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -n -p
    
  5. Vergleichen Sie die beiden Dateien, um zu prüfen, ob sie identisch sind.

    qemu-img compare --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2  driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -p
    
  6. Prüfen Sie die Datei auf Fehler.

    qemu-img check --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2
    

    Für das hier aufgeführte Beispiel wird eine Ausgabe wie die folgende zurückgegeben:

    No errors were found on the image.
    16343/1638400 = 1.00% allocated, 0.00% fragmented, 0.00% compressed clusters
    Image end offset: 1074790400
    
  7. Führen Sie info auf Ihrer neuen, verschlüsselten Datei aus, um zu überprüfen, ob sie die erwartete Größe und Verschlüsselungsstufe aufweist.

    qemu-img info my_100G_custom_image-encrypted.qcow2
    

    Für das hier aufgeführte Beispiel wird eine Ausgabe wie die folgende zurückgegeben:

    image: my_100G_custom_image-encrypted.qcow2
    file format: qcow2
    virtual size: 100 GiB (107374182400 bytes)
    disk size: 1.27 GiB
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false
        refcount bits: 16
        corrupt: false
    

Verschlüsseltes Image in IBM Cloud Object Storage hochladen

Wenn Ihre Bilddatei mit LUKS-Verschlüsselung und Ihrer eindeutigen Passphrase verschlüsselt ist, können Sie sie auf IBM Cloud Object Storage hochladen, indem Sie die folgenden Schritte ausführen:

  1. Vergewissern Sie sich, dass die Datei für Ihr angepasstes Image über einen aussagekräftigen Namen verfügt, anhand dessen Sie sie zu einem späteren Zeitpunkt einfach auffinden können.
  2. Klicken Sie auf der Seite Objekte Ihres IBM Cloud Object Storage-Buckets auf Hochladen. Sie können das Plug-in für die Aspera-Hochgeschwindigkeitsübertragung verwenden, um Images mit mehr als 200 MB hochzuladen.

Schlüsselmanagementservice und Schlüssel einrichten

Um ein verschlüsseltes benutzerdefiniertes Bild IBM Cloud VPC zu importieren, benötigen Sie einen bereitgestellten Schlüsselverwaltungsdienst. Sie benötigen außerdem einen Kundenrootschlüssel (CRK) und einen Datenverschlüsselungsschlüssel mit Wrapping (WDEK). Der WDEK ist die Kennphrase, die Sie benötigen, um Ihr Image mit dem Wrapping mit Ihrem CRK zu verschlüsseln, sodass Ihre Kennphrase nur Ihnen bekannt bleibt. Der WDEK wird verwendet, um auf das verschlüsseltes Image zuzugreifen, wenn eine virtueller Serverinstanz gestartet wird, die das verschlüsselte Image verwendet.

Die folgende Liste ist eine Zusammenfassung der wichtigsten Voraussetzungen für das Management:

  • Stellen Sie einen unterstützten Schlüsselmanagementservice bereit, entweder Key Protect oder Hyper Protect Crypto Services.
  • Importieren Sie einen Kundenrootschlüssel (CRK) in den Schlüsselmanagementservice oder erstellen Sie einen in dem Schlüsselmanagementservice.
  • Führen Sie ein Wrapping (Verschlüsselung) der Kennphrase, mit der Sie Ihr Image verschlüsselt haben, mit Ihrem Kundenrootschlüssel durch, um einen Datenverschlüsselungsschlüssel mit Wrapping (WDEK) zu erstellen.

Die folgenden Beispielschritte sind spezifisch für Key Protect, aber der allgemeine Ablauf gilt ebenso für Hyper Protect Crypto Services. Wenn Sie Hyper Protect Crypto Services verwenden, finden Sie entsprechende Anweisungen unter Informationen zu Hyper Protect Crypto Services.

  1. Stellen Sie den Key Protect-Service bereit.

    Durch die Bereitstellung einer neuen Key Protect-Serviceinstanz wird sichergestellt, dass sie die neuesten Updates enthält, die für die kundenseitig verwaltete Verschlüsselung erforderlich sind.

  2. Erstellen oder importieren Sie einen Kundenrootschlüssel (Customer Root Key, CRK) in IBM Key Protect.

    Planen Sie für den Import von Schlüsseln voraus, indem Sie die Informationen zu Ihren Optionen für die Erstellung und Verschlüsselung von Schlüsselinformationen lesen. Wenn Sie zusätzliche Sicherheit benötigen, können Sie den sicheren Import der Schlüsselinformationen ermöglichen, indem Sie Ihre Schlüsselinformationen mit einem Importtoken verschlüsseln, bevor Sie sie in der Cloud verwenden.

  3. Verwenden Sie Ihren Kundenrootschlüssel (CRK), um ein Wrapping der eindeutigen Kennphrase durchzuführen, mit der Sie Ihr Image unter Verwendung der LUKS-Verschlüsselung verschlüsselt haben. In dem Beispiel für die Imageverschlüsselung wurde die Kennphrase abc123 verwendet.

    1. Vergewissern Sie sich, dass Key Protect installiert ist, damit Sie ein WDEK generieren können. Weitere Informationen finden Sie unter Plug-in der Key Protect-Befehlszeilenschnittstelle installieren.

    2. Verschlüsseln Sie Ihre Kennphrase mit Base64-Codierung, um sie für das Wrapping mit Ihrem CRK vorzubereiten. Führen Sie den folgenden Befehl aus, indem Sie Ihre Kennphrase anstelle von abc123 einsetzen. Der Parameter -n ist erforderlich, damit Sie kein Zeilenvorschubzeichen codieren, wodurch die Kennphrase mit Wrapping nicht mehr funktionieren würde.

      echo -n "abc123"|base64
      

      Für das hier aufgeführte Beispiel wird eine Ausgabe wie die folgende zurückgegeben:

      YWJjMTIz
      
    3. Führen Sie ein Wrapping Ihrer codierten Kennphrase mit Ihrem CRK durch, indem Sie den folgenden Befehl ibmcloud kp key wrap ausführen. Die Passphrase, die zur Erzeugung des verschlüsselten Bildes verwendet wird, ist zwar technisch gesehen kein Datenverschlüsselungsschlüssel, aber es ist die Terminologie, die Key Protect für Daten in Wraps und Unwraps verwendet. Die von Key Protect zurückgegebenen Daten werden als WDEK bezeichnet. Weitere Informationen finden Sie unter kp key wrap.

      ibmcloud kp key wrap KEY_ID -i INSTANCE_ID -p PLAINTEXT
      

      Dabei ist KEY_ID die ID des Root-Schlüssels, den Sie für das Wrapping verwenden möchten, INSTANCE_ID ist die Instanz-ID, die Ihre Key Protect identifiziert, und PLAINTEXT ist Ihre verschlüsselte Passphrase. Beispiel: YWJjMTIz.

      Für das hier aufgeführte Beispiel wird eine Ausgabe wie die folgende zurückgegeben:

      Wrapping key...
      SUCCESS
      Ciphertext
      eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=
      
    4. Speichern Sie den verschlüsselten Text (Ciphertext) für den WDEK persistent im Speicher. Sie müssen den verschlüsselten Text für den WDEK (Ciphertext) angeben, wenn Sie Ihr verschlüsseltes Image in IBM Cloud VPC importieren.

IAM-Autorisierungsvoraussetzungen

Stellen Sie sicher, dass Sie die erforderlichen Berechtigungen in IBM Cloud Identity and Access Managementerstellt haben.

  1. Erstellen Sie über IBM Cloud Identity and Access Management (IAM) eine Autorisierung zwischen Cloud Block Storage (Quellenservice) und Ihrem Schlüsselmanagementservice (Zielservice). Die Autorisierung ermöglicht es, dass die IBM Cloud-Backplane-Services Ihren WDEK für die Datenverschlüsselung verwenden.
  2. Stellen Sie sicher, dass Sie eine IAM-Berechtigung zwischen Image Service for VPC und IBM Cloud Object Storage erstellt haben. Geben Sie Infrastrukturservices als Quellenservice an. Geben Sie als Ressourcentyp Image Service for VPC an. Geben Sie IBM Cloud Object Storage als Zielservice an. Die Autorisierung dient dazu, dass der Bilderservice für VPC auf Bilder in IBM Cloud Object Storage zugreifen kann. Weitere Informationen finden Sie im Abschnitt Zugriff auf IBM Cloud Object Storage für den Import von Images erteilen.

Nächste Schritte

Wenn Ihr Bild erfolgreich verschlüsselt wurde, Ihr KMS eingerichtet ist und Sie die erforderlichen Schlüssel erstellt haben, können Sie das Bild per E-Mail an import senden. IBM Cloud VPC Wenn das Image in IBM Cloud VPC verfügbar ist, können Sie es zur Bereitstellung von Instanzen verwenden. Stellen Sie sicher, dass Sie Zugriff auf IBM Cloud Object Storage zum Importieren von Images erteilt haben.

Wenn Sie bereit sind, eine neue virtuelle Serverinstanz mit dem verschlüsselten Image bereitzustellen, werden keine Verschlüsselungsinformationen benötigt. Der Datenverschlüsselungsschlüssel mit Wrapping (WDEK) und der CRN des Kundenrootschlüssels (CRK) werden als Metadaten zusammen mit dem Image gespeichert.