Crypter les données dans la base de données source

Le chiffrement transparent des données (TDE) crypte de manière transparente les données au repos dans un Oracle Database. Il arrête les tentatives non autorisées du système d'exploitation d'accéder aux données de base de données stockées dans des fichiers, sans affecter la façon dont les applications accèdent aux données à l'aide de SQL. TDE est entièrement intégré à Oracle Database et peut crypter des sauvegardes de base de données entières (RMAN), des exportations Data Pump, des tablespaces d'applications entiers ou des colonnes sensibles spécifiques. Les données cryptées restent cryptées dans la base de données, qu'il s'agisse de fichiers de stockage de tablespace, de tablespaces temporaires, de tablespaces d'annulation ou d'autres fichiers tels que les fichiers de journalisation.

Déterminer si TDE est activé dans la base de données source

Lorsque le cryptage transparent des données (TDE) n'est pas activé sur votre base de données source, les données ne sont pas cryptées lorsque vous migrez la base de données vers Oracle Cloud Infrastructure (OCI) ou lors de la récupération après sinistre. Vous devrez crypter manuellement les données non chiffrées. Une fois dans OCI, toutes les nouvelles données sont automatiquement cryptées.

  1. Déterminez si le tablespace est crypté.
    SQL> select tablespace_name, encrypted from dba_tablespaces;

    Lorsque le tablespace n'est pas crypté, la sortie ressemble à ce qui suit :

    TABLESPACE_NAME 	       		ENC
    ------------------------------ ---
    SYSTEM                          NO
    SYSAUX                          NO
    UNDOTBS1                        NO
    TEMP                            NO
    USERS			      NO
  2. Recherchez les fichiers de données de base de données associés (. dbf ) sur le système de fichiers.
    SQL> select TABLESPACE_NAME, FILE_NAME from dba_data_files;

    La sortie sera similaire à ce qui suit :

    TABLESPACE_NAME
    ------------------------------
    FILE_NAME
    
    SYSTEM
    /opt/oracle/oradata/ORCLCDB/system01.dbf
    
    SYSAUX
    /opt/oracle/oradata/ORCLCDB/sysaux01.dbf
    
    UNDOTBS1
    /opt/oracle/oradata/ORCLCDB/undotbs01.dbf
    
    USERS
    /opt/oracle/oradata/ORCLCDB/users01.dbf

Activer le chiffrement TDE sur la base de données source

Le cryptage transparent des données (TDE) vous permet de crypter les données sensibles stockées dans les tables et les tablespaces. Les données cryptées sont déchiffrées de manière transparente pour un utilisateur ou une application de base de données qui a accès aux données.

  1. Accédez au répertoire $ORACLE_BASE de la base de données source.
    bash-4.2$ pwd
    /opt/oracle/admin/ORCLCDB
  2. Créez un répertoire nommé wallet.
    $ mkdir wallet
  3. Créez le portefeuille, ainsi qu'un mot de passe sécurisé qui utilise un mélange de caractères alphanumériques.
    Cette étape crée et ouvre le portefeuille. Une fois la base de données ouverte, le portefeuille reste ouvert jusqu'à ce que le portefeuille soit fermé explicitement ou que la base de données soit arrêtée, date à laquelle le portefeuille se ferme automatiquement.
    SQL> alter system set encryption key identified by "wallet_password";
  4. Rouvrir un portefeuille fermé une fois la base de données redémarrée.
    SQL> alter system set wallet open identified by "wallet_password";
  5. Cryptez le tablespace.
    Le code suivant utilise le cryptage AES-128.
    alter tablespace system encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/system01.dbf','/opt/oracle/oradata/ORCLCDB/system01_enc.dbf');
    
    alter tablespace sysaux encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/sysaux01.dbf','/opt/oracle/oradata/ORCLCDB/sysaux01_enc.dbf');
    
    alter tablespace undotbs1 encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/undotbs01.dbf','/opt/oracle/oradata/ORCLCDB/undotbs01_enc.dbf');
    
    alter tablespace users encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/users01.dbf','/opt/oracle/oradata/ORCLCDB/users01_enc.dbf');
    
  6. Vérifiez que le tablespace est crypté.
    SQL> select tablespace_name, encrypted from dba_tablespaces;

    La sortie sera similaire à ce qui suit :

    TABLESPACE_NAME 	       ENC
    ------------------------------ ---
    SYSTEM			    YES
    SYSAUX			    YES
    UNDOTBS1                       YES
    TEMP			      NO
    USERS			     YES
  7. Vérifiez que les fichiers de données de base de données associés (. dbf ) sur le système de fichiers sont cryptés.
    SQL> select TABLESPACE_NAME, FILE_NAME from dba_data_files;

    La sortie sera similaire à ce qui suit :

    TABLESPACE_NAME
    ------------------------------
    FILE_NAME
    
    SYSTEM
    /opt/oracle/oradata/ORCLCDB/system01_enc.dbf
    
    SYSAUX
    /opt/oracle/oradata/ORCLCDB/sysaux01_enc.dbf
    
    UNDOTBS1
    /opt/oracle/oradata/ORCLCDB/undotbs01_enc.dbf
    
    USERS
    /opt/oracle/oradata/ORCLCDB/users01_enc.dbf