Skip to main content
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Préparez-vous à configurer le backend avec les pilotes SAN ONTAP

Contributeurs netapp-aruldeepa

Comprendre les exigences et les options d'authentification pour configurer un backend ONTAP avec des pilotes SAN ONTAP .

Exigences

Pour tous les backends ONTAP , Trident exige qu'au moins un agrégat soit affecté au SVM.

Remarque "Systèmes ASA r2"diffèrent des autres systèmes ONTAP (ASA, AFF et FAS) dans la mise en œuvre de leur couche de stockage. Dans les systèmes ASA r2, on utilise des zones de disponibilité de stockage au lieu d'agrégats. Se référer à"ce" Article de la base de connaissances sur la manière d'attribuer des agrégats aux SVM dans les systèmes ASA r2.

N'oubliez pas que vous pouvez également exécuter plusieurs pilotes et créer des classes de stockage qui pointent vers l'un ou l'autre. Par exemple, vous pouvez configurer un san-dev classe qui utilise la ontap-san conducteur et un san-default classe qui utilise la ontap-san-economy un.

Tous vos nœuds de travail Kubernetes doivent avoir les outils iSCSI appropriés installés. Se référer à "Préparer le nœud de travail" pour plus de détails.

Authentifier le backend ONTAP

Trident propose deux modes d'authentification pour un système dorsal ONTAP .

  • Authentification par identifiants : nom d’utilisateur et mot de passe d’un utilisateur ONTAP disposant des autorisations requises. Il est recommandé d'utiliser un rôle de connexion de sécurité prédéfini, tel que admin ou vsadmin pour assurer une compatibilité maximale avec les versions ONTAP .

  • Authentification par certificat : Trident peut également communiquer avec un cluster ONTAP en utilisant un certificat installé sur le serveur. Ici, la définition du backend doit contenir les valeurs encodées en Base64 du certificat client, de la clé et du certificat d'autorité de certification de confiance si utilisé (recommandé).

Vous pouvez mettre à jour les systèmes d'arrière-plan existants pour passer d'une méthode basée sur les identifiants à une méthode basée sur les certificats. Cependant, une seule méthode d'authentification est prise en charge à la fois. Pour passer à une autre méthode d'authentification, vous devez supprimer la méthode actuelle de la configuration du serveur.

Avertissement Si vous tentez de fournir à la fois des identifiants et des certificats, la création du backend échouera avec une erreur indiquant que plusieurs méthodes d'authentification ont été fournies dans le fichier de configuration.

Activer l'authentification par identifiants

Trident a besoin des identifiants d'un administrateur au niveau SVM/cluster pour communiquer avec le backend ONTAP . Il est recommandé d'utiliser des rôles standard prédéfinis tels que admin ou vsadmin . Cela garantit la compatibilité ascendante avec les futures versions ONTAP qui pourraient exposer des API de fonctionnalités utilisables par les futures versions de Trident . Il est possible de créer et d'utiliser un rôle de connexion de sécurité personnalisé avec Trident, mais cela n'est pas recommandé.

Voici un exemple de définition de backend :

YAML
---
version: 1
backendName: ExampleBackend
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_nfs
username: vsadmin
password: password
JSON
{
  "version": 1,
  "backendName": "ExampleBackend",
  "storageDriverName": "ontap-san",
  "managementLIF": "10.0.0.1",
  "svm": "svm_nfs",
  "username": "vsadmin",
  "password": "password"
}

N'oubliez pas que la définition du backend est le seul endroit où les identifiants sont stockés en clair. Une fois le backend créé, les noms d'utilisateur et les mots de passe sont encodés en Base64 et stockés en tant que secrets Kubernetes. La création ou la mise à jour d'un backend est la seule étape qui nécessite la connaissance des identifiants. Il s'agit donc d'une opération réservée aux administrateurs, qui doit être effectuée par l'administrateur Kubernetes/stockage.

Activer l'authentification basée sur les certificats

Les nouveaux et les existants serveurs dorsaux peuvent utiliser un certificat et communiquer avec le serveur dorsal ONTAP . Trois paramètres sont requis dans la définition du backend.

  • clientCertificate : valeur du certificat client encodée en Base64.

  • clientPrivateKey : valeur encodée en Base64 de la clé privée associée.

  • trustedCACertificate : valeur encodée en Base64 du certificat d’autorité de certification de confiance. Si vous utilisez une autorité de certification de confiance, ce paramètre doit être fourni. Ceci peut être ignoré si aucune autorité de certification de confiance n'est utilisée.

Un flux de travail typique comprend les étapes suivantes.

Étapes
  1. Générer un certificat client et une clé. Lors de la génération, définissez le nom commun (CN) sur l'utilisateur ONTAP sous lequel s'authentifier.

    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"
  2. Ajouter un certificat d'autorité de certification de confiance au cluster ONTAP . Cela est peut-être déjà géré par l'administrateur du stockage. Ignorer si aucune autorité de certification de confiance n'est utilisée.

    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>
  3. Installez le certificat client et la clé (de l'étape 1) sur le cluster ONTAP .

    security certificate install -type client-ca -cert-name <certificate-name> -vserver <vserver-name>
    security ssl modify -vserver <vserver-name> -client-enabled true
  4. Vérifiez que le rôle de connexion de sécurité ONTAP prend en charge cert méthode d'authentification.

    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
  5. Testez l'authentification à l'aide du certificat généré. Remplacez < ONTAP Management LIF> et <nom du serveur virtuel> par l'adresse IP de l'interface de gestion LIF et le nom du 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>'
  6. Encodez le certificat, la clé et le certificat d'autorité de certification de confiance au format Base64.

    base64 -w 0 k8senv.pem >> cert_base64
    base64 -w 0 k8senv.key >> key_base64
    base64 -w 0 trustedca.pem >> trustedca_base64
  7. Créez le backend en utilisant les valeurs obtenues à l'étape précédente.

    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 |
    +------------+----------------+--------------------------------------+--------+---------+

Mettez à jour les méthodes d'authentification ou changez les identifiants.

Vous pouvez mettre à jour un système dorsal existant pour utiliser une méthode d'authentification différente ou pour renouveler ses identifiants. Cela fonctionne dans les deux sens : les systèmes d’arrière-plan qui utilisent un nom d’utilisateur/mot de passe peuvent être mis à jour pour utiliser des certificats ; les systèmes d’arrière-plan qui utilisent des certificats peuvent être mis à jour pour utiliser un nom d’utilisateur/mot de passe. Pour ce faire, vous devez supprimer la méthode d'authentification existante et ajouter la nouvelle méthode d'authentification. Utilisez ensuite le fichier backend.json mis à jour contenant les paramètres requis pour exécuter 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 |
+------------+----------------+--------------------------------------+--------+---------+
Remarque Lors de la rotation des mots de passe, l'administrateur du stockage doit d'abord mettre à jour le mot de passe de l'utilisateur sur ONTAP. Cette étape est suivie d'une mise à jour du système dorsal. Lors de la rotation des certificats, plusieurs certificats peuvent être ajoutés à l'utilisateur. Le système dorsal est ensuite mis à jour pour utiliser le nouveau certificat, après quoi l'ancien certificat peut être supprimé du cluster ONTAP .

La mise à jour d'un système dorsal n'interrompt pas l'accès aux volumes déjà créés et n'a aucun impact sur les connexions de volumes effectuées ultérieurement. Une mise à jour réussie du système dorsal indique que Trident peut communiquer avec le système dorsal ONTAP et gérer les futures opérations de volume.

Créer un rôle ONTAP personnalisé pour Trident

Vous pouvez créer un rôle de cluster ONTAP avec des privilèges minimaux afin de ne pas avoir à utiliser le rôle d'administrateur ONTAP pour effectuer des opérations dans Trident. Lorsque vous incluez le nom d'utilisateur dans une configuration backend Trident , Trident utilise le rôle de cluster ONTAP que vous avez créé pour effectuer les opérations.

Se référer à"Générateur de rôles personnalisés Trident" pour plus d'informations sur la création de rôles personnalisés Trident .

Utilisation de l'interface de ligne de commande ONTAP
  1. Créez un nouveau rôle à l'aide de la commande suivante :

    security login role create <role_name\> -cmddirname "command" -access all –vserver <svm_name\>

  2. Créez un nom d'utilisateur pour l'utilisateur Trident :

    security login create -username <user_name\> -application ontapi -authmethod <password\> -role <name_of_role_in_step_1\> –vserver <svm_name\> -comment "user_description"

  3. Associer le rôle à l'utilisateur :

    security login modify username <user_name\> –vserver <svm_name\> -role <role_name\> -application ontapi -application console -authmethod <password\>

Utilisation du gestionnaire système

Effectuez les étapes suivantes dans ONTAP System Manager :

  1. Créer un rôle personnalisé :

    1. Pour créer un rôle personnalisé au niveau du cluster, sélectionnez Cluster > Paramètres.

      (Ou) Pour créer un rôle personnalisé au niveau de la SVM, sélectionnez Stockage > Machines virtuelles de stockage > required SVM > Paramètres > Utilisateurs et rôles.

    2. Sélectionnez l'icône flèche () à côté de Utilisateurs et rôles.

    3. Sélectionnez +Ajouter sous Rôles.

    4. Définissez les règles du rôle et cliquez sur Enregistrer.

  2. Associer le rôle à l'utilisateur Trident * : + Effectuez les étapes suivantes sur la page *Utilisateurs et rôles :

    1. Sélectionnez l'icône Ajouter + sous Utilisateurs.

    2. Sélectionnez le nom d'utilisateur requis, puis sélectionnez un rôle dans le menu déroulant Rôle.

    3. Cliquez sur Enregistrer.

Pour plus d'informations, veuillez consulter les pages suivantes :

Authentifier les connexions avec CHAP bidirectionnel

Trident peut authentifier les sessions iSCSI avec CHAP bidirectionnel pour le ontap-san et ontap-san-economy conducteurs. Cela nécessite d'activer useCHAP option dans votre définition de backend. Lorsqu'il est réglé sur true Trident configure la sécurité par défaut de l'initiateur SVM en CHAP bidirectionnel et définit le nom d'utilisateur et les secrets à partir du fichier backend. NetApp recommande l'utilisation du protocole CHAP bidirectionnel pour authentifier les connexions. Voici un exemple de configuration :

---
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
Avertissement Le useCHAP Ce paramètre est une option booléenne qui ne peut être configurée qu'une seule fois. Cette option est désactivée par défaut. Une fois que vous l'avez défini sur vrai, vous ne pouvez plus le définir sur faux.

En plus de useCHAP=true , le chapInitiatorSecret , chapTargetInitiatorSecret , chapTargetUsername , et chapUsername Les champs doivent être inclus dans la définition du backend. Les secrets peuvent être modifiés après la création d'un backend en exécutant la commande suivante : tridentctl update .

Comment ça marche

En fixant useCHAP Si la valeur est « true », l'administrateur du stockage demande à Trident de configurer CHAP sur le système de stockage dorsal. Cela comprend les éléments suivants :

  • Configuration de CHAP sur la SVM :

    • Si le type de sécurité par défaut de l'initiateur du SVM est « aucun » (paramètre par défaut) et qu'aucun LUN n'est déjà présent dans le volume, Trident définira le type de sécurité par défaut sur CHAP et procédez à la configuration du nom d'utilisateur et des secrets de l'initiateur et de la cible CHAP.

    • Si le SVM contient des LUN, Trident n'activera pas CHAP sur le SVM. Cela garantit que l'accès aux LUN déjà présentes sur la SVM n'est pas restreint.

  • Configuration du nom d'utilisateur et des secrets de l'initiateur et de la cible CHAP ; ces options doivent être spécifiées dans la configuration du backend (comme indiqué ci-dessus).

Une fois le backend créé, Trident crée un correspondant tridentbackend CRD et stocke les secrets CHAP et les noms d'utilisateur en tant que secrets Kubernetes. Tous les PV créés par Trident sur ce backend seront montés et attachés via CHAP.

Faire pivoter les informations d'identification et mettre à jour les backends

Vous pouvez mettre à jour les informations d'identification CHAP en modifiant les paramètres CHAP dans le backend.json déposer. Cela nécessitera la mise à jour des secrets CHAP et l'utilisation du tridentctl update commande pour refléter ces changements.

Avertissement Lors de la mise à jour des secrets CHAP pour un serveur dorsal, vous devez utiliser tridentctl mettre à jour le système dorsal. Ne mettez pas à jour les informations d'identification sur le cluster de stockage à l'aide de l'interface de ligne de commande ONTAP ou du gestionnaire système ONTAP , car Trident ne pourra pas prendre en compte ces modifications.
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 |
+----------------+----------------+--------------------------------------+--------+---------+

Les connexions existantes resteront inchangées ; elles resteront actives si les informations d'identification sont mises à jour par Trident sur le SVM. Les nouvelles connexions utilisent les informations d'identification mises à jour et les connexions existantes restent actives. Déconnecter puis reconnecter les anciens PV leur permettra d'utiliser les identifiants mis à jour.