Cifrado en tránsito para IBM Cloud File Storage for VPC
Nube privada virtual
Utiliza el cifrado en tránsito (EIT) para proteger los datos mientras se transfieren entre tus nodos de trabajo y el servicio File Storage for VPC. Este tema trata sobre la EIT tanto para los recursos compartidos de archivos zonales que utilizan
el perfil « dp2 » como para los recursos compartidos de archivos regionales que utilizan el perfil « rfs ».
Recursos compartidos de zona: configuración del cifrado en tránsito
Si decides utilizar el cifrado en tránsito, busca un equilibrio entre tus requisitos de seguridad y tus necesidades de rendimiento. El cifrado de los datos en tránsito puede afectar al rendimiento, ya que los datos deben cifrarse y descifrarse en los puntos finales. Para obtener más información, consulta « Cifrado de VPC en tránsito ».
- EIT está disponible para las versiones de clúster « 1.30 » y posteriores.
- De forma predeterminada, los recursos compartidos de archivos se cifran en reposo mediante el cifrado gestionado por IBM.
- Para utilizar EIT con clústeres «Secure by Default», debes añadir la siguiente regla de salida al grupo de seguridad «
kube-<clusterID>». Esta regla se añade automáticamente en los clústeres IKS a partir de la versión 1.33 y posteriores. En el caso de versiones anteriores del clúster, añade la regla manualmente.- Protocolo: Cualquiera
- Tipo de fuente: Cualquiera
- Fuente:
0.0.0.0/0 - Destino:
169.254.169.254
- EIT no está disponible para volúmenes aprovisionados de forma estática. Para configurar EIT, debes utilizar el aprovisionamiento dinámico.
- Los paquetes de EIT se actualizan automáticamente en tu clúster cuando se activa EIT.
- El cifrado de los datos en tránsito puede afectar al rendimiento. El impacto depende de las características de tu carga de trabajo. Las cargas de trabajo que realizan escrituras sincrónicas o que eluden el almacenamiento en caché de VSI, como las bases de datos, podrían sufrir un impacto considerable en el rendimiento cuando se habilita la EIT. Para evaluar el impacto, compara el rendimiento de tu carga de trabajo con y sin EIT.
- Incluso sin EIT, los datos circulan a través de una red de centros de datos segura. Para obtener más información sobre la seguridad de la red, consulta « Seguridad en tu VPC » y « Protección de los servicios de infraestructura de la nube privada virtual(VPC)mediante restricciones basadas en el contexto ».
File Storage for VPC Solo se considera un servicio validado para servicios financieros cuando el cifrado en tránsito está activado. Para obtener más información, consulta qué es un servicio validado por Financial Services.
Sigue los siguientes pasos para configurar el cifrado en tránsito (EIT) para los recursos compartidos de archivos en tu clúster de IBM Cloud Kubernetes Service. Al habilitar EIT, se instalan los paquetes necesarios en los nodos de trabajo.
-
Anota los grupos de trabajadores de tu clúster en los que quieras habilitar EIT.
-
Edita el archivo «
addon-vpc-file-csi-driver-configmap».kubectl edit cm addon-vpc-file-csi-driver-configmap -n kube-system -
En el ConfigMap, configura «
ENABLE_EIT: "true"» y añade los grupos de trabajadores en los que quieras habilitar EIT al campo «EIT_ENABLED_WORKER_POOLS». Por ejemplo:"wp1,wp2". También puedes configurar los parámetros «EIT_METADATA_RETRY_COUNT» y «EIT_METADATA_RETRY_INTERVAL» para controlar el comportamiento de los reintentos al recuperar los metadatos de la instancia.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 -
Una vez habilitado el EIT, guarda y cierra el configmap.
Este paso puede tardar hasta 5 minutos en completarse, ya que el operador instala los paquetes EIT en los nodos de trabajo especificados.
-
Para comprobar que EIT está habilitado, revisa los eventos del mapa de configuración «
file-csi-driver-status» para confirmar que la instalación de EIT se ha realizado correctamente en cada nodo de trabajo. Busca los eventos «Package installation successful» correspondientes a cada nodo de los grupos de trabajadores que hayas especificado.kubectl describe cm file-csi-driver-status -n kube-systemSalida de ejemplo
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" -
Selecciona una clase de almacenamiento preinstalada que admita EIT o crea tu propia clase de almacenamiento.
- Crea un PVC utilizando la clase de almacenamiento «
ibmc-vpc-file-eit». - Crea tu propia clase de almacenamiento y configura el parámetro «
isEITEnabled» en «true».
- Crea un PVC utilizando la clase de almacenamiento «
-
Crea un PVC que haga referencia a la clase de almacenamiento que hayas seleccionado y, a continuación, implementa una aplicación que utilice tu PVC.
Si sigue teniendo problemas con EIT tras completar estos pasos, consulte los siguientes temas de resolución de problemas:
Recursos compartidos regionales: configuración del cifrado en tránsito (Beta)
El servicio «Regional File Storage » (RFS) con cifrado en tránsito (EIT) proporciona conexiones seguras y cifradas mediante el protocolo « TLS » ( NFS ) para compartir archivos entre varias zonas de disponibilidad dentro de una misma región. El complemento « File Storage for VPC » gestiona automáticamente un sidecar de stunnel en cada nodo de trabajo que envuelve todo el tráfico de NFS en TLS 1.3 o superior, de forma transparente para tus aplicaciones.
Para obtener más información sobre «Regional File Storage », consulta Resumen del almacenamiento regional de archivos.
RFS con EIT solo está disponible en versión beta y se recomienda su uso exclusivamente con fines experimentales. No utilices esta función en cargas de trabajo de producción.
Cómo funciona
Cuando se crea un PVC con una clase de almacenamiento RFS EIT y un pod lo monta, el complemento configura automáticamente un túnel stunnel cifrado en el nodo de trabajo y redirige todo el tráfico de NFS a través de él. El cifrado es transparente para tus aplicaciones: estas siguen utilizando montajes estándar de NFS, mientras que todos los datos en tránsito están protegidos con TLS 1.3 o una versión superior.
El ciclo de vida del túnel lo gestiona íntegramente el controlador: se crea cuando un pod monta el volumen y se elimina cuando se borra el pod.
Antes de empezar
- El complemento « File Storage for VPC », versión 2.0 o posterior, está instalado en tu clúster. Para obtener más información, consulta « Activación del complemento de clúster « IBM Cloud File Storage for VPC » ».
Limitaciones
Revisa las siguientes limitaciones antes de habilitar RFS EIT.
- Número máximo de conexiones PVC por nodo: 300, un puerto por PVC del rango de puertos 11300–11599, asignado a
127.0.0.1. - Conflicto de puertos para aplicaciones con
hostNetwork: true: Los pods de aplicaciones que utilizanhostNetwork: truey se vinculan a127.0.0.1en el rango de puertos 11300–11599 pueden entrar en conflicto con los montajes PVC de RFS EIT existentes. - También se aplican todas las restricciones que rigen para VPC File Storage.
Configuración del cifrado en tránsito para Regional File Storage
Sigue los siguientes pasos para configurar un recurso compartido de archivos regional con cifrado en tránsito.
-
Crea una clase de almacenamiento que especifique el perfil «
rfs» y establezca «isEITEnabled: "true"». Guarda el siguiente código YAML en un archivo llamado «rfs-eit-sc.yaml».Para RFS EIT se requieren los siguientes parámetros:
profile: "rfs",isENIEnabled: "true",isEITEnabled: "true"yproto=tcpen las opciones de montaje.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 -
Aplica la clase de almacenamiento.
kubectl apply -f rfs-eit-sc.yaml -
Crea un PVC que haga referencia a la clase de almacenamiento «
ibmc-vpc-file-rfs-eit-custom». Guarda el siguiente código YAML en un archivo llamado «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 -
Aplica el PVC.
kubectl apply -f rfs-eit-pvc.yaml -
Crea un pod que monte el PVC. Guarda el siguiente código YAML en un archivo llamado «
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 -
Aplica la cápsula.
kubectl apply -f rfs-eit-pod.yaml
Comprobación de que el cifrado en tránsito está activo
Una vez que se haya iniciado el pod, comprueba que el cifrado en tránsito funciona correctamente verificando el destino del recurso compartido de archivos. El objetivo de montaje debe mostrar « Transit Encryption: stunnel » para
confirmar que el EIT está activo.
-
Espera a que el pod pase al estado «
Running» y el PVC al estado «Bound».kubectl get pod my-rfs-eit-app kubectl get pvc my-rfs-eit-pvc -
Obtén el ID del recurso compartido y el ID del destino de montaje del volumen persistente.
kubectl describe pv <pv-name> | grep -E "fileShareId|fileShareTargetId"Toma nota de los valores «
fileShareId» y «fileShareTargetId» que aparecen en la salida. Los utilizarás en el siguiente paso para verificar el EIT en el lado de la VPC. -
Comprueba que el destino de montaje del recurso compartido de archivos indique «
stunnel» como método de cifrado de tránsito.ibmcloud is share-mount-target FILE_SHARE_ID FILE_SHARE_TARGET_ID | grep "Transit Encryption"Ejemplo de salida que confirma que EIT está activo:
Transit Encryption stunnel
Solución de problemas de RFS EIT
Si necesitas ayuda con los errores habituales de RFS EIT, consulta la sección « Solución de problemas del cifrado regional de File Storage en tránsito ».