Verschlüsselung während der Übertragung für IBM Cloud File Storage for VPC
Virtual Private Cloud
Verwenden Sie die Verschlüsselung während der Übertragung (EIT), um Daten zu schützen, während sie zwischen Ihren Worker-Knoten und dem „ File Storage for VPC “-Dienst übertragen werden. Dieses Thema behandelt EIT sowohl für zonale Dateifreigaben,
die das Profil „ dp2 “ verwenden, als auch für regionale Dateifreigaben, die das Profil „ rfs “ verwenden.
Zonenbasierte Dateifreigaben – Einrichtung der Verschlüsselung während der Übertragung
Wenn Sie sich für eine Verschlüsselung während der Übertragung entscheiden, sollten Sie Ihre Sicherheitsanforderungen mit den Leistungsanforderungen in Einklang bringen. Die Verschlüsselung von Daten während der Übertragung kann die Leistung beeinträchtigen, da die Daten an den Endpunkten verschlüsselt und entschlüsselt werden müssen. Weitere Informationen finden Sie unter „ VPC-Verschlüsselung während der Übertragung “.
Auf RHCOS-Worker-Knoten ( CoreOS ) ist EIT erst aktiv, wenn der Knoten neu gestartet wurde, nachdem der Betreiber die erforderlichen Pakete installiert hat. Planen Sie einen schrittweisen Neustart ein, wenn Sie EIT aktivieren.
- EIT ist für die Cluster-Versionen „ 4.16 “ und höher verfügbar.
- Standardmäßig sind Dateifreigaben „ im Ruhezustand verschlüsselt “ und werden mit der von IBM verwalteten Verschlüsselung geschützt.
- Um EIT mit „Secure by Default“-Clustern zu verwenden, müssen Sie die folgende ausgehende Regel zur Sicherheitsgruppe „
kube-<clusterID>“ hinzufügen. Diese Regel wird für ROKS-Cluster ab Version 4.18 automatisch hinzugefügt. Bei älteren Cluster-Versionen fügen Sie die Regel manuell hinzu.- Protokoll: Beliebig
- Quellentyp: Beliebig
- Quelle:
0.0.0.0/0 - Reiseziel:
169.254.169.254
- EIT ist für statisch bereitgestellte Volumes nicht verfügbar. Um EIT einzurichten, müssen Sie die dynamische Bereitstellung verwenden.
- EIT-Pakete werden in Ihrem Cluster automatisch aktualisiert, sobald EIT aktiviert ist.
- Die Verschlüsselung von Daten während der Übertragung kann die Leistung beeinträchtigen. Die Auswirkungen hängen von den Merkmalen Ihrer Arbeitsauslastung ab. Bei Workloads, die synchrone Schreibvorgänge ausführen oder das VSI-Caching umgehen, wie beispielsweise Datenbanken, kann es bei aktivierter EIT zu erheblichen Leistungseinbußen kommen. Um die Auswirkungen zu bewerten, vergleichen Sie Ihre Arbeitslast mit und ohne EIT.
- Auch ohne EIT werden die Daten über ein sicheres Rechenzentrumsnetzwerk übertragen. Weitere Informationen zur Netzwerksicherheit finden Sie unter „ Sicherheit in Ihrer VPC “ und „ Schutz von Virtual Private Cloud(VPC)-Infrastrukturdiensten durch kontextbasierte Einschränkungen “.
File Storage for VPC gilt nur dann als Financial Services Validated-Dienst, wenn die Verschlüsselung während der Übertragung aktiviert ist. Weitere Informationen finden Sie unter „ Was ist ein Financial Services Validated-Dienst?“.
Führen Sie die folgenden Schritte aus, um die Verschlüsselung während der Übertragung (EIT) für Dateifreigaben in Ihrem „ Red Hat OpenShift on IBM Cloud “-Cluster einzurichten. Durch die Aktivierung von EIT werden die erforderlichen Pakete auf Ihren Worker-Knoten installiert.
-
Notieren Sie sich die Worker-Pools in Ihrem Cluster, in denen Sie EIT aktivieren möchten.
-
Bearbeiten Sie die Datei „
addon-vpc-file-csi-driver-configmap“.oc edit cm addon-vpc-file-csi-driver-configmap -n kube-system -
Legen Sie in der ConfigMap „
ENABLE_EIT: "true"“ fest und fügen Sie die Worker-Pools, für die Sie EIT aktivieren möchten, in das Feld „EIT_ENABLED_WORKER_POOLS“ ein. Beispiel:"wp1,wp2". Sie können außerdem die Parameter „EIT_METADATA_RETRY_COUNT“ und „EIT_METADATA_RETRY_INTERVAL“ festlegen, um das Verhalten bei Wiederholungsversuchen beim Abrufen von Instanz-Metadaten zu steuern.apiVersion: v1 data: EIT_ENABLED_WORKER_POOLS: "wp1,wp2" # Specify the worker pools where you want to enable EIT. If this field is blank, EIT is not enabled on any worker pools. ENABLE_EIT: "true" # Specify true/false EIT_METADATA_RETRY_COUNT: "3" # Number of retries for fetching instance metadata before an error is returned EIT_METADATA_RETRY_INTERVAL: "30" # Interval in seconds between each metadata fetch retry kind: ConfigMap metadata: creationTimestamp: "2024-06-18T09:45:48Z" labels: app.kubernetes.io/name: ibm-vpc-file-csi-driver name: addon-vpc-file-csi-driver-configmap namespace: kube-system ownerReferences: - apiVersion: csi.drivers.ibmcloud.io/v1 blockOwnerDeletion: true controller: true kind: VPCFileCSIDriver name: ibm-vpc-file-csi-driver uid: d3c8bbcd-24fa-4203-9352-4ab7aa72a055 resourceVersion: "1251777" uid: 5c9d6679-4135-458b-800d-217b34d27c75 -
Nachdem Sie EIT aktiviert haben, speichern und schließen Sie die Configmap.
Dieser Schritt kann bis zu 5 Minuten dauern, da der Bediener EIT-Pakete auf den angegebenen Worker-Knoten installiert.
-
Um zu überprüfen, ob EIT aktiviert ist, sehen Sie sich die Ereignisse der Configmap „
file-csi-driver-status“ an, um sicherzustellen, dass die EIT-Installation auf jedem Worker-Knoten erfolgreich war. Suchen Sie nach „Package installation successful“-Ereignissen für jeden Knoten in den von Ihnen angegebenen Worker-Pools.oc describe cm file-csi-driver-status -n kube-systemBeispielausgabe
apiVersion: v1 data: EIT_ENABLED_WORKER_NODES: | default: - 10.240.0.10 - 10.240.0.8 PACKAGE_DEPLOYER_VERSION: v1.0.0 events: | - event: EnableVPCFileCSIDriver description: 'VPC File CSI Driver enable successful, DriverVersion: v2.0.3' timestamp: "2024-06-13 09:17:07" - event: EnableEITRequest description: 'Request received to enableEIT, workerPools: , check the file-csi-driver-status configmap for eit installation status on each node of each workerpool.' timestamp: "2024-06-13 09:17:31" - event: 'Enabling EIT on host: 10.240.0.10' description: 'Package installation successful on host: 10.240.0.10, workerpool: wp1' timestamp: "2024-06-13 09:17:48" - event: 'Enabling EIT on host: 10.240.0.8' description: 'Package installation successful on host: 10.240.0.8, workerpool: wp2' timestamp: "2024-06-13 09:17:48" -
Falls Ihre Worker-Pools RHCOS-Knoten ( CoreOS ) enthalten, fahren Sie jeden betroffenen Knoten herunter und starten Sie ihn neu, um die EIT-Pakete zu aktivieren. EIT ist auf RHCOS-Knoten erst nach einem Neustart des Knotens funktionsfähig. Durch das vorherige Entladen des Knotens wird sichergestellt, dass laufende Workloads vor dem Neustart auf andere Knoten umverteilt werden, wodurch Auswirkungen auf Produktionsanwendungen vermieden werden.
Entleeren Sie den Knoten, um alle laufenden Pods sicher zu beenden.
oc drain <node-name> --ignore-daemonsets --delete-emptydir-dataStarten Sie den heruntergefahrenen Knoten neu.
ibmcloud ks worker reboot --cluster CLUSTER_ID --worker WORKER_IDSobald der Knoten wieder online ist und sich im Status „
Ready“ befindet, heben Sie die Sperrung auf, damit darauf wieder Workloads eingeplant werden können.oc uncordon <node-name> -
Wählen Sie eine vorinstallierte Speicherklasse aus, die EIT unterstützt, oder erstellen Sie eine eigene Speicherklasse.
- Erstellen Sie ein PVC unter Verwendung der Speicherklasse „
ibmc-vpc-file-eit“. - Erstellen Sie eine eigene Speicherklasse und setzen Sie den Parameter „
isEITEnabled“ auf „true“.
- Erstellen Sie ein PVC unter Verwendung der Speicherklasse „
-
Erstellen Sie ein PVC, das auf die von Ihnen ausgewählte Speicherklasse verweist, und stellen Sie anschließend eine App bereit, die Ihr PVC nutzt.
Sollten nach Durchführung dieser Schritte weiterhin Probleme mit EIT auftreten, lesen Sie bitte die folgenden Artikel zur Fehlerbehebung:
Regionale Dateifreigaben – Einrichtung der Verschlüsselung während der Übertragung (Beta)
Der Regional File Storage-Dienst (RFS) mit Verschlüsselung während der Übertragung (EIT) bietet sichere, mit dem „ TLS “-Protokoll verschlüsselte NFS-Verbindungen für Dateifreigaben über mehrere Verfügbarkeitszonen innerhalb einer Region hinweg. Das Add-on „ File Storage for VPC “ verwaltet automatisch auf jedem Worker-Knoten einen Stunnel-Sidecar, der den gesamten NFS-Datenverkehr in TLS 1.3 oder höher umschreibt – und zwar für Ihre Anwendungen transparent.
Hintergrundinformationen zu „Regional File Storage “ finden Sie unter „ Übersicht über die regionale Dateispeicherung “.
RFS mit EIT ist derzeit nur als Beta-Version verfügbar und wird ausschließlich für experimentelle Zwecke empfohlen. Verwenden Sie diese Funktion nicht in Produktionsumgebungen.
Funktionsweise
Wenn Sie ein PVC mit der Speicherklasse „RFS EIT“ erstellen und ein Pod dieses PVC einbindet, richtet das Add-on automatisch einen verschlüsselten Stunnel-Tunnel auf dem Worker-Knoten ein und leitet den gesamten NFS-Datenverkehr darüber. Die Verschlüsselung erfolgt für Ihre Anwendungen transparent – diese nutzen weiterhin Standard- NFS-Mounts, während alle übertragenen Daten mit „ TLS “ 1.3 oder höher geschützt sind.
Der Lebenszyklus des Tunnels wird vollständig vom Treiber verwaltet: Er wird erstellt, wenn ein Pod das Volume einbindet, und aufgelöst, wenn der Pod gelöscht wird.
Vorbereitende Schritte
- Auf Ihrem Cluster ist das Add-on „ File Storage for VPC “ in der Version 2.0 oder höher installiert. Weitere Informationen finden Sie unter „ Aktivieren des Add-ons ‚ IBM Cloud File Storage for VPC ‘ für Cluster “.
Einschränkungen
Lesen Sie sich die folgenden Einschränkungen durch, bevor Sie RFS EIT aktivieren.
- Maximale Anzahl von PVC-Verbindungen pro Knoten: 300, ein Port pro PVC aus dem Portbereich 11300–11599, gebunden an
127.0.0.1. - Portkonflikt bei Anwendungen mit „
hostNetwork: true“: Anwendungs-Pods, die „hostNetwork: true“ verwenden und eine Bindung an „127.0.0.1“ im Portbereich 11300–11599 herstellen, können zu Konflikten mit bestehenden RFS-EIT-PVC-Einbindungen führen. - Es gelten außerdem alle Einschränkungen, die für VPC- File Storage en gelten.
Einrichten der Verschlüsselung während der Übertragung für „Regional“ File Storage
Führen Sie die folgenden Schritte aus, um eine regionale Dateifreigabe mit Verschlüsselung während der Übertragung einzurichten.
-
Erstellen Sie eine Speicherklasse, die das Profil „
rfs“ angibt und die Option „isEITEnabled: "true"“ festlegt. Speichern Sie den folgenden YAML-Code in einer Datei mit dem Namen „rfs-eit-sc.yaml“.Für RFS EIT sind folgende Parameter erforderlich: „
profile: "rfs"“, „isENIEnabled: "true"“, „isEITEnabled: "true"“ und „proto=tcp“ in den Einhängoptionen.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibmc-vpc-file-rfs-eit-custom labels: app.kubernetes.io/name: ibm-vpc-file-csi-driver provisioner: vpc.file.csi.ibm.io parameters: profile: "rfs" # Regional File Storage profile billingType: "hourly" throughput: "1000" # Bandwidth in MB/s (25–8192 MB/s for RFS profile) encrypted: "false" encryptionKey: "" # Specify the CRK CRN if encrypted is true resourceGroup: "" # Defaults to the resource group in the storage secret store isENIEnabled: "true" # Required for RFS — enables ENI/VNI feature isEITEnabled: "true" # Enables encryption in transit with stunnel securityGroupIDs: "" # Defaults to the cluster security group kube-<clusterID> subnetID: "" # Defaults to an available subnet in the cluster VPC region: "" # Defaults to the region from the cluster node topology primaryIPID: "" # Optional: existing reserved IP ID (region is required) primaryIPAddress: "" # Optional: IP address for ENI/VNI (region and subnetID required) tags: "" uid: "0" gid: "0" classVersion: "1" mountOptions: - hard - nfsvers=4.1 - sec=sys - proto=tcp # Required for stunnel (encryption in transit) reclaimPolicy: "Delete" allowVolumeExpansion: true -
Wenden Sie die Speicherklasse an.
oc apply -f rfs-eit-sc.yaml -
Erstellen Sie ein PVC, das auf die Speicherklasse „
ibmc-vpc-file-rfs-eit-custom“ verweist. Speichern Sie den folgenden YAML-Code in einer Datei mit dem Namen „rfs-eit-pvc.yaml“.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-rfs-eit-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi storageClassName: ibmc-vpc-file-rfs-eit-custom -
Bringen Sie das PVC an.
oc apply -f rfs-eit-pvc.yaml -
Erstellen Sie einen Pod, der das PVC einbindet. Speichern Sie den folgenden YAML-Code in einer Datei mit dem Namen „
rfs-eit-pod.yaml“.apiVersion: v1 kind: Pod metadata: name: my-rfs-eit-app spec: containers: - name: app image: nginx:latest volumeMounts: - name: rfs-eit-storage mountPath: /data volumes: - name: rfs-eit-storage persistentVolumeClaim: claimName: my-rfs-eit-pvc -
Tragen Sie die Kapsel auf.
oc apply -f rfs-eit-pod.yaml
Überprüfung, ob die Verschlüsselung während der Übertragung aktiv ist
Überprüfen Sie nach dem Start des Pods anhand des Ziels der Dateifreigabe, ob die Verschlüsselung während der Übertragung funktioniert. Das Mount-Ziel muss „ Transit Encryption: stunnel “ anzeigen, um zu bestätigen, dass EIT aktiv
ist.
-
Warten Sie, bis der Pod den Status „
Running“ erreicht hat und das PVC den Status „Bound“ angenommen hat.oc get pod my-rfs-eit-app oc get pvc my-rfs-eit-pvc -
Rufen Sie die Dateifreigabe-ID und die Einhängeziel-ID des persistenten Volumes ab.
oc describe pv <pv-name> | grep -E "fileShareId|fileShareTargetId"Notieren Sie sich die Werte „
fileShareId“ und „fileShareTargetId“ aus der Ausgabe. Sie werden diese im nächsten Schritt verwenden, um EIT auf der VPC-Seite zu überprüfen. -
Stellen Sie sicher, dass als Transitverschlüsselungsmethode für das Einbindungsziel der Dateifreigabe „
stunnel“ angegeben ist.ibmcloud is share-mount-target FILE_SHARE_ID FILE_SHARE_TARGET_ID | grep "Transit Encryption"Beispielausgabe, die bestätigt, dass EIT aktiv ist:
Transit Encryption stunnel
Fehlerbehebung bei RFS EIT
Hilfe zu häufigen RFS-EIT-Fehlern finden Sie unter „ Fehlerbehebung bei der Verschlüsselung von Regional File Storage-Daten während der Übertragung “.