Oracle CloudのVM DBシステムで顧客管理のTDE暗号化キーを使用する方法 (2022/05/17)

Oracle CloudのVM DBシステムで顧客管理のTDE暗号化キーを使用する方法 (2022/05/17)

https://database-heartbeat.com/2022/05/17/cmk-dbcs/



はじめに


Oracle CloudのOracle Databasesは、デフォルトでTransparent Data Encryption (TDE)を使用して、静止状態のデータを保護します。デフォルトの構成「Oracle-Managed Keys」では、データベースサーバーのローカルにあるウォレットファイルにマスター暗号化キーが保存されます。今回、オラクルはOCI Vault Service for VM DB Systemsとの統合もサポートし、TDEマスター暗号鍵の作成と管理、または既存の暗号鍵のインポートができるようになりました。


OCI Vaultは、すべての鍵を一元的に作成、管理するための高可用性、高耐久性、高管理性のサービスを提供します。

OCI VaultとOracle Key Vault(OKV)を混同しないようにご注意ください。


  •     OCI Vault:暗号鍵を管理するためのクラウドサービス
  •     Oracle Key Vault(OKV):暗号鍵を管理するためのフルスタック・ソフトウェア・アプライアンス(その他多数)


このブログ記事では、既存のデータベースの鍵管理を、Oracle管理鍵(ローカルウォレットを使用)から顧客管理鍵(OCI Vaultを使用)に変更する方法を紹介します。


環境


  •     Oracle Database バージョン 19.15 が稼働している Oracle Cloud 上の VM DB システム(マルチテナント・アーキテクチャを使用)


準備編

ステップ1:Vaultと暗号化キーの作成


Cloud Consoleから「Vault」を検索し、「Identity & Security」内の「Vault」サービスをクリックします。[Create Vault]をクリックし、Vaultの名前を指定し、Vaultを作成します。Vaultがアクティブになったら、[Create Key]をクリックし、鍵の名前を指定し、AES 256 bitsを選択します。



キーを作成します。キーは数秒以内に利用可能になります。


ステップ2:VM DBシステム・リソースがOCI Vault内のキーにアクセスできるようにする


詳細ページからVM DB System OCIDを取得します。



VM DB システムの OCID をリソースとして提供する Dynamic Group を作成します。

Any { resource.id = 'ocid1.dbsystem.oc1.eu-frankfurt-1.antheljrvh2pp2iae7cy6jdr6ag4kqhzj4uxsx5afjliolgkrpnwpv5jonbq' }


非常に重要です!"instance.id"ではなく、"resource.id "を使用してください。"instance.id "はIaaS VMを指し、VM DB Systemsを指さないためです。


残念ながら、ルール・ビルダーはこのオプションを提供していません。



そのため、手動で "resource.id" を入力する必要があります。


また、特定のコンパートメントにすべてのリソース(例:VM DBシステム、ExaCS VMクラスタ)を含めるには、"resource.complete.id"("instance.complete.id "ではありません)を使用することも可能です。


Dynamic Group のメンバーが OCI Vault 内の鍵にアクセスできるように Policy を作成します。

Allow dynamic-group SecurityAdmins to read vaults in tenancy

Allow dynamic-group SecurityAdmins to manage keys in tenancy



ステップ3:Oracle Service Networkへのアクセスを許可


VM DB System のサブネットセキュリティリストを構成して、Oracle Services Network へのイグジットトラフィックを許可します。ルートテーブルには、サービスゲートウェイを経由してOracle Services Networkにトラフィックを転送するルールが必要です。

既存データベースのキー管理タイプの変更

変更前


鍵管理の種類を変更する前に、データベースが oracle-managed keys (local wallet file) を使用している場合の現在の構成を見てみましょう。

-- formatting
set lines 300
set pages 100
col name for a20
col wrl_type for a10
col status for a15
col wallet_order for a15
col key_id for a60
col keystore_type for a20
col origin for a20
col encryptionalg for a15
col encryptedts for a15
col inst_id for 999
col value for a60
  
-- status of the wallet and the wallet location
SQL> select p.con_id, p.name, p.open_mode, ew.wrl_type, ew.wallet_type, ew.status, ew.wallet_order
from v$pdbs p join v$encryption_wallet ew on (ew.con_id = p.con_id)
order by p.con_id;
 
    CON_ID NAME                 OPEN_MODE  WRL_TYPE   WALLET_TYPE          STATUS          WALLET_ORDER
---------- -------------------- ---------- ---------- -------------------- --------------- ---------------
         2 PDB$SEED             READ ONLY  FILE       AUTOLOGIN            OPEN            SINGLE
         3 PDB001               READ WRITE FILE       AUTOLOGIN            OPEN            SINGLE


鍵管理の種類を変更して、Customer-Managed Keysを使用


データベースの詳細ページから、「その他の操作」→「暗号化キーの管理」をクリックします。



[Use customer-manged keys」を選択し、以前作成したVaultとKeyを選択します。TDEウォレットのパスワードを入力し、[変更を保存]をクリックします。



操作が完了するまで、データベースはUIで「更新中」ステータスになります。


一方、気になる方は、データベースのアラートログをバックグラウンドで監視することができます。

tail -f /u01/app/oracle/diag/rdbms/cdb01_fra1pg/CDB01/trace/alert_CDB01.log


顧客管理キーへの変換は、合計で約15分かかります。鍵管理を変更すると、すべてのデータベースインスタンスが再起動されるため、データベースが使用できなくなります。操作が正常に完了すると、UIに変更が反映されます。UIは、変更を表示するためにさらに数秒かかります。




変更後


では、新しいTDEの設定を見て、何が変わったのかを見てみましょう。

-- status of the wallet and the wallet location
SQL> select p.con_id, p.name, p.open_mode, ew.wrl_type, ew.wallet_type, ew.status, ew.wallet_order
from v$pdbs p join v$encryption_wallet ew on (ew.con_id = p.con_id)
order by p.con_id;
 
    CON_ID NAME                 OPEN_MODE  WRL_TYPE   WALLET_TYPE          STATUS                         WALLET_ORDER
---------- -------------------- ---------- ---------- -------------------- ------------------------------ ---------------
         2 PDB$SEED             READ ONLY  FILE       AUTOLOGIN            OPEN_NO_MASTER_KEY             SINGLE
         2 PDB$SEED             READ ONLY  OKV        OKV                  OPEN                           SINGLE
         3 PDB001               READ WRITE FILE       AUTOLOGIN            OPEN_NO_MASTER_KEY             SECONDARY
         3 PDB001               READ WRITE OKV        OKV                  OPEN                           PRIMARY


これで、プライマリウォレットである「OKV」ウォレットが追加されました。


さらなるPluggable Databasesの作成


Cloud Consoleを使用して、新しいPDBを作成します。



新しいPDBにはTDE Master Encryption Keyが既に作成されています。

SQL> select key_id, keystore_type, origin from v$encryption_keys;
 
KEY_ID                                                       KEYSTORE_TYPE        ORIGIN
------------------------------------------------------------ -------------------- --------------------
069702169108644F2EBF4C39F1650A3FD9                           OKV                  LOCAL


OCI Vaultのキーを見ると、新しいバージョンのキーが作成されており、これが新しいPDBに使用されるキーであることがわかります。




考慮事項


  •     使用する暗号化キーは、AES-256 である必要があります。
  •     Customer-managed Keys (CMK) は、バージョン 19.13 以降を使用する VM DB System データベースで利用可能です。
  •     CMK を有効にする場合、CDB とすべての PDB は OPEN である必要があり、すべてのテーブルスペースは READ/WRITE モードである必要があります。
  •     TDE 孤立モードはサポートされていません。TDE ユニファイド・モードのみがサポートされます。つまり、すべてのキー・バージョンは OCI Vault 内の同じキーからのものとなります。
  •     Oracle が管理する鍵への切り替えはサポートされていません。
  •     CMK を使用するデータベースは、オンプレミスシステムにリストアできません。
  •     Data Guard は、プライマリとスタンバイの両方が同じ OCI Vault を使用するため、同じ OCI リージョンでのみ有効にすることができます。


まとめ


TDE暗号化キーの管理にOCI Vaultを使用することは、データベース作成時にすぐに、またはその後でキー管理を変更する場合でも、非常に簡単です。鍵管理を変更する場合は、Vaultサービスで独自の鍵を作成またはインポートし、データベース作成時またはそれ以降にそれを選択します。


VM DBシステムおよびExaCS VM Clustersを扱う場合、IAM 動的グループで "instance.id "ではなく "resource.id "を使用することを忘れないようにします。


最後に、OCI VaultとOracle Key Vault (OKV)を混同しないように注意してください。


その他の情報

コメント

このブログの人気の投稿

Oracle APEXのInteractive Gridで、Oracle Formsと比較して、重複行の検証を制御/通過させる方法 (2022/07/21)

Oracle APEX 24.1の一般提供の発表 (2024/06/17)

Oracle Cloudのデータベースをオブジェクト・ストレージにバックアップする3つの方法 (2021/12/13)