Daten schützen
Der Datenträger, den Sie Ihrer Hyper Protect Virtual Server for VPC-Instanz zuordnen, wird durch eine LUKS-Verschlüsselungskennphrase ( Linux Unified Key Setup) geschützt, die von Seeds abgeleitet wird, die während der Bereitstellung bereitgestellt werden. Sie können Ihren ruhenden Daten eine höhere Stufe des Verschlüsselungsschutzes und der Verschlüsselungssteuerung hinzufügen, indem Sie Ihren eigenen Schlüssel aus Hyper Protect Crypto Servicesverwenden.
Verschlüsselung Ihres Datenvolumens
Ohne Ihren eigenen Schlüssel wird das an Ihre Instanz angehängte Datenvolumen automatisch mit zwei Seedwerten verschlüsselt, die in den Abschnitten workload
- volumes
und env
-
volumes
des Vertrags bereitgestellt werden. Die Seedwerte werden intern in UTF8-Sequenzen konvertiert und anschließend verkettet. Der Hashwert (SHA256) der verknüpften Sequenz wird als Hexadezimalauszug berechnet, der als LUKS-Kennphrase
zum Verschlüsseln des Datendatenträgers verwendet wird. Weitere Informationen finden Sie unter Informationen zum Vertrag.
Schutz Ihrer sensiblen Daten mit Ihrem eigenen Schlüssel
Ab ibm-hyper-protect-container-runtime-1-0-s390x-11
unterstützt Hyper Protect Virtual Servers für VPC die Integration mit dem Key Management Service (KMS) Hyper Protect Crypto Services. Hyper Protect Crypto Services generiert einen
Zufallswert als dritten Seed und schließt ihn mit dem CRK (Customer Root Key) ein. Weitere Informationen zu CRK finden Sie unter Rootschlüssel.
Der eingeschlossene Seedwert wird in der Metadatenpartition Ihres Datenträgers gespeichert. Die LUKS-Kennphrase wird unter Verwendung von drei Seeds generiert-dem Seed in der Metadatenpartition (zuerst nicht eingeschlossen)
und den beiden Seedwerten aus dem Vertrag.
Hintergrundwissen: Von der HPCR-Imageversion ibm-hyper-protect-container-runtime-1-0-s390x-9
wird der Datenträger für neue Hyper Protect Virtual Servers für VPC-Instanzen in zwei Teile partitioniert. Die erste Partition
(100 Mib) ist nur für interne Metadaten reserviert (nicht für den Zugriff durch eine Workload); die zweite Partition bleibt als Datenträger für die Workload. Nur neue Datenträger werden partitioniert.
Derzeit wird nur Hyper Protect Crypto Services als Schlüsselmanagementservice unterstützt.
Die folgende Tabelle gibt einen Überblick über das Saatgut. Der dritte Seedwert ist der von Ihrem Schlüsselmanagementservice bereitgestellte Seedwert.
Seedwert | Provider | Von | Erforderlich oder optional |
---|---|---|---|
seed1 | Bereitstellerpersona | env -Abschnitt volumes des Vertrags |
Erforderlich |
seed2 | Workload-Persona | workload -Abschnitt volumes des Vertrags |
Erforderlich |
seed3 | Hyper Protect Crypto Services | Hyper Protect Crypto Services generiert den dritten Seed und schließt ihn nur dann mit dem CRK ein, wenn kms -Details im Vertrag angegeben sind. Dies geschieht, indem Hyper Protect Virtual Servers eine Wrap-API aufruft. Der
eingeschlossene Seedwert wird in der Metadatenpartition des Datenträgers gespeichert. |
Optionale |
Der Schlüsseldämon wird gestartet, wenn der Datenträger durch die KMS-Instanz geschützt ist. Es ist verantwortlich für die Reaktion auf Statusänderungen des CRK (die später in dieser Dokumentation eingeführt werden).
Informationen zu den vom Kunden verwalteten Schlüsseln
Hyper Protect Virtual Servers for VPC verwenden Envelope-VerschlüsselungDer Prozess des Verschlüsselns von Daten mit einem Datenverschlüsselungsschlüssel und anschließendem Verschlüsseln des Schlüssels mit einem Rootschlüssel, der vollständig verwaltet werden kann., um vom Kunden verwaltete Schlüssel zu implementieren. Bei der Umschlagverschlüsselung wird ein Verschlüsselungscode mit einem anderen Verschlüsselungscode verschlüsselt (umhüllt). In unserem Fall ist der eingeschlossene Schlüssel der dritte Seed und der Schlüssel, der zum Wrapping des Seeds verwendet wird, ist der CRK von Hyper Protect Crypto Services.
Sie sind Eigner des CRK in Hyper Protect Crypto Services. Hyper Protect Virtual Server for VPC sieht den CRK nie. Seine Speicherung, Verwaltung und Verwendung zum Ein- und Auspacken des Seeds erfolgt vollständig innerhalb des Schlüsselverwaltungsdienstes.
Hyper Protect Crypto Services wird durch FIPS 140-2 Level 4-zertifizierte Hardware unterstützt, was die höchste Stufe ist, die von einem Cloud-Anbieter in der Branche angeboten wird. Weitere Informationen finden Sie unter Einführung in Hyper Protect Crypto Services.
Vom Kunden verwaltete Schlüssel für Hyper Protect Virtual Servers für VPC aktivieren
Ob Sie die Funktion aktivieren können, hängt vom Protokoll der Hyper Protect Virtual Server (Partitionslayout und LUKS-Verschlüsselung) und von den Vertragsinformationen ab. Die folgende Tabelle enthält mögliche Szenarios und Ergebnisse. Wenn
Sie nicht wissen, was kms
-Details im Vertrag bedeuten, lesen Sie die Anweisungen in Schritte. Tabelle mit dem Verhalten eines virtuellen Servers während des Starts, der Anzahl
der Datenträger, die während des Starts an die Partition angehängt werden, und der Eingabe, die in der Vertragsdatei angegeben ist.
Anzahl der Partitionen auf dem Datenträger | Metadatenpartition | Vertrag | Ob die Partition/zweite Partition LUKS-verschlüsselt ist | Verhalten von Hyper Protect Virtual Server |
---|---|---|---|---|
0 | Nicht zutreffend | Hat kms -Details |
Nicht LUKS verschlüsselt | Die Instanz erstellt zwei Partitionen im Datenträger für Daten und ruft Hyper Protect Crypto Services auf, um einen dritten Seed zu generieren und mit dem CRK einzuschließen. Der eingeschlossene Seedwert wird in der Metadatenpartition gespeichert. Anschließend generiert die Instanz eine LUKS-Kennphrase mit dem Seed (nicht eingeschlossen zuerst) und den beiden Seeds aus dem Vertrag, um die zweite Partition zu verschlüsseln. |
0 | Nicht zutreffend | Hat kms -Details |
LUKS verschlüsselt | Die Instanz wird beendet. Sie müssen die kms -Details aus dem Vertrag entfernen. |
1 | Nicht zutreffend | Nicht unterstützt. Die Instanz wird beendet. | ||
2 | Kein verschlüsselter Seedwert. | Hat kms -Details (ein Eintrag) |
Nicht LUKS verschlüsselt | Die Instanz ruft Hyper Protect Crypto Services auf, um einen dritten Seed zu generieren und ihn mit dem CRK einzuschließen. Der eingeschlossene Seedwert wird in der Metadatenpartition gespeichert. Anschließend generiert die Instanz eine LUKS-Kennphrase mit dem Seed (nicht eingeschlossen zuerst) und den beiden Seeds aus dem Vertrag, um die zweite Partition zu verschlüsseln. |
2 | Kein verschlüsselter Seedwert. | Hat kms -Details (ein Eintrag) |
LUKS verschlüsselt | Ähnlicher Ablauf wie der vorherige zum erneuten Verschlüsseln der zweiten Partition. Die alte LUKS-Kennphrase wird ersetzt. Beachten Sie, dass die beiden Seedwerte aus env und workload wie zuvor sein müssen. Andernfalls schlägt die erneute Verschlüsselung fehl und die Instanz wird beendet. Geben Sie die richtigen Seeds an und wiederholen Sie den Vorgang. |
2 | Kein verschlüsselter Seedwert. | Hat kms Details (mehrere Einträge) |
Nicht LUKS verschlüsselt | Ähnlicher Ablauf wie in den vorherigen Szenarios, um den dritten Seed einzuschließen und die zweite Partition zu verschlüsseln. Nur die Konfiguration im ersten Eintrag wird verwendet, um den dritten Seed einzuschließen. |
2 | Hat einen verschlüsselten Seedwert | Hat kms -Details (ein Eintrag) |
Nicht LUKS verschlüsselt | Möglicherweise haben Sie den Datenträger in der vorherigen Bereitstellung verwendet, aber die Verschlüsselung war nicht erfolgreich oder Sie haben den Datenträger mit zwei Partitionen bereitgestellt und manuell einen Zufallswert als dritten Seedwert erstellt, ihn eingeschlossen und in der Metadatenpartition gespeichert. In beiden Fällen prüft die Instanz, ob die Partitionierung korrekt ist. Ist dies nicht der Fall, wird die Instanz beendet. Wenn die Partitionierung korrekt ist, ruft die Instanz Hyper Protect Crypto Services auf, um das Wrapping des verschlüsselten Seeds aufzuheben, und generiert eine LUKS-Kennphrase mit dem Seed und den beiden Seeds aus dem Vertrag, um die zweite Partition zu verschlüsseln. |
2 | Hat einen verschlüsselten Seedwert | Hat kms -Details (ein Eintrag) |
LUKS verschlüsselt | Die Instanz ruft Hyper Protect Crypto Services auf, um das Wrapping des verschlüsselten Seeds aufzuheben und die LUKS-Schicht in der Datenpartition zu öffnen. |
2 | Hat einen verschlüsselten Seedwert | Hat kms Details (mehrere Einträge) |
Die Instanz ruft Hyper Protect Crypto Services auf, um das Wrapping des verschlüsselten Seeds mit dem ersten Eintrag kms aufzuheben. Schlägt er fehl, wird der nächste Eintrag verwendet. Wenn er erfolgreich ist, verwendet
er die erste Konfiguration, um den Seed erneut einzuschließen. Wenn alle Einträge nicht funktionieren, wird die Instanz beendet. |
|
2 | Hat einen verschlüsselten Seedwert | Keine kms -Details |
Die Instanz wird beendet. Sie müssen kms -Details im Vertrag angeben. |
Überprüfen Sie die Protokolle in Log Analysis, wenn Ihre Instanz beendet wird.
Schritte
-
Stellen Sie eine Hyper Protect Crypto Services-Instanz bereit und erstellen Sie einen Rootschlüssel. Weitere Informationen finden Sie unter Rootschlüssel erstellen.
Zur Verbesserung der Sicherheit wird empfohlen, virtuelle private Endpunkte mit Hyper Protect Crypto Serviceszu verwenden.
-
Wenn Sie den Vertrag vorbereiten, fügen Sie
kms
Details im Abschnittenv
-volumes
hinzu und verwenden Sie dann den Vertrag, um eine Hyper Protect Virtual Server for VPC-Instanz zu erstellen. Beispiel:env: | logging: logDNA: hostname: syslog-a.eu-gb.logging.cloud.ibm.com ingestionKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx port: 6514 volumes: test: kms: - apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" crn: "crn:v1:bluemix:public:hs-crypto:us-south:a/xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:key:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx" type: "public" - apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" crn: "crn:v1:bluemix:public:hs-crypto:us-south:a/xxxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx:key:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx" type: "private" seed:"seed1" kmsTimeout: 10 apiKey: "L4SsSE32xxxxxjAgfHCVkdW8xl_CiqMn4Lpc1dzTD" signingKey: "xxxxxxxxx" workload: | volumes: test: mount: "/mnt/data" seed: "seed2" filesystem: "ext4"
Um Missbrauch der KMS-Details durch einen Angreifer zu vermeiden, wird dem Bereitsteller (der den Abschnitt env
bereitstellt) dringend empfohlen, den Vertrag zu verschlüsseln und zu unterzeichnen.
Weitere Informationen zur Verschlüsselung finden Sie unter Vertragsverschlüsselung. Fügen Sie für die Signatur einen öffentlichen Signierschlüssel (Feld signingKey
) zu Ihrem Abschnitt env
hinzu und signieren Sie den gesamten Vertrag, indem Sie einen Abschnitt envWorkloadSignature
zum Vertrag hinzufügen. Die Signatur soll sicherstellen, dass die Abschnitte workload
und env
immer zusammen verwendet werden und nicht von einem Dritten manipuliert werden. Weitere Informationen finden Sie unter Vertragssignatur.
-
kms
Fügen Sie im Feld
kms
immer die KMS-Konfiguration ein, die Sie als ersten Eintrag verwenden wollen. Bei den folgenden Einträgen handelt es sich um ältere KMS-Konfigurationen (zur Entschlüsselung des eingeschlossenen Seedwerts vor der Migration auf die aktuelle Konfiguration). Es werden maximal fünf Einträge unterstützt. Weitere Informationen zum Ändern von KMS-Konfigurationen enthält der Abschnitt Zu einer anderen Hyper Protect Crypto Service-Instanz oder einem anderen Rootschlüssel wechseln.Wenn die
kms
-Details des Vertrags nicht gültig sind, wird die Instanz sofort beendet. -
kmsTimeout
Sie können
kmsTimeout
(zwischen 0 und 1000 Minuten) im Vertrag angeben. Erfolgt keine Angabe, beträgt der Standardwert für das Zeitlimit 10 Minuten. Dieser Wert legt fest, wie lange die Instanz versucht, das Wrapping des Seeds während des ersten Bootens oder Warmstarts aufzuheben. Nach Ablauf dieses Zeitlimits werden Nachrichten protokolliert und die Instanz wird beendet. -
type
In diesem Feld geben Sie die Instanzen als "privat" an, wenn sie sich in einem privaten Netz befinden, und als "öffentlich", wenn sie sich im öffentlichen Netz befinden. Dies wird verwendet, um den Wechsel zu einer anderen Hyper Protect Crypto Services-Instanz oder CRK zu unterstützen.
Wenn Ihr Datenträger neu ist, erstellt die Instanz zwei Partitionen auf dem Datenträger für Daten und ruft Hyper Protect Crypto Services auf, um einen dritten Seed zu generieren und mit dem CRK einzuschließen. Der eingeschlossene Seedwert wird in der Metadatenpartition gespeichert. Anschließend generiert die Instanz eine LUKS-Kennphrase mit dem Seed (nicht eingeschlossen zuerst) und den beiden Seeds aus dem Vertrag, um die zweite Partition zu verschlüsseln.
Sie können auch manuell zwei Partitionen in einem Datenträger erstellen, einen Zufallswert als dritten Seedwert erstellen, ihn einschließen und in der Metadatenpartition speichern:
-
Erstellen Sie mit dem Linux-Befehl
parted
zwei Partitionen auf der Blockeinheit.- Die 1st Partition hat die Bezeichnung
metadata
und hat eine Länge von 100 MiB (beachten Sie, dass die Metadatenpartition nur für interne Metadaten reserviert ist und nicht für den Zugriff durch eine Workload). Erstellen Sie ein Dateisystem (ext4), bevor Sie die Partition verwenden. Erstellen Sie eine Datei mit dem Namen keyfile. - Die 2nd Partition wird als
data
bezeichnet und füllt den gesamten Plattenspeicherplatz aus.
- Die 1st Partition hat die Bezeichnung
-
Verwenden Sie die Hyper Protect Crypto Services KMS-API Wrap a key, um einen zufälligen einfachen Text zu generieren, der in einem HSM verwurzelt ist, und ihn einzuschließen, ohne den Wert zu übergeben.
-
Kopieren Sie den vom Antwortobjekt zurückgegebenen verschlüsselten Text mit Linux-Befehlen in die Schlüsseldatei.
-
Bereiten Sie den Vertrag mit den KMS-Informationen vor und erstellen Sie eine Hyper Protect Virtual Server mit dem manuell partitionierten Datenträger, der einen eingeschlossenen Seedwert enthält.
Wenn die Instanz ausgeführt wird, stellt der Schlüsseldämon regelmäßig eine Verbindung zur Hyper Protect Crypto Services-Instanz her. Dasselbe Zeitlimit kmsTimeout
gilt. Wenn die Hyper Protect Crypto Services-Instanz nicht erreicht
werden kann, der CRK-Status nicht Active
ist oder die Zugriffsparameter (kms
-Details) nicht mehr übereinstimmen, löst der Dämon einen Warmstart aus.
Überprüfen Sie die Protokolle in Log Analysis, wenn Ihre Instanz beendet wird.
Mit kundenverwalteten Schlüsseln für Hyper Protect Virtual Servers for VPC arbeiten
Rootschlüssel rotieren
Wenn der CRK manuell oder automatisch basierend auf einer Schlüsselrotationsrichtlinie rotiert wird, erkennt der Schlüsseldämon die Schlüsselrotation und führt ein erneutes Wrapping des Seeds durch.
Zu einer anderen Hyper Protect Crypto Service-Instanz oder einem anderen Rootschlüssel wechseln
Wenn Sie eine andere Hyper Protect Crypto Service-Instanz oder eine andere Rootschlüssel-ID verwenden wollen, stellen Sie die neue KMS-Konfiguration als ersten Eintrag in den Vertrag und erstellen Sie eine Hyper Protect Virtual Server erneut. Behalten Sie die alte KMS-Konfiguration (die derzeit verwendet wird) im Vertrag bei. Während der Instanziierung hebt Hyper Protect Virtual Server for VPC das Wrapping des verschlüsselten Seedwerts mit der alten Konfiguration auf und verwendet die neue Konfiguration, um den Seedwert erneut einzuschließen. Im Vertrag werden maximal fünf Einträge unterstützt.
Nach der Änderung können die alten Einträge aus der nächsten Interaktion entfernt werden.
Rootschlüssel inaktivieren
Wenn Sie den Rootschlüssel inaktivieren, lautet der Status des Schlüssels Ausgesetzt. Der Schlüsseldämon von Hyper Protect Virtual Servers for VPC
überprüft regelmäßig den Status des CRK. Wenn der Status nicht Aktiv ist, wird der virtuelle Server neu gestartet. Während des Warmstarts überprüft der Schlüsseldämon den Status durch Abfragen. Wenn die Zeit, die er benötigt,
kmsTimeout
überschreitet, wird der virtuelle Server heruntergefahren. Sie müssen den Rootschlüssel aktivieren, um den Schlüssel wieder in
Aktiv zu versetzen.
Stellen Sie sicher, dass Ihr CRK nicht abgelaufen ist. Andernfalls wird der Status in Inaktiviert geändert und der virtuelle Server wird neu gestartet und schließlich heruntergefahren. Weitere Informationen über Schlüsselzustände finden Sie unter Überwachung des Lebenszyklus von Verschlüsselungsschlüsseln.