Skip to main content
Eine neuere Version dieses Produkts ist erhältlich.
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Linux Unified Key Setup (LUKS)

Beitragende

Sie können Linux Unified Key Setup (LUKS) aktivieren, um ONTAP SAN und ONTAP SAN ECONOMY Volumes auf Astra Trident zu verschlüsseln. Astra Trident unterstützt die Rotation von Passphrase und die Volume-Erweiterung für LUKS-verschlüsselte Volumes.

In Astra Trident verwenden LUKS-verschlüsselte Volumes den aes-xts-plain64-Cypher und -Modus, wie von empfohlen"NIST".

Bevor Sie beginnen
  • Worker Nodes müssen cryptsetup 2.1 oder höher (aber unter 3.0) installiert sein. Weitere Informationen finden Sie unter "Gitlab: Cryptsetup".

  • Aus Performance-Gründen wird empfohlen, dass Arbeiterknoten Advanced Encryption Standard New Instructions (AES-NI) unterstützen. Führen Sie den folgenden Befehl aus, um die Unterstützung von AES-NI zu überprüfen:

    grep "aes" /proc/cpuinfo

    Wenn nichts zurückgegeben wird, unterstützt Ihr Prozessor nicht AES-NI. Weitere Informationen zu AES-NI finden Sie unter "Intel: Advanced Encryption Standard Instructions (AES-NI)".

Aktivieren Sie die LUKS-Verschlüsselung

Sie können die Verschlüsselung auf Host-Seite pro Volume mithilfe von Linux Unified Key Setup (LUKS) für ONTAP SAN und ONTAP SAN ECONOMY Volumes aktivieren.

Schritte
  1. Definieren Sie LUKS-Verschlüsselungsattribute in der Backend-Konfiguration. Weitere Informationen zu den Back-End-Konfigurationsoptionen für ONTAP-SAN finden Sie unter "SAN-Konfigurationsoptionen von ONTAP".

    "storage": [
        {
            "labels":{"luks": "true"},
            "zone":"us_east_1a",
            "defaults": {
                "luksEncryption": "true"
            }
        },
        {
            "labels":{"luks": "false"},
            "zone":"us_east_1a",
            "defaults": {
                "luksEncryption": "false"
            }
        },
    ]
  2. `parameters.selector`Zum Definieren der Speicherpools mit LUKS-Verschlüsselung. Beispiel:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: luks
    provisioner: csi.trident.netapp.io
    parameters:
      selector: "luks=true"
      csi.storage.k8s.io/node-stage-secret-name: luks-${pvc.name}
      csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
  3. Erstellen Sie ein Geheimnis, das die LUKS-Passphrase enthält. Beispiel:

    kubectl -n trident create -f luks-pvc1.yaml
    apiVersion: v1
    kind: Secret
    metadata:
      name: luks-pvc1
    stringData:
      luks-passphrase-name: A
      luks-passphrase: secretA

Einschränkungen

LUKS-verschlüsselte Volumes können die ONTAP Deduplizierung und Komprimierung nicht nutzen.

Back-End-Konfiguration zum Importieren von LUKS-Volumes

Um ein LUKS-Volume zu importieren, müssen Sie auf(true dem Backend festlegen luksEncryption. Die luksEncryption Option teilt Astra Trident mit, ob das Volume LUKS-konform ist (true) oder nicht LUKS-konform (false), wie im folgenden Beispiel gezeigt.

version: 1
storageDriverName: ontap-san
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: trident_svm
username: admin
password: password
defaults:
  luksEncryption: 'true'
  spaceAllocation: 'false'
  snapshotPolicy: default
  snapshotReserve: '10'

PVC-Konfiguration für den Import von LUKS-Volumes

Um LUKS-Volumes dynamisch zu importieren, setzen Sie die Beschriftung trident.netapp.io/luksEncryption auf true und fügen Sie eine LUKS-fähige Storage-Klasse in die PVC ein, wie in diesem Beispiel gezeigt.

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: luks-pvc
  namespace: trident
  annotations:
    trident.netapp.io/luksEncryption: "true"
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: luks-sc

Eine LUKS-Passphrase drehen

Sie können die LUKS-Passphrase drehen und die Drehung bestätigen.

Warnung Vergessen Sie keine Passphrase, bis Sie überprüft haben, dass sie nicht mehr von einem Volume, einem Snapshot oder einem geheimen Schlüssel referenziert wird. Wenn eine referenzierte Passphrase verloren geht, können Sie das Volume möglicherweise nicht mounten und die Daten bleiben verschlüsselt und unzugänglich.
Über diese Aufgabe

DIE Drehung der LUKS-Passphrase erfolgt, wenn ein Pod, das das Volume bindet, nach der Angabe einer neuen LUKS-Passphrase erstellt wird. Bei der Erstellung eines neuen Pods vergleicht Astra Trident die LUKS-Passphrase auf dem Volume mit der aktiven Passphrase im Geheimnis.

  • Wenn die Passphrase auf dem Volume nicht mit der aktiven Passphrase im Geheimnis übereinstimmt, erfolgt die Drehung.

  • Wenn die Passphrase auf dem Volume mit der aktiven Passphrase im Secret übereinstimmt, wird der previous-luks-passphrase Parameter ignoriert.

Schritte
  1. Fügen Sie die Parameter und node-publish-secret-namespace StorageClass hinzu node-publish-secret-name. Beispiel:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: csi-san
    provisioner: csi.trident.netapp.io
    parameters:
      trident.netapp.io/backendType: "ontap-san"
      csi.storage.k8s.io/node-stage-secret-name: luks
      csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
      csi.storage.k8s.io/node-publish-secret-name: luks
      csi.storage.k8s.io/node-publish-secret-namespace: ${pvc.namespace}
  2. Identifizieren Sie vorhandene Passphrases auf dem Volume oder Snapshot.

    Datenmenge
    tridentctl -d get volume luks-pvc1
    GET http://127.0.0.1:8000/trident/v1/volume/<volumeID>
    
    ...luksPassphraseNames:["A"]
    Snapshot
    tridentctl -d get snapshot luks-pvc1
    GET http://127.0.0.1:8000/trident/v1/volume/<volumeID>/<snapshotID>
    
    ...luksPassphraseNames:["A"]
  3. Aktualisieren Sie das LUKS-Geheimnis für das Volume, um die neuen und vorherigen Passphrases anzugeben. Stellen Sie sicher, dass previous-luke-passphrase-name `previous-luks-passphrase`die vorherige Passphrase übereinstimmt.

    apiVersion: v1
    kind: Secret
    metadata:
      name: luks-pvc1
    stringData:
      luks-passphrase-name: B
      luks-passphrase: secretB
      previous-luks-passphrase-name: A
      previous-luks-passphrase: secretA
  4. Erstellen Sie einen neuen Pod, der das Volume montiert. Dies ist erforderlich, um die Rotation zu initiieren.

  5. Überprüfen Sie, ob die Passphrase gedreht wurde.

    Datenmenge
    tridentctl -d get volume luks-pvc1
    GET http://127.0.0.1:8000/trident/v1/volume/<volumeID>
    
    ...luksPassphraseNames:["B"]
    Snapshot
    tridentctl -d get snapshot luks-pvc1
    GET http://127.0.0.1:8000/trident/v1/volume/<volumeID>/<snapshotID>
    
    ...luksPassphraseNames:["B"]
Ergebnisse

Die Passphrase wurde gedreht, wenn nur die neue Passphrase auf dem Volume und dem Snapshot zurückgegeben wird.

Hinweis Werden beispielsweise zwei Passphrasen zurückgegeben, luksPassphraseNames: ["B", "A"] ist die Rotation unvollständig. Sie können einen neuen Pod auslösen, um zu versuchen, die Rotation abzuschließen.

Aktivieren Sie die Volume-Erweiterung

Sie können Volume-Erweiterung auf einem LUKS-verschlüsselten Volume aktivieren.

Schritte
  1. Aktivieren Sie das CSINodeExpandSecret Feature Gate (Beta 1.25+). Weitere Informationen finden Sie unter "Kubernetes 1.25: Verwenden Sie Secrets zur Node-gesteuerten Erweiterung von CSI Volumes" .

  2. Fügen Sie die Parameter und node-expand-secret-namespace StorageClass hinzu node-expand-secret-name. Beispiel:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: luks
    provisioner: csi.trident.netapp.io
    parameters:
      selector: "luks=true"
      csi.storage.k8s.io/node-stage-secret-name: luks-${pvc.name}
      csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
      csi.storage.k8s.io/node-expand-secret-name: luks-${pvc.name}
      csi.storage.k8s.io/node-expand-secret-namespace: ${pvc.namespace}
    allowVolumeExpansion: true
Ergebnisse

Wenn Sie die Online-Speichererweiterung initiieren, gibt das Kubelet die entsprechenden Zugangsdaten an den Treiber weiter.