Configurar el cifrado de backend de almacenamiento
Con Astra Control Provisioning, puede mejorar la seguridad de acceso a los datos al habilitar el cifrado del tráfico entre su clúster gestionado y el back-end de almacenamiento.
Astra Control Provisioning admite el cifrado Kerberos para dos tipos de back-ends de almacenamiento:
-
ONTAP en las instalaciones - El aprovisionador de control de Astra admite el cifrado de Kerberos a través de conexiones NFSv3 y NFSv4 desde Red Hat OpenShift y los clústeres de Kubernetes ascendentes a volúmenes ONTAP locales.
-
Azure NetApp Files - El aprovisionador de control de Astra admite el cifrado de Kerberos a través de conexiones NFSv4,1 desde clústeres de Kubernetes anteriores a volúmenes de Azure NetApp Files.
Puede crear, eliminar, cambiar el tamaño, copiar, clonar, Clone de solo lectura e importe volúmenes que usen cifrado NFS.
Configure el cifrado de Kerberos en tránsito con volúmenes de ONTAP en las instalaciones
Puede habilitar el cifrado de Kerberos en el tráfico de almacenamiento entre su clúster gestionado y un back-end de almacenamiento de ONTAP en las instalaciones.
El cifrado de Kerberos para el tráfico NFS con back-ends de almacenamiento de ONTAP en las instalaciones solo se admite mediante el ontap-nas controlador de almacenamiento.
|
-
Asegúrese de que tiene "Habilitado Astra Control Provisioning" en el clúster gestionado.
-
Asegúrese de tener acceso al
tridentctl
utilidad. -
Asegúrese de tener acceso de administrador al back-end de almacenamiento de ONTAP.
-
Asegúrese de conocer el nombre del volumen o los volúmenes que compartirá desde el back-end de almacenamiento de ONTAP.
-
Asegúrese de haber preparado la máquina virtual de almacenamiento de ONTAP para admitir el cifrado de Kerberos para los volúmenes de NFS. Consulte "Habilite Kerberos en una LIF de datos" si desea obtener instrucciones.
-
Asegúrese de que los volúmenes de NFSv4 GB que utilice con el cifrado de Kerberos se hayan configurado correctamente. Consulte la sección Configuración de dominio de NetApp NFSv4 (página 13) del "Guía de mejoras y prácticas recomendadas de NetApp NFSv4".
Añada o modifique las políticas de exportación de ONTAP
Tiene que agregar reglas a políticas de exportación de ONTAP existentes o crear nuevas políticas de exportación que sean compatibles con el cifrado de Kerberos para el volumen raíz de la máquina virtual de almacenamiento de ONTAP, así como para cualquier volumen de ONTAP compartido con el clúster de Kubernetes ascendente. Las reglas de políticas de exportación que añada, o las nuevas políticas de exportación que cree, deben admitir los siguientes protocolos de acceso y permisos de acceso:
Configure la directiva de exportación con los protocolos de acceso NFS, NFSv3 y NFSv4.
Puede configurar una de tres versiones diferentes de cifrado de Kerberos, según las necesidades del volumen:
-
Kerberos 5 - (autenticación y cifrado)
-
Kerberos 5i - (autenticación y encriptación con protección de identidad)
-
Kerberos 5p - (autenticación y encriptación con protección de identidad y privacidad)
Configure la regla de política de exportación de ONTAP con los permisos de acceso adecuados. Por ejemplo, si los clústeres montarán los volúmenes NFS con una combinación de Kerberos 5i y cifrado Kerberos 5p, utilice los siguientes ajustes de acceso:
Tipo | Acceso de solo lectura | Acceso de lectura/escritura | Acceso de superusuario |
---|---|---|---|
UNIX |
Activado |
Activado |
Activado |
Kerberos 5i |
Activado |
Activado |
Activado |
Kerberos 5p |
Activado |
Activado |
Activado |
Consulte la siguiente documentación para saber cómo crear políticas de exportación de ONTAP y reglas de políticas de exportación:
Cree un back-end de almacenamiento
Puede crear una configuración de back-end de almacenamiento de Astra Control Provisioner que incluya la funcionalidad de cifrado Kerberos.
Al crear un archivo de configuración de backend de almacenamiento que configure el cifrado Kerberos, puede especificar una de las tres versiones diferentes del cifrado Kerberos mediante el spec.nfsMountOptions
parámetro:
-
spec.nfsMountOptions: sec=krb5
(autenticación y cifrado) -
spec.nfsMountOptions: sec=krb5i
(autenticación y cifrado con protección de identidad) -
spec.nfsMountOptions: sec=krb5p
(autenticación y encriptación con protección de identidad y privacidad)
Especifique solo un nivel de Kerberos. Si especifica más de un nivel de cifrado de Kerberos en la lista de parámetros, sólo se utilizará la primera opción.
-
En el clúster gestionado, cree un archivo de configuración de back-end de almacenamiento utilizando el ejemplo siguiente. Sustituya los valores entre paréntesis <> por información de su entorno:
apiVersion: v1 kind: Secret metadata: name: backend-ontap-nas-secret type: Opaque stringData: clientID: <CLIENT_ID> clientSecret: <CLIENT_SECRET> --- apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-ontap-nas spec: version: 1 storageDriverName: "ontap-nas" managementLIF: <STORAGE_VM_MGMT_LIF_IP_ADDRESS> dataLIF: <PROTOCOL_LIF_FQDN_OR_IP_ADDRESS> svm: <STORAGE_VM_NAME> username: <STORAGE_VM_USERNAME_CREDENTIAL> password: <STORAGE_VM_PASSWORD_CREDENTIAL> nasType: nfs nfsMountOptions: ["sec=krb5i"] #can be krb5, krb5i, or krb5p qtreesPerFlexvol: credentials: name: backend-ontap-nas-secret
-
Utilice el archivo de configuración que creó en el paso anterior para crear el backend:
tridentctl create backend -f <backend-configuration-file>
Si la creación del back-end falla, algo está mal con la configuración del back-end. Puede ver los registros para determinar la causa ejecutando el siguiente comando:
tridentctl logs
Después de identificar y corregir el problema con el archivo de configuración, puede ejecutar de nuevo el comando create.
Cree una clase de almacenamiento
Puede crear una clase de almacenamiento para aprovisionar volúmenes con el cifrado de Kerberos.
Al crear un objeto de clase de almacenamiento, puede especificar una de las tres versiones diferentes del cifrado de Kerberos mediante el mountOptions
parámetro:
-
mountOptions: sec=krb5
(autenticación y cifrado) -
mountOptions: sec=krb5i
(autenticación y cifrado con protección de identidad) -
mountOptions: sec=krb5p
(autenticación y encriptación con protección de identidad y privacidad)
Especifique solo un nivel de Kerberos. Si especifica más de un nivel de cifrado de Kerberos en la lista de parámetros, sólo se utilizará la primera opción. Si el nivel de cifrado especificado en la configuración de backend de almacenamiento es diferente al nivel especificado en el objeto de clase de almacenamiento, el objeto de clase de almacenamiento tiene prioridad.
-
Cree un objeto de Kubernetes StorageClass, mediante el siguiente ejemplo:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ontap-nas-sc provisioner: csi.trident.netapp.io mountOptions: ["sec=krb5i"] #can be krb5, krb5i, or krb5p parameters: backendType: "ontap-nas" storagePools: "ontapnas_pool" trident.netapp.io/nasType: "nfs" allowVolumeExpansion: True
-
Cree la clase de almacenamiento:
kubectl create -f sample-input/storage-class-ontap-nas-sc.yaml
-
Asegúrese de que se ha creado la clase de almacenamiento:
kubectl get sc ontap-nas-sc
Debería ver una salida similar a la siguiente:
NAME PROVISIONER AGE ontap-nas-sc csi.trident.netapp.io 15h
Aprovisione los volúmenes
Después de crear un back-end de almacenamiento y una clase de almacenamiento, ahora puede aprovisionar un volumen. Consulte estas instrucciones para "aprovisionamiento de un volumen".
Configure el cifrado de Kerberos en tránsito con volúmenes Azure NetApp Files
Puede habilitar el cifrado de Kerberos en el tráfico de almacenamiento entre su clúster gestionado y un solo back-end de almacenamiento de Azure NetApp Files o un pool virtual de back-ends de almacenamiento de Azure NetApp Files.
-
Asegúrese de haber habilitado el aprovisionador de Astra Control en el clúster Red Hat OpenShift gestionado. Consulte "Habilita el aprovisionador de Astra Control" si desea obtener instrucciones.
-
Asegúrese de tener acceso al
tridentctl
utilidad. -
Asegúrese de haber preparado el back-end de almacenamiento de Azure NetApp Files para cifrado Kerberos siguiendo los requisitos y siguiendo las instrucciones de "Documentación de Azure NetApp Files".
-
Asegúrese de que los volúmenes de NFSv4 GB que utilice con el cifrado de Kerberos se hayan configurado correctamente. Consulte la sección Configuración de dominio de NetApp NFSv4 (página 13) del "Guía de mejoras y prácticas recomendadas de NetApp NFSv4".
Cree un back-end de almacenamiento
Puede crear una configuración de back-end de almacenamiento de Azure NetApp Files que incluya la funcionalidad de cifrado de Kerberos.
Cuando crea un archivo de configuración de backend de almacenamiento que configura el cifrado Kerberos, puede definirlo para que se aplique en uno de los dos niveles posibles:
-
El storage backend level usando el
spec.kerberos
campo -
El nivel de grupo virtual usando el
spec.storage.kerberos
campo
Cuando se define la configuración en el nivel del pool virtual, el pool se selecciona con la etiqueta de la clase de almacenamiento.
En cualquier nivel, puede especificar una de las tres versiones diferentes del cifrado Kerberos:
-
kerberos: sec=krb5
(autenticación y cifrado) -
kerberos: sec=krb5i
(autenticación y cifrado con protección de identidad) -
kerberos: sec=krb5p
(autenticación y encriptación con protección de identidad y privacidad)
-
En el clúster gestionado, cree un archivo de configuración de back-end de almacenamiento mediante uno de los siguientes ejemplos, en función del lugar donde necesite definir el back-end de almacenamiento (nivel de back-end de almacenamiento o nivel de pool virtual). Sustituya los valores entre paréntesis <> por información de su entorno:
Ejemplo de nivel de back-end de almacenamientoapiVersion: v1 kind: Secret metadata: name: backend-tbc-anf-secret type: Opaque stringData: clientID: <CLIENT_ID> clientSecret: <CLIENT_SECRET> --- apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-tbc-anf spec: version: 1 storageDriverName: azure-netapp-files subscriptionID: <SUBSCRIPTION_ID> tenantID: <TENANT_ID> location: <AZURE_REGION_LOCATION> serviceLevel: Standard networkFeatures: Standard capacityPools: <CAPACITY_POOL> resourceGroups: <RESOURCE_GROUP> netappAccounts: <NETAPP_ACCOUNT> virtualNetwork: <VIRTUAL_NETWORK> subnet: <SUBNET> nasType: nfs kerberos: sec=krb5i #can be krb5, krb5i, or krb5p credentials: name: backend-tbc-anf-secret
Ejemplo de nivel de pool virtualapiVersion: v1 kind: Secret metadata: name: backend-tbc-anf-secret type: Opaque stringData: clientID: <CLIENT_ID> clientSecret: <CLIENT_SECRET> --- apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-tbc-anf spec: version: 1 storageDriverName: azure-netapp-files subscriptionID: <SUBSCRIPTION_ID> tenantID: <TENANT_ID> location: <AZURE_REGION_LOCATION> serviceLevel: Standard networkFeatures: Standard capacityPools: <CAPACITY_POOL> resourceGroups: <RESOURCE_GROUP> netappAccounts: <NETAPP_ACCOUNT> virtualNetwork: <VIRTUAL_NETWORK> subnet: <SUBNET> nasType: nfs storage: - labels: type: encryption kerberos: sec=krb5i #can be krb5, krb5i, or krb5p credentials: name: backend-tbc-anf-secret
-
Utilice el archivo de configuración que creó en el paso anterior para crear el backend:
tridentctl create backend -f <backend-configuration-file>
Si la creación del back-end falla, algo está mal con la configuración del back-end. Puede ver los registros para determinar la causa ejecutando el siguiente comando:
tridentctl logs
Después de identificar y corregir el problema con el archivo de configuración, puede ejecutar de nuevo el comando create.
Cree una clase de almacenamiento
Puede crear una clase de almacenamiento para aprovisionar volúmenes con el cifrado de Kerberos.
-
Cree un objeto de Kubernetes StorageClass, mediante el siguiente ejemplo:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: anf-sc-nfs provisioner: csi.trident.netapp.io parameters: backendType: "azure-netapp-files" trident.netapp.io/nasType: "nfs" selector: "type=encryption"
-
Cree la clase de almacenamiento:
kubectl create -f sample-input/storage-class-anf-sc-nfs.yaml
-
Asegúrese de que se ha creado la clase de almacenamiento:
kubectl get sc anf-sc-nfs
Debería ver una salida similar a la siguiente:
NAME PROVISIONER AGE anf-sc-nfs csi.trident.netapp.io 15h
Aprovisione los volúmenes
Después de crear un back-end de almacenamiento y una clase de almacenamiento, ahora puede aprovisionar un volumen. Consulte estas instrucciones para "aprovisionamiento de un volumen".