Gestion des clés de chiffrement sur les appareils externes

Voyez comment stocker et gérer des clés de chiffrement de base de données.

There are two options to store and manage database encryption keys for your databases on Oracle Exadata Database Service on Dedicated Infrastructure:

  1. Dans un fichier de portefeuille à connexion automatique stocké dans un système Oracle Advanced Cluster File System (Oracle ACFS) accessible par le système d'exploitation de la machine virtuelle du client.
  2. Oracle Key Vault.

Clés gérées par le client dans Oracle Exadata Database Service on Dedicated Infrastructure

Customer-managed keys for Oracle Exadata Database Service on Dedicated Infrastructure is a feature that enables you to migrate the Oracle Database TDE Master Encryption Key for an Oracle Database from the password-protected wallet file stored on the Oracle Exadata Database Service on Dedicated Infrastructure equipment to an OKV server that you control.

Oracle Key Vault (OKV) fournit une gestion des clés et des clés secrètes tolérante aux pannes, hautement disponible et évolutive pour vos bases de données ExaDB-D chiffrées. Utilisez des clés gérées par le client lorsque vous avez besoin d'implémenter une gouvernance de la sécurité, une conformité réglementaire et un chiffrement homogène des données tout en centralisant la gestion et le stockage des clés utilisées pour protéger vos données ainsi que la surveillance de leur cycle de vie.

Vous pouvez :

  • Passer de clés gérées par Oracle à des clés gérées par le client pour les bases de données, qu'elles soient activées ou non avec Data Guard.
  • Effectuer la rotation de vos clés pour assurer la conformité en matière de sécurité.
  • La rotation de la clé de base de données enfichable est également prise en charge. Les opérations de rotation de base de données conteneur et de clé de base de données enfichable ne sont autorisées que si la base de données est gérée par le client.

Conditions

À propos d'Oracle Key Vault

Oracle Key Vault est un boîtier applicatif de pile complète à la sécurité renforcée, conçu pour centraliser la gestion des clés et des objets de sécurité au sein de l'entreprise.

Note

Oracle Key Vault est un système provisionné et géré par le client et ne fait pas partie des services gérés Oracle Cloud Infrastructure.

Aperçu du magasin de clés

Intégrez Oracle Key Vault (OKV) sur place aux services en nuage de base de données gérés par le client pour sécuriser vos données critiques sur ExaDB-D.

L'intégration Oracle Key Vault vous permet de contrôler complètement vos clés de chiffrement et de les stocker en toute sécurité sur un appareil de gestion des clés externe et centralisé.

OKV est optimisé pour les portefeuilles Oracle, les magasins de clés Java et les clés principales TDE. Oracle Key Vault prend en charge la norme OASIS KMIP. Le boîtier applicatif de pile complète à la sécurité renforcée utilise la technologie Oracle Linux et Oracle Database pour la sécurité, la disponibilité et l'évolutivité, et peut être déployé sur votre choix de matériel compatible.

OKV fournit également une interface REST permettant aux clients d'inscrire automatiquement des points d'extrémité et de configurer des portefeuilles et des clés. Oracle Exadata Database Service on Dedicated Infrastructure stocke temporairement le mot de passe de l'administrateur d'utilisateur REST OKV requis pour se connecter au boîtier OKV dans un fichier de portefeuille protégé par mot de passe afin que le logiciel exécuté dans la machine virtuelle du client puisse se connecter au serveur OKV. Après la migration des clés TDE vers OKV, le logiciel d'automatisation du nuage supprimera le mot de passe du fichier de portefeuille. Assurez-vous de créer une clé secrète avec le service de chambre forte d'Oracle, qui stockera le mot de passe requis pour que les bases de données autonomes se connectent à OKV pour la gestion des clés.

Pour plus d'informations, voir Oracle Key Vault.

Politique IAM requise pour gérer OKV sur le service Oracle Exadata Database Service on Dedicated Infrastructure

Consultez la politique de gestion des accès aux identités (IAM) pour gérer OKV sur les systèmes du service Oracle Exadata Database Service on Dedicated Infrastructure.

Une politique est un document IAM qui spécifie qui a le type d'accès à vos ressources. Il est utilisé de différentes façons : pour définir un énoncé individuel écrit dans le langage de la politique, pour définir un ensemble d'énoncés dans un seul document, nommé "politique" (auquel un ID Oracle Cloud (OCID) est affecté) et pour définir le corps global des politiques que votre organisation utilise pour contrôler l'accès aux ressources.

Un compartiment est une collection de ressources connexes accessibles uniquement à certains groupes qui ont reçu une autorisation d'un administrateur de votre organisation.

Pour utiliser Oracle Cloud Infrastructure, le type d'accès requis doit vous être accordé dans une politique écrite par un administrateur, que vous utilisiez la console ou l'API REST avec une trousse SDK, l'interface de ligne de commande ou un autre outil. Si vous tentez d'effectuer une action et que vous voyez s'afficher un message indiquant que vous ne disposez pas de l'autorisation requise, vérifiez auprès de votre administrateur le type d'accès qui vous a été octroyé et le compartiment que vous devez utiliser.

Pour en connaître davantage sur les politiques, voir Démarrage avec les politiques et Politiques communes. Pour plus de détails sur l'écriture de politiques pour les bases de données, voir Informations détaillées sur le service de base de données.

Marquage de ressources

Vous pouvez appliquer des marqueurs à vos ressources afin de les organiser en fonction des besoins de l'entreprise.

Vous pouvez appliquer des marqueurs au moment de la création d'une ressource, ou vous pouvez mettre à jour la ressource plus tard avec les marqueurs voulus. Pour des informations générales sur l'application de marqueurs, voir Marqueurs de ressource.

Déplacement de ressources vers un autre compartiment

Vous pouvez déplacer les ressources de chambre forte OKV, de clé secrète et de magasin de clés d'un compartiment à un autre.

Après le déplacement d'une ressource OCI vers un nouveau compartiment, des politiques inhérentes s'appliquent immédiatement et ont une incidence sur l'accès à la ressource. Le déplacement d'une ressource de chambre forte OKV n'a aucune incidence sur l'accès aux clés de chambre forte OKV ou aux clés secrètes de chambre forte OKV que contient la chambre forte OKV. Vous pouvez déplacer une clé OCI ou une clé secrète OCI d'un compartiment à un autre indépendamment du déplacement de la chambre forte OKV à laquelle elle est associée. Pour plus d'informations, voir Gestion des compartiments.

Setting Up Your Oracle Exadata Database Service on Dedicated Infrastructure to Work With Oracle Key Vault

Review the prerequisites to setup your Oracle Exadata Database Service on Dedicated Infrastructure to work with Oracle Key Vault.

Conditions requises

  1. Assurez-vous qu'OKV est configuré et que le réseau est accessible à partir du réseau client Exadata. Ouvrez les ports 443, 5695 et 5696 pour le trafic sortant sur le réseau client pour le logiciel client OKV et l'instance de base de données Oracle afin d'accéder au serveur OKV.
  2. Assurez-vous que l'interface REST est activée à partir de l'interface utilisateur OKV.
  3. Créez un utilisateur "Administrateur REST OKV".

    Vous pouvez utiliser n'importe quel nom d'utilisateur qualifié de votre choix, par exemple "okv_rest_user". Pour ADB-C@C, ExaDB-C@C et ExaDB-D, utilisez les mêmes utilisateurs REST ou des utilisateurs différents. Ces bases de données peuvent être gérées par clé dans des grappes OKV sur place identiques ou différentes. ExaDB-C@C et ExaDB-D requièrent un utilisateur REST doté du privilège de création de point d'extrémité. ADB-C@C a besoin d'un utilisateur REST doté des privilèges create endpoint et create endpoint group.

  4. Collectez les données d'identification et l'adresse IP de l'administrateur OKV, qui sont nécessaires pour se connecter à OKV.

Pour plus d'informations, voir : "Network Port Requirements", "Managing Oracle Key Vault Users" et "Managing Administrative Roles and User Privileges".

Étape 1 : Créer une chambre forte dans le service de chambre forte OKV et ajouter une clé secrète à la chambre forte pour stocker le mot de passe de l'administrateur REST OKV

Votre infrastructure Exadata Cloud communique avec OKV sur REST chaque fois qu'une base de données Oracle Database est provisionnée pour enregistrer Oracle Database et demander un portefeuille sur OKV. Par conséquent, l'infrastructure Exadata doit accéder aux données d'identification de l'administrateur REST pour s'enregistrer auprès du serveur OKV.

Ces données d'identification sont stockées de manière sécurisée dans le service de chambre forte Oracle dans OCI en tant que clé secrète et accessibles par votre infrastructure Exadata Cloud Infrastructure uniquement en cas de besoin. Si nécessaire, les données d'identification sont stockées dans un fichier de portefeuille protégé par mot de passe.

Pour stocker le mot de passe d'administrateur OKV dans le service de chambre forte OKV, créez une chambre forte en suivant les instructions décrites dans Gestion des chambres fortes et créez une clé secrète dans cette chambre forte en suivant les instructions décrites dans Gestion des clés secrètes.

Étape 2 : Créer un groupe dynamique et un énoncé de politique pour le magasin de clés pour accéder à la clé secrète dans le service de chambre forte OCI

Pour accorder à vos ressources de magasin de clés l'autorisation d'accéder à la clé secrète dans une chambre forte OCI, vous créez un groupe dynamique GIA qui identifie ces ressources, puis vous créez une politique GIA qui permet à ce groupe dynamique d'accéder à la clé secrète que vous avez créée dans les chambres fortes et clés secrètes OCI.

Lors de la définition du groupe dynamique, vous identifiez vos ressources de magasin de clés en spécifiant l'OCID du compartiment contenant votre magasin de clés.

  1. Copiez l'OCID du compartiment contenant votre ressource de magasin de clés.

    Vous pouvez trouver cet OCID dans la page Détails du compartiment.

  2. Créez un groupe dynamique en suivant les instructions dans "Pour créer un groupe dynamique" dans la documentation sur Oracle Cloud Infrastructure. Lorsque vous suivez ces instructions, entrez une règle de correspondance dans ce format :
    ALL {resource.compartment.id ='<compartment-ocid>'}

    <compartment-ocid> est l'OCID du compartiment contenant votre ressource de magasin de clés.

  3. Après avoir créé le groupe dynamique, accédez à (ou créez) une politique GIA dans un compartiment de la hiérarchie de compartiments supérieur à celui qui contient vos chambres fortes et clés secrètes OCI. Puis, ajoutez un énoncé de politique dans le format suivant :
    allow dynamic-group <dynamic-group> to use secret-family in compartment <vaults-and-secrets-compartment>

    <dynamic-group> est le nom du groupe dynamique que vous avez créé et <vaults-and-secrets-compartment> est le nom du compartiment dans lequel vous avez créé vos chambres fortes et clés secrètes.

Étape 3 : Créer un groupe dynamique et un énoncé de politique pour l'infrastructure Exadata pour le magasin de clés

Pour accorder à vos ressources Exadata Cloud Infrastructure l'autorisation d'accéder au magasin de clés, vous créez un groupe dynamique IAM qui identifie ces ressources, puis vous créez une politique IAM qui accorde à ce groupe dynamique l'accès au magasin de clés que vous avez créé.

Lors de la définition du groupe dynamique, vous identifiez vos ressources Exadata Cloud Infrastructure en spécifiant l'OCID du compartiment contenant votre infrastructure Exadata.

  1. Copiez l'OCID du compartiment contenant votre ressource Exadata Cloud Infrastructure.

    Vous pouvez trouver cet OCID dans la page Détails du compartiment.

  2. Créez un groupe dynamique en suivant les instructions dans "Pour créer un groupe dynamique" dans la documentation sur Oracle Cloud Infrastructure. Lorsque vous suivez ces instructions, entrez une règle de correspondance dans ce format :
    ALL {resource.compartment.id ='<compartment-ocid>'}

    <compartment-ocid> est l'OCID du compartiment contenant votre ressource d'infrastructure Exadata.

  3. Après avoir créé le groupe dynamique, accédez à (ou créez) une politique GIA dans un compartiment de la hiérarchie de compartiments supérieur à celui qui contient votre magasin de clés. Puis, ajoutez un énoncé de politique dans le format suivant :
    Allow dynamic-group <dynamic-group> to use keystores in compartment <key-store-compartment>

    <dynamic-group> est le nom du groupe dynamique que vous avez créé et <key-store-compartment> est le nom du compartiment dans lequel vous avez créé votre magasin de clés.

Étape 4 : Créer un énoncé de politique pour que le service de base de données utilise la clé secrète du service de chambre forte OCI

Pour accorder au service de base de données Exadata l'autorisation d'utiliser la clé secrète dans le service de chambre forte OCI pour se connecter à l'interface REST OKV, naviguez jusqu'à (ou créez) une politique IAM dans un compartiment supérieur dans votre hiérarchie de compartiments au compartiment contenant vos chambres fortes et clés secrètes OCI.

Puis, ajoutez un énoncé de politique dans le format suivant :

allow service database to read secret-family in compartment <vaults-and-secrets-compartment>

<vaults-and-secrets-compartment> est le nom du compartiment dans lequel vous avez créé vos chambres fortes et clés secrètes OCI.

Une fois la chambre forte OKV configurée et la configuration IAM en place, vous êtes maintenant prêt à déployer le 'magasin de clés' d'Oracle Key Vault dans OCI et à l'associer à votre grappe de machines virtuelles Exadata.

Étape 5 : Créer un magasin de clés

Suivez ces étapes pour créer un magasin de clés pour vous connecter à un boîtier de clés de chiffrement sur place tel qu'Oracle Key Vault (OKV).

  1. Ouvrez le menu de navigation. Sous Oracle Database, cliquez sur Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Sélectionnez votre compartiment.
  3. Cliquez sur Magasins de clés.

    La page Magasins de clés affiche la liste des noms de magasins de clés, le nombre de bases de données associées à chaque base de données et la date à laquelle chaque magasin de clés a été créé.

  4. Cliquez sur Créer un magasin de clés.
  5. Dans la boîte de dialogue Create Key Store qui s'affiche, entrez les informations générales suivantes :
    • Indiquer un nom pour le magasin de clés : Description conviviale ou autres informations qui vous aident à identifier facilement la ressource Magasin de clés. Évitez d'entrer des informations confidentielles.
    • Paramètres de connexion à Oracle Key Vault
      • Adresses IP de connexion : Entrez au moins une adresse IP de noeud de grappe OKV; plusieurs adresses IP séparées par des virgules (de la même grappe OKV) sont possibles, par exemple 193.10.20.1, 193.10.20.2.
      • Nom d'utilisateur de l'administrateur : Entrez le nom d'utilisateur okv_rest_user.
      • Clé secrète pour le mot de passe de l'administrateur : Le mot de passe de l'administrateur est stocké avec le service de gestion des clés secrètes dans OCI. Sélectionnez la chambre forte OCI de votre location qui contient le mot de passe okv_rest_user stocké en tant que clé secrète OCI.
    • Marqueurs : Vous pouvez appliquer des marqueurs si vous le souhaitez. Si vous êtes autorisé à créer une ressource, vous êtes également autorisé à appliquer des marqueurs à structure libre à cette ressource. Pour appliquer un marqueur défini, vous devez être autorisé à utiliser l'espace de noms de marqueur. Pour plus d'informations sur le marquage, voir Marqueurs de ressource. Si vous ne savez pas si vous devez appliquer des marqueurs, ignorez cette option (vous pourrez appliquer des marqueurs plus tard) ou demandez à l'administrateur. Évitez d'entrer des informations confidentielles.
  6. Cliquez sur Créer un magasin de clés.
  7. Assurez-vous d'utiliser les mêmes données d'identification d'utilisateur okv_rest_user lors du provisionnement de la base de données.

    Pour plus d'informations, voir Gestion des chambres fortes, Gestion des clés et Gestion des clés secrètes.

Gestion du magasin de clés

Voyez comment gérer votre magasin de clés.

Voir les détails du magasin de clés

Suivez ces étapes pour voir les détails du magasin de clés qui comprennent les détails de connexion Oracle Key Vault (OKV) et la liste des bases de données associées.

  1. Ouvrez le menu de navigation. Sous Oracle Database, cliquez sur Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Sélectionnez votre compartiment.
  3. Cliquez sur Magasins de clés.

    La page Magasins de clés affiche la liste des noms de magasins de clés, le nombre de bases de données associées à chaque base de données et la date à laquelle chaque magasin de clés a été créé.

  4. Cliquez sur le nom du magasin de clés ou sur l'icône Actions (trois points), puis cliquez sur Voir les détails.
  5. Cliquez sur le lien dans le champ Clé secrète pour le mot de passe d'administrateur pour voir les détails de la clé secrète.

    La section Bases de données associées affiche la liste des bases de données conteneur associées à ce magasin de clés.

Modifier les détails du magasin de clés

Vous ne pouvez modifier un magasin de clés que s'il n'est associé à aucune base de données conteneur.

  1. Ouvrez le menu de navigation. Sous Oracle Database, cliquez sur Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Sélectionnez votre compartiment.
  3. Cliquez sur Magasins de clés.
  4. Cliquez sur le nom du magasin de clés ou sur l'icône Actions (trois points), puis cliquez sur Voir les détails.
  5. Dans la page Détails du magasin de clés, cliquez sur Modifier.
  6. Dans la page Modifier le magasin de clés, apportez des modifications au besoin, puis cliquez sur enregistrer les modifications.

Déplacer un magasin de clés vers un autre compartiment

Suivez ces étapes pour déplacer un magasin de clés sur un système Oracle Exadata Database Service on Dedicated Infrastructure d'un compartiment à un autre.

  1. Ouvrez le menu de navigation. Sous Oracle Database, cliquez sur Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Sélectionnez votre compartiment.
  3. Cliquez sur Magasins de clés.
  4. Cliquez sur le nom du magasin de clés ou sur l'icône Actions (trois points), puis cliquez sur Voir les détails.
  5. Dans la page Détails du magasin de clés, cliquez sur Déplacer la ressource.
  6. Dans la page Move Resource to a Different Compartment, sélectionnez le nouveau compartiment.
  7. Cliquez sur Déplacer la ressource.

Supprimer le magasin de clés

Vous ne pouvez supprimer un magasin de clés que s'il n'est associé à aucune base de données conteneur.

  1. Ouvrez le menu de navigation. Sous Oracle Database, cliquez sur Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Sélectionnez votre compartiment.
  3. Cliquez sur Magasins de clés.
  4. Cliquez sur le nom du magasin de clés ou sur l'icône Actions (trois points), puis cliquez sur Voir les détails.
  5. Dans la page Détails du magasin de clés, cliquez sur Supprimer.
  6. Dans la boîte de dialogue Supprimer le magasin de clés, cliquez sur Supprimer.

Voir les détails de la base de données conteneur associée au magasin de clés

Suivez ces étapes pour voir les détails de la base de données conteneur associée à un magasin de clés.

  1. Ouvrez le menu de navigation. Sous Oracle Database, cliquez sur Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Sélectionnez votre compartiment.
  3. Cliquez sur Magasins de clés.
  4. Dans la page Magasins de clés obtenue, cliquez sur le nom du magasin de clés ou sur l'icône Actions (trois points), puis cliquez sur Voir les détails.
  5. Cliquez sur le nom de la base de données associée ou sur l'icône Actions (trois points), puis cliquez sur Voir les détails.

Utilisation de l'API pour gérer le magasin de clés

Voyez comment utiliser l'API pour gérer le magasin de clés.

Pour plus d'informations sur l'utilisation de l'API et sur les demandes de signature, voir API REST et Données d'identification de sécurité. Pour plus d'informations sur les trousses SDK, voir Trousses SDK et interface de ligne de commande.

Opération Point d'extrémité d'API
Créer un magasin de clés OKV CreateKeyStore
Voir le magasin de clés OKV GetKeyStore
Mettre à jour le magasin de clés OKV UpdateKeyStore
Supprimer le magasin de clés OKV DeleteKeyStore
Changer de compartiment de magasin de clés ChangeKeyStoreCompartment
Choisir entre le chiffrement géré par le client et le chiffrement géré par Oracle CreateDatabase
Obtenir le nom du magasin de clés (géré par OKV ou Oracle) et du portefeuille OKV GetDatabase
Modifier le type de magasin de clés changeKeyStoreType
Effectuer une rotation de la clé gérée par OKV et Oracle RotateVaultKey

Administrer les clés TDE (Transparent Data Encryption)

Utilisez cette procédure pour modifier la configuration de la gestion des clés.

Après avoir provisionné une base de données sur un système ExaDB-D, vous pouvez modifier la gestion des clés et effectuer des opérations telles que la rotation des clés TDE.

Note

  • Vous pouvez remplacer la gestion des clés d'Oracle Wallet par d'autres options disponibles.
  • Lorsque vous remplacez la gestion des clés par OKV, la base de données subit une opération d'abandon d'arrêt suivie d'un redémarrage. Planifiez d'effectuer la migration dans une fenêtre de maintenance planifiée.
  • Vous ne devez effectuer la rotation des clés TDE qu'au moyen des interfaces OCI (console, API).
  • Vous ne pouvez pas effectuer la rotation d'une clé de chiffrement :
    • lorsqu'une restauration de base de données est en cours dans un répertoire de base Oracle donné.
    • lorsqu'une application de correctifs à une base de données ou à un répertoire de base de données est en cours.
  1. Ouvrez le menu de navigation. Sous Oracle Database, cliquez sur Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Sélectionnez votre compartiment.
  3. Accédez à la grappe de machines virtuelles qui contient la base de données pour laquelle vous souhaitez modifier la gestion du chiffrement ou faire pivoter une clé.
    1. Service Exadata Database sur une infrastructure dédiée, cliquez sur Grappes de machines virtuelles Exadata.
    2. Dans la liste des grappes de machines virtuelles, recherchez celle qui vous intéresse et cliquez sur son nom en surbrillance pour afficher sa page de détails.
  4. Dans la section Bases de données, cliquez sur le nom de celle pour laquelle vous souhaitez modifier la gestion du chiffrement ou effectuez une rotation de clé pour afficher sa page de détails.
  5. Allez à la section Chiffrement de la page des détails de la base de données.
    • Pour modifier la gestion des clés :

      Si vous avez configuré Oracle Wallet comme gestion des clés, le système affiche l'option Modifier pour remplacer la gestion des clés par Chambre forte OCI et Oracle Key Vault,

      1. Cliquez sur Modifier.
      2. Dans la page de gestion des clés de modification résultante, sélectionnez la gestion des clés.
        • Chambre forte OCI :
          1. Sélectionnez le compartiment de chambre forte que vous utilisez, puis sélectionnez votre chambre forte disponible dans le compartiment.
          2. Sélectionnez le compartiment de clés que vous utilisez, puis sélectionnez votre clé dans la liste déroulante.
          3. Facultativement, sélectionnez la version de la clé et entrez son OCID.

            Par défaut, la dernière version de clé est utilisée.

          4. Cliquez sur Enregistrer les modifications.
        • Oracle Key Vault :

          Vous devez disposer d'une clé de chiffrement valide dans le service Oracle Key Vault et fournir les informations requises au cours des étapes suivantes. Pour plus d'informations, voir Concepts relatifs à la gestion des clés et des clés secrètes.

          1. Sélectionnez une région.
          2. Sélectionner un compartiment.

            Vous pouvez modifier le compartiment en cliquant sur le lien Changer de compartiment.

          3. Cliquez sur Enregistrer les modifications.
    • Pour effectuer la rotation d'une clé de chiffrement :

      Si vous avez configuré Chambre forte OCI ou Oracle Key Vault comme gestion des clés, le système affiche l'option Effectuer une rotation pour effectuer la rotation de la clé de chiffrement.

      1. Cliquez sur Terminer pour afficher une boîte de dialogue de confirmation.
      2. Cliquez sur Effectuer la rotation.
Note

  • La migration des clés TDE vers Oracle Key Vault (OKV) nécessite 10 minutes d'arrêt. Pendant la migration, l'état de la base de données est UPDATING et les connexions peuvent échouer en raison de plusieurs redémarrages de la base de données pour activer OKV. Les applications peuvent reprendre l'opération une fois la migration terminée et lorsque la base de données reprend son état d'origine ACTIVE.
  • Le mot de passe du magasin de clés OKV sera celui du portefeuille TDE.

Attention :

Une fois la gestion des clés modifiée, la suppression de la clé dans OKV entraînera l'indisponibilité de la base de données.

Dans la page de détails de cette base de données, la section chiffrement affiche le nom et l'OCID de la clé de chiffrement.

Comment cloner manuellement une base de données enfichable à partir d'une base de données conteneur distante lorsque les données sont chiffrées avec la clé de chiffrement principale dans Oracle Key Vault (OKV)

L'outil dbaascli vous permet de cloner des bases de données enfichables lorsque la base de données conteneur source et la base de données conteneur cible sont identiques (clone local) ou différentes (clone distant). Toutefois, vous ne pouvez pas cloner une base de données enfichable distante si les données sont chiffrées à l'aide d'un MEK dans OKV.

Note

Pour déchiffrer/chiffrer les données lors d'un clone distant, la base de données conteneur doit avoir accès à MEK. Le MEK doit être mis à la disposition de la base de données conteneur cible lorsqu'il est stocké sur le serveur OKV.

La base de données conteneur source et la base de données conteneur cible sont chiffrées avec MEK dans le même serveur OKV

  1. Obtenez l'ID objet OKV de la base de données enfichable source.
    1. Obtenez la dernière clé de chiffrement de la base de données enfichable source à l'aide de SQL*Plus.
      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env    
      [oracle@testserver oracle]$ sqlplus / as sysdba
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jun 12 23:13:12 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> set heading off;
      SQL> alter session set container=<SOURCE_PDB>;
       
      Session altered.
       
      SQL> select key_id,keystore_type,activation_time from v$encryption_keys order by activation_time;
       
      0648E5D8D5559B4F0EBFB8AA5EE730401A
      SOFTWARE KEYSTORE
      25-MAR-23 12.01.41.075932 AM +00:00
       
      06AFF5B6E27A954F6EBFFC77296B27C9EC
      SOFTWARE KEYSTORE
      25-MAR-23 11.42.51.336955 AM +00:00
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver oracle]$
    2. Obtenez l'ID objet OKV (uuid) du MEK le plus récent obtenu à l'étape ci-dessus.

      Entrez le mot de passe du point d'extrémité OKV à l'invite et appuyez sur la touche Entrée de votre clavier.

      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env 
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil list | grep 06AFF5B6E27A954F6EBFFC77296B27C9EC
      E5344379-8B16-4FE9-BF35-F8ECB057571A    Symmetric Key    TDE Master Encryption Key: MKID 06AFF5B6E27A954F6EBFFC77296B27C9EC
      [oracle@testserver oracle]$
  2. Installez le portefeuille REST OKV dans la base de données source.
    1. Créez le répertoire okv_rest_cli s'il n'existe pas.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. Téléchargez et extrayez okvrestclipackage.zip.

      Sélectionnez ALL si vous êtes invité à effectuer un remplacement.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
      [oracle@scaqar06dv0101 okv_rest_cli]$ curl -O -k https://<source_okv_server_ip1>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. Modifiez les fichiers okvrestcli.ini et okvrestcli_logging.properties comme suit.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<source_okv_server_ip1>
      user=<source_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<source_db_name>/okv_home/conf/okvclient.ora
       
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties  
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. Créez le répertoire client_wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. Créez un portefeuille REST OKV à l'aide de l'interface de ligne de commande REST OKV.

      Entrez le mot de passe REST OKV source à l'invite.

      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet --wallet-user <source_okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  3. Créez un nouveau portefeuille OKV pour stocker uniquement la clé MEK de la base de données enfichable obtenue à l'étape #1.
    1. Obtenez le nom du portefeuille OKV à partir de la base de données enfichable source dans le format EXA_DB_NAME_DBID_PDB_NAME_WL.

      Par exemple, le nom du portefeuille serait EXA_NEWDB1_37508325141_PDB_NAME_WL.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<source_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. Créez un nouveau portefeuille à l'aide de l'interface de ligne de commande REST OKV.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet create --wallet <SOURCE_PDB_OKV_WALLET> --description "Wallet to clone <source_pdb_name> pdb from <source_db_name>" --unique FALSE
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING",
          "locatorID" : "BA5FBFE1-DB41-4425-8EE4-D58541A1E41A"
        }
      }
      [root@testserver oracle]#
    3. Vérifiez le statut jusqu'à ce qu'il soit ACTIF.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING"
        }
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "ACTIVE",
          "wallet" : "<SOURCE_PDB_OKV_WALLET>"
        }
      }
      [root@testserver oracle]#
  4. Ajoutez les autorisations Lire et modifier et Gérer le portefeuille des points d'extrémité OKV de la base de données source au portefeuille OKV créé à l'étape 3.
    1. Obtenez les noms de point d'extrémité à partir de la base de données source. Une par machine virtuelle.

      Habituellement, la structure est au format EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Par exemple, le nom du point d'extrémité du noeud 1 serait EXA_NEWDB1_UNIQ_3750832514_NEWDB11_EP.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<source_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. Ajoutez des autorisations Lire et modifier et Gérer le portefeuille à l'aide de l'interface de ligne de commande REST OKV.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP1> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP2> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  5. Stockez MEK à partir de la base de données enfichable source obtenue à l'étape #1 dans le portefeuille OKV créé à l'étape #3.
    1. Ajoutez MEK (uuid obtenu à l'étape #1.b) à l'aide de l'interface de ligne de commande REST OKV.

      Entrez le mot de passe du point d'extrémité OKV source à l'invite.

      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv managed-object wallet add-member --uuid E5344379-8B16-4FE9-BF35-F8ECB057571A --wallet <SOURCE_PDB_OKV_WALLET>
      Password: 
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  6. Installez le portefeuille REST OKV dans la base de données cible.
    1. Créez le répertoire okv_rest_cli s'il n'existe pas.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. Téléchargez et extrayez okvrestclipackage.zip.

      Sélectionnez ALL lorsque vous êtes invité à effectuer un remplacement.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
      [oracle@scaqar06dv0101 okv_rest_cli]$ curl -O -k https://<target_okv_server_ip1>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. Modifiez les fichiers okvrestcli.ini et okvrestcli_logging.properties comme suit.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<target_okv_server_ip1>
      user=<target_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<target_db_name>/okv_home/conf/okvclient.ora
       
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. Créez le répertoire client_wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. Créez un portefeuille REST OKV à l'aide de l'interface de ligne de commande REST OKV.

      Entrez le mot de passe REST OKV cible à l'invite.

      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet --wallet-user <target_okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  7. Ajoutez des autorisations Lecture seule et Gérer le portefeuille des points d'extrémité OKV de la base de données cible au portefeuille OKV de la base de données enfichable source créé à l'étape n° 3.
    1. Obtenez les noms de point d'extrémité à partir de la base de données cible. Une par machine virtuelle.

      Habituellement, la structure est au format EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Par exemple, le nom du point d'extrémité du noeud 1 serait EXA_NEWDB1_UNIQ_3750832514_NEWDB11_EP.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<target_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. Ajoutez des autorisations Lecture seule et Gérer le portefeuille à l'aide de l'interface de ligne de commande REST OKV.
      [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <TARGET_OKV_EP1> --access RO_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <TARGET_OKV_EP2> --access RO_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  8. Cloner la base de données enfichable.
    1. Exécutez dbaascli pour cloner la base de données enfichable.

      Entrez le mot de passe de l'utilisateur SYS de la base de données source à l'invite.

      [root@testserver oracle]# dbaascli pdb remoteClone --pdbName <source_pdb_name> --dbName <target_db_name> --sourceDBConnectionString <source_db_connection_string> --targetPDBName <target_pdb_name>
      DBAAS CLI version 23.2.1.0.0
      Executing command pdb remoteClone --pdbName <source_pdb_name> --dbName <target_pdb_name> --sourceDBConnectionString scaqar06dvclu01-scan1.us.oracle.com:1521/<source_db_unique_name>.us.oracle.com --targetPDBName <target_pdb_name>
      Job id: 197f30e9-209e-4ec5-9700-a13f7915f8b9
      Session log: /var/opt/oracle/log/alyokv1/pdb/remoteClone/dbaastools_2023-06-12_10-32-17-PM_188384.log
      Enter REMOTE_DB_SYS_PASSWORD:
       
      Enter REMOTE_DB_SYS_PASSWORD (reconfirmation):
       
      Loading PILOT...
      Session ID of the current execution is: 6848
      Log file location: /var/opt/oracle/log/alyokv1/pdb/remoteClone/pilot_2023-06-12_10-32-35-PM_204184
      -----------------
      Running Plugin_initialization job
      Enter REMOTE_DB_SYS_PASSWORD
      ***************
      Completed Plugin_initialization job
      -----------------
      Running Validate_input_params job
      Completed Validate_input_params job
      -----------------
      Running Perform_dbca_prechecks job
      Completed Perform_dbca_prechecks job
      -----------------
      Running PDB_creation job
      Completed PDB_creation job
      -----------------
      Running Load_pdb_details job
      Completed Load_pdb_details job
      -----------------
      Running Configure_pdb_service job
      Completed Configure_pdb_service job
      -----------------
      Running Configure_tnsnames_ora job
      Completed Configure_tnsnames_ora job
      -----------------
      Running Set_pdb_admin_user_profile job
      Completed Set_pdb_admin_user_profile job
      -----------------
      Running Lock_pdb_admin_user job
      Completed Lock_pdb_admin_user job
      -----------------
      Running Register_ocids job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Prepare_blob_for_standby_in_primary job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Generate_dbsystem_details job
      Completed Generate_dbsystem_details job
      dbaascli execution completed
      [root@testserver oracle]#
  9. Supprimez le portefeuille OKV de la base de données enfichable source créé à l'étape 3 à l'aide de l'interface de ligne de commande REST OKV.
    [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet delete --wallet  <SOURCE_PDB_OKV_WALLET>
    {
      "result" : "Success"
    }
    [root@testserver oracle]#
  10. Supprimez le portefeuille REST OKV créé à l'étape 2.
    1. Supprimez les fichiers de portefeuille dans le répertoire dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#
  11. Supprimer le portefeuille REST OKV créé à l'étape 6.
    1. Supprimez les fichiers de portefeuille dans le répertoire dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

La base de données conteneur source et la base de données conteneur cible sont chiffrées avec MEK sur un autre serveur OKV

  1. Obtenez l'ID objet OKV de la base de données enfichable source.
    1. Obtenez la dernière clé de chiffrement de la base de données enfichable source à l'aide de SQL*Plus.
      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env    
      [oracle@testserver oracle]$ sqlplus / as sysdba
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jun 12 23:13:12 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> set heading off;
      SQL> alter session set container=<SOURCE_PDB>;
       
      Session altered.
       
      SQL> select key_id,keystore_type,activation_time from v$encryption_keys order by activation_time;
       
      0648E5D8D5559B4F0EBFB8AA5EE730401A
      SOFTWARE KEYSTORE
      25-MAR-23 12.01.41.075932 AM +00:00
       
      06AFF5B6E27A954F6EBFFC77296B27C9EC
      SOFTWARE KEYSTORE
      25-MAR-23 11.42.51.336955 AM +00:00
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver oracle]$
    2. Obtenez l'ID objet OKV (uuid) du MEK le plus récent obtenu à l'étape ci-dessus.

      Entrez le mot de passe du point d'extrémité OKV à l'invite et appuyez sur la touche Entrée de votre clavier.

      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env 
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil list | grep 06AFF5B6E27A954F6EBFFC77296B27C9EC
      E5344379-8B16-4FE9-BF35-F8ECB057571A    Symmetric Key    TDE Master Encryption Key: MKID 06AFF5B6E27A954F6EBFFC77296B27C9EC
      [oracle@testserver oracle]$
  2. Installez le portefeuille REST OKV dans la base de données source.
    1. Créez le répertoire okv_rest_cli s'il n'existe pas.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. Téléchargez et extrayez okvrestclipackage.zip.

      Sélectionnez ALL si vous êtes invité à effectuer un remplacement.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
      [oracle@scaqar06dv0101 okv_rest_cli]$ curl -O -k https://<source_okv_server_ip1>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. Modifiez les fichiers okvrestcli.ini et okvrestcli_logging.properties comme suit.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<source_okv_server_ip1>
      user=<source_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<source_db_name>/okv_home/conf/okvclient.ora
       
      
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties  
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. Créez le répertoire client_wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. Créez un portefeuille REST OKV à l'aide de l'interface de ligne de commande REST OKV.

      Entrez le mot de passe REST OKV source à l'invite.

      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet --wallet-user <source_okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  3. Créez un nouveau portefeuille OKV pour stocker uniquement la clé MEK de la base de données enfichable obtenue à l'étape #1.
    1. Obtenez le nom du portefeuille OKV à partir de la base de données enfichable source dans le format EXA_DB_NAME_DBID_PDB_NAME_WL.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet create --wallet <SOURCE_PDB_OKV_WALLET> --description "Wallet to clone <source_pdb_name> pdb from <source_db_name>" --unique FALSE
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING",
          "locatorID" : "BA5FBFE1-DB41-4425-8EE4-D58541A1E41A"
        }
      }
      [root@testserver oracle]#
    2. Vérifiez le statut jusqu'à ce qu'il soit ACTIF.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING"
        }
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "ACTIVE",
          "wallet" : "<SOURCE_PDB_OKV_WALLET>"
        }
      }
      [root@testserver oracle]#
  4. Ajoutez les autorisations Lire et modifier et Gérer le portefeuille des points d'extrémité OKV de la base de données source au portefeuille OKV créé à l'étape 3.
    1. Obtenez les noms de point d'extrémité à partir de la base de données source. Une par machine virtuelle.

      Habituellement, la structure est au format EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Par exemple, le nom du point d'extrémité du noeud 1 serait EXA_NEWDB1_UNIQ_3750832514_NEWDB11_EP.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<source_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. Ajoutez des autorisations Lire et modifier et Gérer le portefeuille à l'aide de l'interface de ligne de commande REST OKV.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP1> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP2> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  5. Stockez MEK à partir de la base de données enfichable source obtenue à l'étape #1 dans le portefeuille OKV créé à l'étape #3.
    1. Ajoutez MEK (uuid obtenu à l'étape #1.b) à l'aide de l'interface de ligne de commande REST OKV.

      Entrez le mot de passe du point d'extrémité OKV source à l'invite.

      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv managed-object wallet add-member --uuid E5344379-8B16-4FE9-BF35-F8ECB057571A --wallet <SOURCE_PDB_OKV_WALLET>
      Password: 
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  6. Téléchargez le portefeuille OKV créé à l'étape 3 à partir du serveur OKV vers le système de fichiers local.
    1. Créez un nouveau répertoire avec les autorisations pour l'utilisateur oracle.

      Ce répertoire stockera le portefeuille qui ne contiendra que le MEK de la base de données enfichable source.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ mkdir /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. Téléchargez le portefeuille OKV créé à l'étape 3 dans le répertoire créé à l'étape 6.a à l'aide de okvutil.

      Il demandera deux fois un mot de passe pour chiffrer le portefeuille local. Utilisez le même mot de passe que le mot de passe du point d'extrémité source. Entrez également le mot de passe du point d'extrémité source à l'invite.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ source ~/nfsa.env
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil download -l /home/oracle/<source_pdb_wallet_dir> -t wallet -g <SOURCE_PDB_OKV_WALLET>
      Enter new wallet password (<enter> for auto-login): 
      Confirm new wallet password: 
      Enter Oracle Key Vault endpoint password: 
      Download succeeded
      [oracle@testserver oracle]$
    3. Compressez le répertoire du portefeuille.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /home/oracle
      [oracle@testserver oracle]$ zip -r <source_pdb_wallet_dir>.zip <source_pdb_wallet_dir>  
        adding: <source_pdb_wallet_dir>/ (stored 0%)
        adding: <source_pdb_wallet_dir>/ewallet.p12 (stored 0%)
      [oracle@testserver oracle]$
  7. Supprimez le portefeuille OKV de la base de données enfichable source créé à l'étape 3.
    [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet delete --wallet  <SOURCE_PDB_OKV_WALLET>
    {
      "result" : "Success"
    }
    [root@testserver oracle]#
  8. Supprimez le portefeuille REST OKV créé à l'étape 1.
    1. Supprimez les fichiers de portefeuille dans le répertoire dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#
  9. Copiez le portefeuille de la base de données enfichable source téléchargé dans le système de fichiers cible à l'étape 6 vers la machine virtuelle de grappe cible.
  10. Supprimez le portefeuille de la base de données enfichable source du système de fichiers local source créé à l'étape 6.
    1. Supprimez le répertoire du portefeuille.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -rf /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. Supprimez le fichier zip du portefeuille.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -f /home/oracle/<source_pdb_wallet_dir>.zip
      [oracle@testserver oracle]$
  11. Installez le portefeuille REST OKV dans la base de données cible.
    1. Créez le répertoire okv_rest_cli s'il n'existe pas.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. Téléchargez et extrayez okvrestclipackage.zip.

      Sélectionnez ALL lorsque vous êtes invité à effectuer un remplacement.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
      [oracle@testserver okv_rest_cli]$ curl -O -k https://<target_okv_server_ip>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. Modifiez les fichiers okvrestcli.ini et okvrestcli_logging.properties comme suit.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<target_okv_server_ip1>
      user=<target_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<target_db_name>/okv_home/conf/okvclient.ora
       
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties  
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. Créez le répertoire client_wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. Créez un portefeuille REST OKV à l'aide de l'interface de ligne de commande REST OKV.

      Entrez le mot de passe REST OKV cible à l'invite.

      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet --wallet-user <target_okv_rest_user>
      /var/opt/oracle/dbaas_acfs/newdb1/okv_rest_cli/logs/okvrest.log.lck
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/newdb1/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  12. Chargez le portefeuille de la base de données enfichable source créé à l'étape 6 et copié vers la machine virtuelle de grappe cible à l'étape 9.
    1. Décompressez le portefeuille de la base de données enfichable source.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /home/oracle/
      [oracle@testserver ~]$ unzip <source_pdb_wallet_dir>.zip 
      Archive:  nfsa_1672104454_NFSPDB_wallet.zip
         creating: <source_pdb_wallet_dir>/
       extracting: <source_pdb_wallet_dir>/ewallet.p12  
      [oracle@testserver ~]$
    2. Obtenez le nom du portefeuille OKV à partir de la base de données cible dans le format EXA_DB_NAME_DBID_WL.

      Par exemple, le nom du portefeuille serait EXA_NEWDB1_37508325141_WL.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<target_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    3. Chargez le portefeuille de la base de données enfichable source dans le portefeuille OKV cible à l'aide de okvutil.

      Entrez le mot de passe du portefeuille de la base de données enfichable source à l'invite. Utilisez le même mot de passe que le mot de passe du point d'extrémité source.

      Entrez également le mot de passe du point d'extrémité cible à l'invite.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ source ~/<target_db_name>.env
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil upload -t WALLET -l /home/oracle/<source_pdb_wallet_dir> -g <TARGET_OKV_WALLET>
      Enter source wallet password: 
      Enter Oracle Key Vault endpoint password: 
      WARNING: Object ORACLE.SECURITY.ID.ENCRYPTION. already exists; use -o to overwrite
      Upload succeeded
      [oracle@testserver oracle]$
  13. Cloner la base de données enfichable.
    1. Exécutez dbaascli pour cloner la base de données enfichable.
      [root@testserver oracle]# dbaascli pdb remoteClone --pdbName <source_pdb_name> --dbName <target_db_name> --sourceDBConnectionString <source_db_connection_string> --targetPDBName <target_pdb_name> 
      DBAAS CLI version 23.2.1.0.0
      Executing command pdb remoteClone --pdbName <source_pdb_name> --dbName <target_db_name> --sourceDBConnectionString scaqar06dvclu01-scan1.us.oracle.com:1521/<source_db_unique_name>.us.oracle.com --targetPDBName <target_pdb_name>
      Job id: 7d4f638a-1f3a-4219-a05a-0215588dcae8
      Session log: /var/opt/oracle/log/alyokv1/pdb/remoteClone/dbaastools_2023-06-13_01-29-09-AM_179996.log
      Enter REMOTE_DB_SYS_PASSWORD:
       
      Enter REMOTE_DB_SYS_PASSWORD (reconfirmation):
       
      Loading PILOT...
      Session ID of the current execution is: 6857
      Log file location: /var/opt/oracle/log/alyokv1/pdb/remoteClone/pilot_2023-06-13_01-29-21-AM_196991
      -----------------
      Running Plugin_initialization job
      Enter REMOTE_DB_SYS_PASSWORD
      *************
      Completed Plugin_initialization job
      -----------------
      Running Validate_input_params job
      Completed Validate_input_params job
      -----------------
      Running Perform_dbca_prechecks job
      Completed Perform_dbca_prechecks job
      -----------------
      Running PDB_creation job
      Completed PDB_creation job
      -----------------
      Running Load_pdb_details job
      Completed Load_pdb_details job
      -----------------
      Running Configure_pdb_service job
      Completed Configure_pdb_service job
      -----------------
      Running Configure_tnsnames_ora job
      Completed Configure_tnsnames_ora job
      -----------------
      Running Set_pdb_admin_user_profile job
      Completed Set_pdb_admin_user_profile job
      -----------------
      Running Lock_pdb_admin_user job
      Completed Lock_pdb_admin_user job
      -----------------
      Running Register_ocids job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Prepare_blob_for_standby_in_primary job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Generate_dbsystem_details job
      Completed Generate_dbsystem_details job
      dbaascli execution completed
      [root@testserver oracle]#
  14. Supprimez le portefeuille REST OKV créé à l'étape 1.
    1. Supprimez les fichiers de portefeuille dans le répertoire dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

How to Upgrade Oracle Key Vault (OKV) Home in Oracle Exadata Database Service on Dedicated Infrastructure

Une fois le type de chiffrement migré des clés gérées par Oracle vers les clés gérées par le client (Oracle Key Vault), le répertoire de base OKV dans DomUs reste avec la même version utilisée pour la migration.

Si le serveur OKV est mis à niveau, la fonctionnalité continuera de fonctionner en raison de la compatibilité descendante. Toutefois, le client peut souhaiter obtenir les nouvelles fonctionnalités des outils client. Dans ce cas, mettez à niveau le répertoire de base OKV et la bibliothèque PKCS#11.

  1. La version courante du répertoire de base OKV est mineure à la version du serveur OKV.
    1. Obtenez la version du répertoire de base OKV en exécutant okvutil. Dans ce cas, la valeur est 21.6.0.0.0.
      # su oracle
      $ /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/okvutil
      okvutil version 21.6.0.0.0
      Usage: okvutil <command> [-v <verbosity>] [<command args>]
        <command> := list | upload | download | sign | sign-verify | changepwd | diagnostics
      Options:
        -v, --verbose <verbosity>
          Print extra information to standard out.
          Possible verbosity values are 0, 1 and 2 (more detailed information with higher verbosity level).
      For help on a particular command, use [okvutil <command> -h].
      You have new mail in /var/spool/mail/root
    2. Obtenez la version du serveur OKV en vous connectant à la console du serveur OKV au moyen du navigateur. Dans ce cas, la version est 21.7.0.0.0.
  2. Installez le portefeuille REST OKV dans la base de données source. Cette étape doit être effectuée dans un seul noeud.
    1. S'il n'existe pas, créez le répertoire okv_rest_cli.
      # su oracle
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli
    2. Téléchargez et extrayez okvrestclipackage.zip. Si vous êtes invité à remplacer, sélectionnez ALL.
      $ cd /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli
      $ curl -O -k https://100.75.59.249:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3865k  100 3865k    0     0  5102k      0 --:--:-- --:--:-- --:--:-- 5106k
      $ unzip -q okvrestclipackage.zip
    3. Modifiez okvrestcli.ini avec les informations suivantes.
      $ vi /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini
       
      $ cat !$
      cat /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini
      #Provide absolute path for log_property, okv_client_config properties
      [Default]
      #log_property=./conf/okvrestcli_logging.properties
      #server=[OKV IP Address]
      #okv_client_config=./conf/okvclient.ora
      #user=[OKV username]
      #password=[user password]
        
      #[Profile1]
      #server=
      #okv_client_config=
      #user=
        
      #[Profile2]
      #server=
      #okv_client_config=
      #user=
        
      server=<okv_server_ip>
      user=<okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet
    4. Créez le répertoire client_wallet.
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet
    5. Créer un portefeuille REST OKV à l'aide de l'interface de ligne de commande REST OKV. Le mot de passe REST OKV source vous sera demandé.
      $ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet --wallet-user <okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
  3. Préparez les répertoires d'origine OKV dans DomU 1.
    1. Renommez le répertoire de base OKV en tant que version courante du répertoire de base OKV.
      $ mv /u02/app/oracle/admin/<dbname>/okv_home/okv /u02/app/oracle/admin/<dbname>/okv_home/okv<current_okv_home_version>
    2. Créez un répertoire de base OKV en tant que version du serveur OKV.
      $ mkdir /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version>
    3. Créez un lien symbolique du nom normal du répertoire d'origine OKV dans le répertoire créé à l'étape 3.b.
      $ ln -s /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version> /u02/app/oracle/admin/<dbname>/okv_home/okv
  4. Mettre à niveau le répertoire de base OKV dans DomU 1.
    1. Obtenez le nom du point d'extrémité OKV au moyen de okvutil. Il vous invite à entrer le mot de passe du point d'extrémité OKV (mot de passe TDE). L'entrée est celle appelée "Modèle".

      Notez que le nom d'hôte doit être identique au nom d'hôte DomU courant. (Habituellement, ce nom est EXA_<DBNAME>_<resourceID>_<CURRENT_DOMU_HOST_NAME>_EP. <resourceID> peut être obtenu en listant la base de données via le système dbaascli getDatabases).

      $ /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/okvutil list
      Enter Oracle Key Vault endpoint password:
      Unique ID                               Type            Identifier
      DC690343-5694-4FC8-BFE4-6C7F1A550F67    Opaque Object   TDE Wallet Metadata
      9E317DDB-0542-553B-A47D-FCC31AB6DD7C    Symmetric Key   TDE Master Encryption Key: MKID AaTAGyAWyk/fv7pnl8qx4s0AAAAAAAAAAA
      D9D840AF-A60E-5850-AA86-8C9F216F5501    Symmetric Key   TDE Master Encryption Key: MKID AUP0Tq+un08Mv1+onNhT4RUAAAAAAAAAAA
      364EFC2F-1909-4F34-BF1B-90D3D03DA7EB    Private Key Private Key
      A9D0134F-C895-4F33-BF85-351B754E9FF9    Opaque Object   TDE Wallet Metadata
      E1AC8D2F-90E9-4F88-BFEE-2883FCBB7271    Opaque Object   TDE Wallet Metadata
      25B7DE14-3849-4F67-BFBE-1934BFE3559B    Opaque Object   TDE Wallet Metadata
      4ED713ED-FE2B-4F35-BF7D-BCBEA8327A0B    Symmetric Key   TDE Master Encryption Key: MKID 06EA813441C26B4F53BFD58E55C4BE90F4
      6162E200-EF0A-4F89-BF25-A8596B3AD7B0    Opaque Object   Certificate Request
      85A55486-28E5-4FFB-BF1C-B93C4C0BAD74    Secret Data Oracle Secret Data: ID HSM_PASSWORD
      67E74D97-56F6-407A-A035-009D953F907A    Template    Default template for EXA_DB1902_7274B2A2-6F71-4516-B2BB-6D67CC3824FC_SCAQAE08DV0308_EP
      E621EA72-5DD1-4F4F-BFD4-451E5B7DB8A9    Symmetric Key   TDE Master Encryption Key: MKID 0625BA455B03CD4F57BFA5D2290FD379A1
    2. Inscrire de nouveau le point d'extrémité dans DomU 1.
      $ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/bin/okv admin endpoint re-enroll --endpoint <endpoint_name>
      {
        "result" : "Success"
      }
    3. Provisionner un point d'extrémité dans DomU 1. Le mot de passe du point d'extrémité OKV (mot de passe TDE) sera demandé.
      $ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/bin/okv admin endpoint provision --endpoint <endpoint_name> --location /u02/app/oracle/admin/<dbname>/okv_home/okv --auto-login FALSE
      Enter Oracle Key Vault endpoint password:
      {
        "result" : "Success"
      }
  5. La validation de la mise à niveau du répertoire de base OKV a réussi.
    1. Validez que le point d'extrémité OKV répertorie les entrées du portefeuille OKV. Le mot de passe du point d'extrémité OKV (mot de passe TDE) sera demandé.
      $ /u02/app/oracle/admin/db1902/okv_home/okv/bin/okvutil list
      Enter Oracle Key Vault endpoint password:
      Unique ID                               Type            Identifier
      DC690343-5694-4FC8-BFE4-6C7F1A550F67    Opaque Object   TDE Wallet Metadata
      9E317DDB-0542-553B-A47D-FCC31AB6DD7C    Symmetric Key   TDE Master Encryption Key: MKID AaTAGyAWyk/fv7pnl8qx4s0AAAAAAAAAAA
      D9D840AF-A60E-5850-AA86-8C9F216F5501    Symmetric Key   TDE Master Encryption Key: MKID AUP0Tq+un08Mv1+onNhT4RUAAAAAAAAAAA
      364EFC2F-1909-4F34-BF1B-90D3D03DA7EB    Private Key Private Key
      A9D0134F-C895-4F33-BF85-351B754E9FF9    Opaque Object   TDE Wallet Metadata
      E1AC8D2F-90E9-4F88-BFEE-2883FCBB7271    Opaque Object   TDE Wallet Metadata
      25B7DE14-3849-4F67-BFBE-1934BFE3559B    Opaque Object   TDE Wallet Metadata
      4ED713ED-FE2B-4F35-BF7D-BCBEA8327A0B    Symmetric Key   TDE Master Encryption Key: MKID 06EA813441C26B4F53BFD58E55C4BE90F4
      6162E200-EF0A-4F89-BF25-A8596B3AD7B0    Opaque Object   Certificate Request
      85A55486-28E5-4FFB-BF1C-B93C4C0BAD74    Secret Data Oracle Secret Data: ID HSM_PASSWORD
      67E74D97-56F6-407A-A035-009D953F907A    Template    Default template for EXA_DB1902_7274B2A2-6F71-4516-B2BB-6D67CC3824FC_SCAQAE08DV0308_EP
      E621EA72-5DD1-4F4F-BFD4-451E5B7DB8A9    Symmetric Key   TDE Master Encryption Key: MKID 0625BA455B03CD4F57BFA5D2290FD379A1
      You have new mail in /var/spool/mail/root
    2. Obtenez la version du répertoire de base OKV en exécutant okvutil. La version doit être identique à la version du serveur OKV. Dans ce cas, la valeur doit être 21.7.0.0.0.
      # su oracle
       
      $ /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/okvutil
      okvutil version 21.7.0.0.0
      Usage: okvutil <command> [-v <verbosity>] [<command args>]
        <command> := list | upload | download | sign | sign-verify | changepwd | diagnostics
      Options:
        -v, --verbose <verbosity>
          Print extra information to standard out.
          Possible verbosity values are 0, 1 and 2 (more detailed information with higher verbosity level).
      For help on a particular command, use [okvutil <command> -h].
      You have new mail in /var/spool/mail/root
  6. Répétez les étapes 3 à 5 dans le reste de DomUs.
  7. Répétez les étapes 1 à 6 pour toute autre base de données qui doit mettre à niveau son répertoire de base OKV.
  8. Arrêtez les instances DomU 1 de toutes les bases de données avec TDE basé sur OKV. Cela peut être fait au moyen de la console, de la commande srvctl ou de SQL* Plus.
  9. Exécutez root.sh à partir du répertoire de base OKV sélectionné. Il devrait généralement être celui avec la version OKV plus récente. Il vous demandera de remplacer la bibliothèque PKCS11. Vous devez sélectionner OUI.
    # /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/root.sh
  10. Démarrez les instances DomU 1 de toutes les bases de données avec TDE basé sur OKV. Cela peut être fait au moyen de la console, de la commande srvctl ou de SQL* Plus.
  11. Répétez les étapes 8 à 10 dans le reste de DomUs.