本記事では、MySQLモードのテナントでテナントマスターキーを生成する方法について説明します。生成後は、透過的データ暗号化(TDE)、列暗号化、関数暗号化機能を利用できます。
機能の適用範囲
OceanBaseデータベースCommunity Editionは、現在テナントマスターキー関連機能をサポートしていません。
前提条件
- MySQLモードのテナントが作成済みであること。
- 管理者ユーザーでテナントにログインしていること。
マスターキーの生成
マスターキー生成に関する説明:
- 透過的データ暗号化(TDE)機能を使用するには、事前にマスターキーを生成する必要があります。マスターキーの値(
tde_methodの値)はnone以外である必要があります。ログ再生時の循環依存を回避するため、tde_methodがinternalに設定されている場合、TDEのclogは暗号化されません。 - 列暗号化機能もマスターキーが
none以外である必要があります。 - 関数暗号化機能も、
none以外のマスターキーを事前に生成する必要があります。 - 上記3つの機能では、すべて
tde_methodをobcloudに設定することを推奨します。
以下はobcloud方式の例です。外部KMSサービスを使用する場合は、tde_methodをobcloudに設定し、external_kms_infoを構成してください。
管理者ユーザーでクラスタのMySQLテナントにログインします。
以下のステートメントを実行して、
obcloud方式の暗号化を有効にします。パラメータ
tde_methodはマスターキーの格納方式を設定するために使用され、デフォルトはnoneで、暗号化が無効であることを意味します。パラメータ
tde_methodの詳細については、tde_methodを参照してください。注意
パラメータ
tde_methodは一度設定すると、変更できなくなります。ALTER SYSTEM SET 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"}';
プライマリキーのローテーション
セキュリティを高めるため、プライマリキーを定期的にローテーションすることを推奨します。プライマリキーをローテーションした後、新しいデータは新しいキーで暗号化され、古いデータは引き続き古いキーで復号化できます。
ALTER INSTANCE ROTATE INNODB MASTER KEY;
次のステップ
プライマリキーを生成した後、以下の操作が可能です:
- 透過的データ暗号化 (TDE) の使用:新規作成テーブルへの透過的暗号化の設定を参照してください。
- 列暗号化機能の使用:列暗号化ルールの作成を参照してください。
- 関数暗号化機能の使用:ENHANCED_AES_ENCRYPTおよびENHANCED_AES_DECRYPTを参照してください。