Chiffrement de base de données à l'aide du système de fichiers chiffré AIX (EFS)

Si vous exécutez un système Db2® sur le système d'exploitation AIX® , vous avez la possibilité de configurer une base de données chiffrée à l'aide du système de fichiers chiffré AIX (EFS). Pour des informations détaillées sur EFS, consultez la documentation AIX .

Remarque: Si vous travaillez dans un environnement de base de données partitionnée, pour utiliser EFS, votre base de données doit se trouver dans une seule partition de base de données.

Vous pouvez chiffrer les fichiers du système d'exploitation qui contiennent les données dans les tables de base de données à l'aide du système de fichiers EFS sous-jacent avec le système de fichiers JFS2 .

Pour configurer le chiffrement, procédez comme suit:
  1. Activez EFS sur le système.
  2. Chargez les magasins de clés pour le compte utilisateur sous lequel les démons de base de données Db2 s'exécutent.
  3. Activez EFS sur le système de fichiers de base de données.
  4. Déterminez le fichier du système d'exploitation à chiffrer.
  5. Chiffrez le fichier contenant la table de base de données qui requiert la protection EFS .

Activation de EFS sur le système

Avant d'activer EFS, l'ensemble de fichiers clic.rte doit être installé. L'image d'installation de clic.rte se trouve sur le CD d'Expansion Pack.

Exécutez la commande suivante en tant que root pour activer EFS sur le système:
% efsenable -a

Vous devez exécuter la commande efsenable une seule fois.

Chargement des magasins de clés

Dans les exemples de configuration suivants, le compte utilisateur Db2 sous lequel les démons de base de données s'exécutent est appelé abst. L'utilisateur abst doit disposer d'un magasin de clés et tout groupe dont l'abst est membre doit également disposer d'un magasin de clés.
  1. Tous les magasins de clés doivent être associés au processus abst avant de démarrer les démons Db2 .
    Vous pouvez vérifier qu'ils sont associés à l'aide de la commande efskeymgr -V , comme illustré dans l'exemple suivant:
    # lsuser abst
    abst id=203 pgrp=abstgp groups=abstgp,staff ...
    
    # efskeymgr -V
    List of keys loaded in the current process:
      Key #0:
                        Kind ..................... User key
                        Id (uid / gid) ......... 203
                        Type ..................... Private
    key
                        Algorithm ................ RSA_1024
                        Validity ................. Key is
    valid
                        Fingerprint ..............
    24c88df2:d91cb6a2:c3e11b6a:4c13f8b4:666fabd8
    
      Key #1:
                        Kind ..................... Group
    key
                        Id (uid / gid) ......... 1
                        Type ..................... Private
    key
                        Algorithm ................ RSA_1024
                        Validity ................. Key is
    valid
                        Fingerprint ..............
    03fead42:57e7646e:a1715626:cfa56c8e:8abed1c1
    
      Key #2:
                        Kind ..................... Group
    key
                        Id (uid / gid) ......... 212
                        Type ..................... Private
    key
                        Algorithm ................ RSA_1024
                        Validity ................. Key is
    valid
                        Fingerprint ..............
    339dfb19:bc850f4c:5551c975:7fe4961b:2dddf3bc
  2. Si aucun magasin de clés n'est associé au processus abst, essayez de charger les magasins de clés à l'aide de la commande: % efskeymgr -o ksh

    Cette commande demande le mot de passe du magasin de clés, qui est initialement défini sur le mot de passe de connexion.

  3. Confirmez que les clés d'utilisateur et de groupe sont chargées en exécutant à nouveau la commande: % efskeymgr -V

    Les clés d'utilisateur et de groupe doivent être répertoriées. Si les magasins de clés de groupe ne sont toujours pas répertoriés, passez à l'étape 4.

  4. Selon la façon dont un groupe a été créé, il se peut que le magasin de clés du groupe n'existe pas. Si la commande efskeymgr -V ne répertorie pas les magasins de clés de groupe de l'utilisateur, vous devez créer les magasins de clés de groupe.
    En tant que superutilisateur ou rôle RBAC aix.efs_admin, créez le magasin de clés de groupe:
    % efskeymgr -C group_name
  5. Affectez l'accès au magasin de clés de groupe à chaque utilisateur applicable:
    % efskeymgr -k group /group_name -s user/user_name

    Si un utilisateur est déjà connecté, il n'aura pas immédiatement accès au magasin de clés du groupe et il devra recharger son magasin de clés à l'aide de la commande efskeymgr -o ksh ou se reconnecter.

Activation de EFS sur le système de fichiers de base de données

EFS s'exécute uniquement sur les systèmes de fichiers JFS2 et doit être spécifiquement activé.

Si votre base de données réside sur un système de fichiers existant, exécutez la commande % chfs -a efs=yes filesystem pour activer EFS, par exemple:
% chfs -a efs=yes /test01
Si vous créez un système de fichiers, vous pouvez activer EFS à l'aide de l'option -a efs=yes avec la commande smit ou la commande crfs . Exemple :
% crfs -v jfs2 -a efs=yes -m mount_point -d device -A yes

EFS est désormais activé sur le système de fichiers, mais n'est pas activé. Activez EFS uniquement pour les tables de base de données particulières nécessitant des données chiffrées (pour plus d'informations, voir la documentation AIX EFS sur la commande et l'héritage efsmgr ).

Détermination du fichier à chiffrer

Pour déterminer quel fichier contient une table de base de données particulière que vous souhaitez protéger avec le chiffrement EFS , suivez les étapes ci-après qui utilisent la table EMPLOYEE comme exemple.

  1. Utilisez une requête similaire à l'exemple suivant pour rechercher l'ID TBSPACEID de la table:
    SELECT TABNAME, TBSPACEID FROM syscat.tables WHERE tabname='EMPLOYEE'
    Supposons que les résultats de cette requête sont les suivants:
    TABNAME TBSPACEID
    EMPLOYE 2
  2. Recherchez les espaces table de cet ID TBSPACEID à l'aide d'une requête similaire à l'exemple suivant:
    LIST TABLESPACE CONTAINERS FOR 2
    Supposons que les résultats de cette requête sont les suivants:
    ID de conteneur Nom Type
    0 /test01/abst/NODE0000/BAR/T0000002/C0000000.LRG Fichier

    Vous savez maintenant que cet espace table est contenu dans le fichier du système d'exploitation appelé /test01/abst/NODE0000/BAR/T0000002/C0000000.LRG. Il s'agit du fichier que vous devez chiffrer.

Chiffrement du fichier

Tout d'abord, comme vous le feriez avant d'apporter des modifications majeures aux données ou aux bases de données, sauvegardez votre base de données.

Procédez comme suit pour chiffrer le fichier:

  1. Répertoriez le fichier, par exemple:
    # ls -U /test01/abst/NODE0000/BAR/T0000002/C0000000.LRG
    
    -rw-------- 1 abst abstgp 33554432 Jul 30 18:01
    /test01/abst/NODE0000/BAR/T0000002/C0000000.LRG
  2. Chiffrez le fichier à l'aide de la commande efsmgr , par exemple:
    # efsmgr -e /test01/abst/NODE0000/BAR/T0000002/C0000000.LRG
    Si vous répertoriez à nouveau le fichier, vous verrez un e à la fin de la chaîne de droits d'accès qui indique que le fichier est chiffré. Exemple :
    # ls -U /test01/abst/NODE0000/BAR/T0000002/C0000000.LRG
    
    -rw-------e 1 abst abstgp 33554432 Jul 30 18:03
    /test01/abst/NODE0000/BAR/T0000002/C0000000.LRG
  3. Démarrez le gestionnaire de base de données Db2 et utilisez-le normalement. Toutes les données ajoutées à la table EMPLOYEE et à cet espace table chiffré seront chiffrées par EFS dans le système de fichiers sous-jacent. Chaque fois que les données sont extraites, elles sont déchiffrées et présentées normalement via le gestionnaire de base de données Db2 .