Prepárese para configurar el back-end con los controladores SAN de ONTAP
Conozca los requisitos y las opciones de autenticación para configurar un back-end de ONTAP con controladores SAN de ONTAP.
Requisitos
Para todos los back-ends de ONTAP, Trident requiere al menos un agregado asignado a la SVM.
Recuerde que también puede ejecutar más de un controlador y crear clases de almacenamiento que señalen a uno o a otro. Por ejemplo, puede configurar un san-dev
clase que utiliza ontap-san
controlador y a san-default
clase que utiliza ontap-san-economy
uno.
Todos sus nodos de trabajo de Kubernetes deben tener instaladas las herramientas iSCSI adecuadas. Consulte "Prepare el nodo de trabajo" para obtener más detalles.
Autentique el backend de ONTAP
Trident ofrece dos modos de autenticación de un backend ONTAP.
-
Basado en credenciales: El nombre de usuario y la contraseña de un usuario ONTAP con los permisos requeridos. Se recomienda utilizar un rol de inicio de sesión de seguridad predefinido, como
admin
o.vsadmin
Garantizar la máxima compatibilidad con versiones de ONTAP. -
Basado en certificado: Trident también puede comunicarse con un clúster de ONTAP mediante un certificado instalado en el back-end. Aquí, la definición de backend debe contener valores codificados en Base64 del certificado de cliente, la clave y el certificado de CA de confianza si se utiliza (recomendado).
Puede actualizar los back-ends existentes para moverse entre métodos basados en credenciales y basados en certificados. Sin embargo, solo se admite un método de autenticación a la vez. Para cambiar a un método de autenticación diferente, debe eliminar el método existente de la configuración del back-end.
Si intenta proporcionar tanto credenciales como certificados, la creación de backend fallará y se producirá un error en el que se haya proporcionado más de un método de autenticación en el archivo de configuración. |
Habilite la autenticación basada en credenciales
Trident requiere que las credenciales se comuniquen con un administrador de SVM o con el ámbito del clúster para que se comunique con el back-end de ONTAP. Se recomienda hacer uso de roles estándar, predefinidos como admin
o vsadmin
. Esto garantiza la compatibilidad con futuras versiones de ONTAP que podrían exponer API de funciones que podrán utilizarse en futuras versiones de Trident. Puede crearse y utilizarse un rol de inicio de sesión de seguridad personalizado con Trident, pero no se recomienda.
Una definición de backend de ejemplo tendrá este aspecto:
--- version: 1 backendName: ExampleBackend storageDriverName: ontap-san managementLIF: 10.0.0.1 svm: svm_nfs username: vsadmin password: password
{ "version": 1, "backendName": "ExampleBackend", "storageDriverName": "ontap-san", "managementLIF": "10.0.0.1", "svm": "svm_nfs", "username": "vsadmin", "password": "password" }
Tenga en cuenta que la definición de backend es el único lugar en el que las credenciales se almacenan en texto sin formato. Una vez creado el back-end, los nombres de usuario y las contraseñas se codifican con Base64 y se almacenan como secretos de Kubernetes. La creación o actualización de un backend es el único paso que requiere conocimiento de las credenciales. Por tanto, es una operación de solo administración que deberá realizar el administrador de Kubernetes o almacenamiento.
Habilite la autenticación basada en certificados
Los back-ends nuevos y existentes pueden utilizar un certificado y comunicarse con el back-end de ONTAP. Se necesitan tres parámetros en la definición de backend.
-
ClientCertificate: Valor codificado en base64 del certificado de cliente.
-
ClientPrivateKey: Valor codificado en base64 de la clave privada asociada.
-
TrustedCACertificate: Valor codificado en base64 del certificado de CA de confianza. Si se utiliza una CA de confianza, se debe proporcionar este parámetro. Esto se puede ignorar si no se utiliza ninguna CA de confianza.
Un flujo de trabajo típico implica los pasos siguientes.
-
Genere una clave y un certificado de cliente. Al generar, establezca el nombre común (CN) en el usuario de ONTAP para autenticarse como.
openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout k8senv.key -out k8senv.pem -subj "/C=US/ST=NC/L=RTP/O=NetApp/CN=admin"
-
Añada un certificado de CA de confianza al clúster ONTAP. Es posible que ya sea gestionado por el administrador de almacenamiento. Ignore si no se utiliza ninguna CA de confianza.
security certificate install -type server -cert-name <trusted-ca-cert-name> -vserver <vserver-name> ssl modify -vserver <vserver-name> -server-enabled true -client-enabled true -common-name <common-name> -serial <SN-from-trusted-CA-cert> -ca <cert-authority>
-
Instale el certificado y la clave de cliente (desde el paso 1) en el clúster ONTAP.
security certificate install -type client-ca -cert-name <certificate-name> -vserver <vserver-name> security ssl modify -vserver <vserver-name> -client-enabled true
-
Confirme los compatibilidad con el rol de inicio de sesión de seguridad ONTAP
cert
método de autenticación.security login create -user-or-group-name admin -application ontapi -authentication-method cert security login create -user-or-group-name admin -application http -authentication-method cert
-
Probar la autenticación mediante un certificado generado. Reemplace <LIF de gestión de ONTAP> y <vserver name> por la IP de LIF de gestión y el nombre de SVM.
curl -X POST -Lk https://<ONTAP-Management-LIF>/servlets/netapp.servlets.admin.XMLrequest_filer --key k8senv.key --cert ~/k8senv.pem -d '<?xml version="1.0" encoding="UTF-8"?><netapp xmlns="http://www.netapp.com/filer/admin" version="1.21" vfiler="<vserver-name>"><vserver-get></vserver-get></netapp>'
-
Codifique certificados, claves y certificados de CA de confianza con Base64.
base64 -w 0 k8senv.pem >> cert_base64 base64 -w 0 k8senv.key >> key_base64 base64 -w 0 trustedca.pem >> trustedca_base64
-
Cree un backend utilizando los valores obtenidos del paso anterior.
cat cert-backend.json { "version": 1, "storageDriverName": "ontap-san", "backendName": "SanBackend", "managementLIF": "1.2.3.4", "svm": "vserver_test", "clientCertificate": "Faaaakkkkeeee...Vaaalllluuuueeee", "clientPrivateKey": "LS0tFaKE...0VaLuES0tLS0K", "trustedCACertificate": "QNFinfO...SiqOyN", "storagePrefix": "myPrefix_" } tridentctl create backend -f cert-backend.json -n trident +------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +------------+----------------+--------------------------------------+--------+---------+ | SanBackend | ontap-san | 586b1cd5-8cf8-428d-a76c-2872713612c1 | online | 0 | +------------+----------------+--------------------------------------+--------+---------+
Actualice los métodos de autenticación o gire las credenciales
Puede actualizar un back-end existente para utilizar un método de autenticación diferente o para rotar sus credenciales. Esto funciona de las dos maneras: Los back-ends que utilizan nombre de usuario/contraseña se pueden actualizar para usar certificados. Los back-ends que utilizan certificados pueden actualizarse a nombre de usuario/contraseña. Para ello, debe eliminar el método de autenticación existente y agregar el nuevo método de autenticación. A continuación, utilice el archivo backend.json actualizado que contiene los parámetros necesarios para ejecutarse tridentctl backend update
.
cat cert-backend-updated.json { "version": 1, "storageDriverName": "ontap-san", "backendName": "SanBackend", "managementLIF": "1.2.3.4", "svm": "vserver_test", "username": "vsadmin", "password": "password", "storagePrefix": "myPrefix_" } #Update backend with tridentctl tridentctl update backend SanBackend -f cert-backend-updated.json -n trident +------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +------------+----------------+--------------------------------------+--------+---------+ | SanBackend | ontap-san | 586b1cd5-8cf8-428d-a76c-2872713612c1 | online | 9 | +------------+----------------+--------------------------------------+--------+---------+
Cuando gira contraseñas, el administrador de almacenamiento debe actualizar primero la contraseña del usuario en ONTAP. A esto le sigue una actualización de back-end. Al rotar certificados, se pueden agregar varios certificados al usuario. A continuación, el back-end se actualiza para usar el nuevo certificado, siguiendo el cual se puede eliminar el certificado antiguo del clúster de ONTAP. |
La actualización de un back-end no interrumpe el acceso a los volúmenes que se han creado ni afecta a las conexiones de volúmenes realizadas después. Una actualización de back-end correcta indica que Trident puede comunicarse con el back-end de ONTAP y manejar operaciones de volumen futuras.
Crear rol de ONTAP personalizado para Trident
Puede crear un rol de clúster de ONTAP con un Privileges mínimo de modo que no tenga que utilizar el rol de administrador de ONTAP para realizar operaciones en Trident. Cuando incluye el nombre de usuario en una configuración de back-end de Trident, Trident utiliza el rol de clúster de ONTAP que creó para realizar las operaciones.
Consulte "Generador de roles personalizados de Trident"para obtener más información sobre la creación de roles personalizados de Trident.
-
Cree un rol nuevo mediante el siguiente comando:
security login role create <role_name\> -cmddirname "command" -access all –vserver <svm_name\>
-
Cree un nombre de usuario para el usuario de Trident:
security login create -username <user_name\> -application ontapi -authmethod <password\> -role <name_of_role_in_step_1\> –vserver <svm_name\> -comment "user_description"
-
Asignar el rol al usuario:
security login modify username <user_name\> –vserver <svm_name\> -role <role_name\> -application ontapi -application console -authmethod <password\>
Realice los pasos siguientes en ONTAP System Manager:
-
Crear un rol personalizado:
-
Para crear un rol personalizado a nivel de clúster, seleccione Cluster > Settings.
(O) Para crear un rol personalizado en el nivel de SVM, seleccione Almacenamiento > Storage VMs >
required SVM
> Settings > Users and Roles. -
Seleccione el icono de flecha (→) junto a Usuarios y roles.
-
Seleccione +Agregar en Roles.
-
Defina las reglas para el rol y haga clic en Guardar.
-
-
Asignar el rol al usuario de Trident: + Realizar los siguientes pasos en la página Usuarios y Roles:
-
Seleccione Agregar icono + en Usuarios.
-
Seleccione el nombre de usuario requerido y seleccione un rol en el menú desplegable para Rol.
-
Haga clic en Guardar.
-
Consulte las siguientes páginas si quiere más información:
Autentica conexiones con CHAP bidireccional
Trident puede autenticar sesiones iSCSI con CHAP bidireccional para ontap-san
los controladores y. ontap-san-economy
Esto requiere la activación de useCHAP
la opción en la definición de backend. Cuando se establece en true
, Trident configura la seguridad del iniciador predeterminado de la SVM como CHAP bidireccional y establece el nombre de usuario y los secretos del archivo back-end. NetApp recomienda utilizar CHAP bidireccional para autenticar las conexiones. Consulte la siguiente configuración de ejemplo:
--- version: 1 storageDriverName: ontap-san backendName: ontap_san_chap managementLIF: 192.168.0.135 svm: ontap_iscsi_svm useCHAP: true username: vsadmin password: password chapInitiatorSecret: cl9qxIm36DKyawxy chapTargetInitiatorSecret: rqxigXgkesIpwxyz chapTargetUsername: iJF4heBRT0TCwxyz chapUsername: uh2aNCLSd6cNwxyz
La useCHAP Parameter es una opción booleana que solo se puede configurar una vez. De forma predeterminada, se establece en FALSE. Después de configurarlo en true, no puede establecerlo en false.
|
Además de useCHAP=true
, la chapInitiatorSecret
, chapTargetInitiatorSecret
, chapTargetUsername
, y. chapUsername
los campos deben incluirse en la definición del backend. Los secretos se pueden cambiar después de crear un back-end ejecutando tridentctl update
.
Cómo funciona
Al configurarse useCHAP
en true, el administrador de almacenamiento le ordena a Trident que configure CHAP en el back-end de almacenamiento. Esto incluye lo siguiente:
-
Configuración de CHAP en la SVM:
-
Si el tipo de seguridad de iniciador predeterminado de la SVM es none (establecido de forma predeterminada) y no hay LUN preexistentes ya presentes en el volumen, Trident establecerá el tipo de seguridad predeterminado en
CHAP
y continuará configurando el iniciador CHAP y el nombre de usuario y los secretos de destino. -
Si la SVM contiene LUN, Trident no habilitará CHAP en la SVM. De este modo se garantiza que no se restrinja el acceso a las LUN que ya están presentes en la SVM.
-
-
Configurar el iniciador de CHAP, el nombre de usuario y los secretos de destino; estas opciones deben especificarse en la configuración del back-end (como se muestra más arriba).
Después de crear el backend, Trident crea un CRD correspondiente tridentbackend
y almacena los secretos CHAP y nombres de usuario como secretos de Kubernetes. Todos los VP que crea Trident en este back-end se montarán y conectarán mediante CHAP.
Rotar las credenciales y actualizar los back-ends
Para actualizar las credenciales de CHAP, se deben actualizar los parámetros de CHAP en backend.json
archivo. Para ello, será necesario actualizar los secretos CHAP y utilizar el tridentctl update
comando para reflejar estos cambios.
Al actualizar los secretos CHAP para un backend, debe utilizar tridentctl para actualizar el backend. No actualice las credenciales en el clúster de almacenamiento a través de la interfaz de usuario de CLI/ONTAP, ya que Trident no podrá recoger estos cambios.
|
cat backend-san.json { "version": 1, "storageDriverName": "ontap-san", "backendName": "ontap_san_chap", "managementLIF": "192.168.0.135", "svm": "ontap_iscsi_svm", "useCHAP": true, "username": "vsadmin", "password": "password", "chapInitiatorSecret": "cl9qxUpDaTeD", "chapTargetInitiatorSecret": "rqxigXgkeUpDaTeD", "chapTargetUsername": "iJF4heBRT0TCwxyz", "chapUsername": "uh2aNCLSd6cNwxyz", } ./tridentctl update backend ontap_san_chap -f backend-san.json -n trident +----------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +----------------+----------------+--------------------------------------+--------+---------+ | ontap_san_chap | ontap-san | aa458f3b-ad2d-4378-8a33-1a472ffbeb5c | online | 7 | +----------------+----------------+--------------------------------------+--------+---------+
Las conexiones existentes no se verán afectadas; seguirán activas si las credenciales se actualizan mediante Trident en la SVM. Las nuevas conexiones utilizan las credenciales actualizadas y las conexiones existentes siguen activas. Al desconectar y volver a conectar los VP antiguos, se utilizarán las credenciales actualizadas.