IBM Cloud Docs
Informationen zur Verschlüsselung für Portworx

Informationen zur Verschlüsselung für Portworx

Übersicht über die Verschlüsselung

Die folgende Abbildung veranschaulicht den Ablauf der Verschlüsselung in Portworx, wenn Sie eine Verschlüsselung der einzelnen Datenträger eingerichtet haben.

Verschlüsseln von Portworx
Portworx

  1. Der Benutzer erstellt einen PVC (PersistentVolumeClaim) mit einer Portworx-Speicherklasse und fordert die Verschlüsslung des Speichers an.
  2. Portworx ruft die IBM Key Protect- oder Hyper Protect Crypto Services-API WrapCreateDEK auf, um eine Kennphrase mithilfe des Kundenrootschlüssels (Customer Root Key - CRK) zu erstellen, der im geheimen Schlüssel von Portworx gespeichert ist.
  3. Die IBM Key Protect- oder Hyper Protect Crypto Services-Serviceinstanz generiert eine 256-Bit-Kennphrase und schließt die Kennphrase in den Datenverschlüsselungsschlüssel (DEK) ein. Der DEK wird an den Portworx-Cluster zurückgegeben.
  4. Der Portworx-Cluster verwendet die Kennphrase zur Verschlüsselung des Datenträgers.
  5. Der Portworx-Cluster speichert den DEK im Klartext in der Portworx-Etcd-Datenbank, ordnet die Datenträger-ID dem DEK zu und entfernt die Kennphrase aus dem Hauptspeicher.

Übersicht über Entschlüsselung

Die folgende Abbildung veranschaulicht den Ablauf der Entschlüsselung in Portworx, wenn Sie eine Verschlüsselung der einzelnen Datenträger eingerichtet haben.

Entschlüsseln von Portworx
von Portworx

  1. Kubernetes sendet eine Anforderung zur Entschlüsselung eines verschlüsselten Datenträgers.
  2. Portworx fordert den DEK für den Datenträger aus der Portworx-Etcd-Datenbank an.
  3. Die Portworx-Etcd-Datenbank ruft den DEK ab und gibt ihn an den Portworx-Cluster zurück.
  4. Der Portworx-Cluster ruft die IBM Key Protect- oder Hyper Protect Crypto Services-API UnWrapDEK unter Angabe des DEK und des Rootschlüssels (CRK), der im geheimen Schlüssel von Portworx gespeichert ist, auf.
  5. IBM Key Protect oder Hyper Protect Crypto Services öffnet den DEK, um die Kennphrase zu extrahieren, und gibt die Kennphrase an den Portworx-Cluster zurück.
  6. Der Portworx-Cluster verwendet die Kennphrase zur Entschlüsselung des Datenträgers. Nach der Entschlüsselung des Datenträgers wird die Kennphrase aus dem Portworx-Cluster entfernt.

Datenträgerverschlüsselung einrichten

Zum Schutz Ihrer Daten auf einem Portworx-Datenträger können Sie eine Instanz eines KMS-Providers wie IBM Key Protect oder Hyper Protect Crypto Serviceserstellen.

Wenn Sie zum Verschlüsseln Ihrer Datenträger keine IBM Key Protect- oder Hyper Protect Crypto Services-Rootschlüssel verwenden möchten, können Sie während der Portworx-Installation Kubernetes Secret als Speichertyp für Ihren geheimen Portworx-Schlüssel auswählen. Diese Einstellung gibt Ihnen die Möglichkeit, Ihren eigenen angepassten Verschlüsselungsschlüssel nach der Installation von Portworx in einem geheimen Kubernetes-Schlüssel zu speichern. Weitere Informationen finden Sie in der Dokumentation zu Portworx.

KMS-Instanz und -Berechtigungsnachweise abrufen

Datenträgerverschlüsselung mit Hyper Protect Crypto Services einrichten

  1. Erstellen Sie eine Serviceinstanz.

  2. Erstellen Sie einen Rootschlüssel.

  3. Erstellen Sie eine Service-ID.

  4. Private Cluster: Erstellen Sie ein virtuelles privates Endpunktgateway, das den Zugriff auf Ihre KMS-Instanz ermöglicht. Stellen Sie sicher, dass Sie mindestens 1 IP-Adresse aus jedem Teilnetz in Ihrer VPC an das VPE binden.

  5. Rufen Sie den öffentlichen Endpunkt der Schlüsselverwaltung URL ab. Stellen Sie sicher, dass Sie Ihren Endpunkt im richtigen Format notieren, z. B. https://api.us-south.hs-crypto.cloud.ibm.com:<port>. Weitere Informationen finden Sie in der API-Dokumentation von Hyper Protect Crypto Services.

Datenträgerverschlüsselung mit IBM Key Protect einrichten

  1. Erstellen Sie eine Serviceinstanz.

  2. Erstellen Sie einen Rootschlüssel.

  3. Erstellen Sie eine Service-ID.

  4. Rufen Sie die Region ab, in der Sie Ihre Serviceinstanz erstellt haben, und notieren Sie sie. Sie benötigen diesen Wert später, wenn Sie Ihren geheimen Schlüssel erstellen.

  5. Private Cluster: Erstellen Sie ein virtuelles privates Endpunktgateway, das den Zugriff auf Ihre KMS-Instanz ermöglicht. Stellen Sie sicher, dass Sie mindestens 1 IP-Adresse aus jedem Teilnetz in Ihrer VPC an das VPE binden.

Geheimen Schlüssel in Ihrem Cluster erstellen

  1. Codieren Sie die Berechtigungsnachweise, die Sie im vorherigen Abschnitt abgerufen haben, in Base64 und notieren Sie alle Base64-codierten Werte. Wiederholen Sie diesen Befehl für jeden Parameter, um den Base64-codierten Wert abzurufen.
    echo -n "<value>" | base64
    
  2. Erstellen Sie in Ihrem Cluster ein Projekt namens portworx.
    oc create ns portworx
    
  3. Erstellen Sie einen geheimen Kubernetes-Schlüssel mit dem Namen px-ibm im portworx-Projekt Ihres Clusters, um Ihre IBM Key Protect-Informationen zu speichern.
    1. Erstellen Sie eine Konfigurationsdatei für Ihren geheimen Kubernetes-Schlüssel mit dem folgenden Inhalt.

      apiVersion: v1
      kind: Secret
      metadata:
        name: px-ibm
        namespace: portworx
      type: Opaque
      data:
        IBM_SERVICE_API_KEY: <base64_apikey>
        IBM_INSTANCE_ID: <base64_guid>
        IBM_CUSTOMER_ROOT_KEY: <base64_rootkey>
        IBM_BASE_URL: <base64_endpoint>
      
      metadata.name
      Geben Sie px-ibm als Namen für Ihren geheimen Kubernetes-Schlüssel ein. Wenn Sie einen anderen Namen verwenden, erkennt Portworx den geheimen Schlüssel während der Installation nicht.
      data.IBM_SERVICE_API_KEY
      Geben Sie den base64-codierten IBM Key Protect- oder Hyper Protect Crypto Services-API-Schlüssel ein, die Sie zuvor abgerufen haben.
      data.IBM_INSTANCE_ID
      Geben Sie die base64-codierte Serviceinstanz-GUID ein, die Sie zuvor abgerufen haben.
      data.IBM_CUSTOMER_ROOT_KEY
      Geben Sie den Base64-codierten Rootschlüssel ein, den Sie zuvor abgerufen haben.
      data.IBM_BASE_URL
      IBM Key Protect: Geben Sie den Base64-codierten API-Endpunkt Ihrer Serviceinstanz ein.
      Hyper Protect Crypto Services: Geben Sie den den Base64-codierten öffentlichen Endpunkt für das Schlüsselmanagement ein.
    2. Erstellen Sie den geheimen Schlüssel im Projekt portworx Ihres Clusters.

      oc apply -f secret.yaml
      
    3. Überprüfen Sie, ob der geheime Schlüssel erfolgreich erstellt wurde.

      oc get secrets -n portworx