本記事では、Oracleモードのテナントでテナントのマスターキーを生成する方法について説明します。生成が完了すると、透過的データ暗号化(TDE)および列暗号化機能を使用できるようになります。
機能の適用範囲
OceanBaseデータベースCommunity Editionは、現在テナントのマスターキーに関連する機能をサポートしていません。
前提条件
- Oracleテナントが作成済みであること。
- 管理ユーザーでテナントにログインしていること。
プライマリキーの生成
構成パラメータ tde_method はプライマリキーの格納方式を設定します。デフォルトは none で、暗号化が無効なことを意味します。任意の none 以外の値に設定すると透過的データ暗号化機能を使用できます。本記事では internal と obcloud の 2 種類の方法を例示します。2 種類の手順は異なるため、実際のニーズに応じていずれか一方を選択してください。構成パラメータ tde_method の詳細な説明については、tde_method を参照してください。
注意
構成パラメータ tde_method を none 以外の値に設定すると、変更できなくなります。
internal方式の例
internal方式では、ストレージマスターキーの暗号情報は主に内部テーブルで管理されます。ログ再生時の循環依存を回避するため、このモードではclogは暗号化されません。具体的な手順は以下のとおりです:
以下のステートメントを実行して、
internal方式の暗号化を有効にします。ALTER SYSTEM SET tde_method='internal';以下のステートメントを実行して、テナント上のすべてのOBServerノード上のパラメータ
tde_methodの値がinternalであることを確認します。SHOW PARAMETERS LIKE 'tde_method';Keystoreを作成します。
-- Keystore名とパスワードを実際の値に置き換えてください ADMINISTER KEY MANAGEMENT CREATE KEYSTORE keystore_name IDENTIFIED BY password;Keystoreを開きます。
-- passwordは前のステップで設定したKeystoreのキーです ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;以下のステートメントを実行して、マスターキーを生成します。
-- passwordは前のステップで設定したKeystoreのキーです ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password;
obcloud方式の例
以下は obcloud 方式の例です。外部KMSサービスを使用する場合は、tde_method を obcloud に設定し、external_kms_info を構成します。
以下のステートメントを実行して、
obcloud方式の暗号化を有効にします。ALTER SYSTEM SET tde_method='obcloud';以下のステートメントを実行して、テナント上のすべてのOBServerノード上のパラメータ
tde_methodの値がobcloudであることを確認します。注意
このステートメントは、テナント上のすべてのOBServerノード上のパラメータ tde_method の値が obcloud である場合にのみ正常に実行されます。
SHOW PARAMETERS LIKE 'tde_method';以下のステートメントを実行して、キー管理情報を構成します。
パラメータ
external_kms_infoの詳細については、external_kms_infoを参照してください。-- この例は参考用です。実際のキー管理情報に置き換えてください。 ALTER SYSTEM SET external_kms_info='{ "KMS_HOST": "kms.ob.com:443", "ROOT_CERT": "******", "PRIVATE_KEY": "******", "PRIVATE_KEY_PHRASE": "ob2025", "SCENE": "ANT", "KEY_NAME": "ob_cluster_key", "CALLER": "oceanbase_admin"}';構成完了後、テナントは設定されたKMSからマスターキーを取得します。
internal方式のように、Keystoreを手動で作成したりマスターキーを生成したりする必要はありません。obcloud方式では、マスターキーはOCPまたはOceanBase Cloud KMSによって生成および管理されます。データベースはexternal_kms_info設定情報を使用してKMSに接続し、必要に応じてマスターキーを取得します。キーの作成、保存、ローテーションはすべてKMS側で完了するため、データベース内でKeystoreを作成したりマスターキーを生成する操作を実行する必要はありません。
プライマリ CMKのローテーション
セキュリティを向上させるため、定期的にプライマリCMKをローテーションすることを推奨します。プライマリCMKをローテーションすると、新しいデータは新しいCMKで暗号化され、既存のデータは引き続き古いCMKで復号化できます。
- internal方式:以下のステートメントを実行してプライマリCMKをローテーションします。
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password; - obcloud方式:プライマリCMKはOCPまたはOceanBase Cloud KMSによって管理されます。詳細については、OCP-TDEの管理またはクラウドベンダーアカウント認証を参照してください。
次のステップ
マスターキーを生成した後、透過的データ暗号化(TDE)を使用できます。新しく作成したテーブルに対する透過的暗号化の設定を参照してください。