本記事では、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を作成したり、プライマリキーを生成する操作を実行したりする必要はありません。
プライマリキーのローテーション
セキュリティを向上させるため、定期的にプライマリキーをローテーションすることを推奨します。プライマリキーをローテーションすると、新しいデータは新しいキーで暗号化され、古いデータは引き続き古いキーで復号化できます。
- internal方式:以下のステートメントを実行してプライマリキーをローテーションします:
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password; - obcloud方式:プライマリキーはOCPまたはOceanBase Cloud KMSによって管理されます。詳細については、OCP-TDEの管理またはクラウドベンダーアカウントの認可を参照してください。
次のステップ
プライマリキーを生成した後、透過的データ暗号化(TDE)を使用できます。新しく作成したテーブルに対するTDEの設定を参照してください。