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)を混同しないように注意してください。
その他の情報
コメント
コメントを投稿