ユースケース
TencentDB for MySQLでは、TDE(透過的データ暗号化)機能を提供しています。TDEとは、データの暗号化/復号操作をユーザーに対して透明にすることを指し、データファイルに対するリアルタイムな I/Oの暗号化と復号をサポートしています。データをディスクに書き込む前に暗号化して、ディスクから内部記憶装置に読み込む時に復号しますので、静的データの暗号化におけるコンプライアンス要件を満たすことができます。
キー管理についての説明
TencentDB for MySQLでは暗号化に必要なキーと証明書を提供しておりません。透過的データ暗号化機能で使用されるキーはKMSによって生成・管理されます。キーに関する説明は以下のとおりです。 透過的データ暗号化機能自体には追加料金は発生しませんが、Key Management Service(KMS)の利用には別途費用が発生します。詳細は課金概要をご参照ください。 KMS(ポストペイド版)は2024年12月30日をもってサービスを終了します。KMSでは従量課金をサポートしなくなり、プリペイドの課金モデルのみをサポートすることになります。
既存のKMS(ポストペイド版)をご利用中のお客様は、アカウントが料金滞納状態の場合、KMSからキーを取得できなくなり、移行やアップグレードなどのタスクが正常に実行できなくなる可能性があります。
新しいKMS(プリペイド版)をご購入いただいたお客様は、アカウントが料金滞納状態であっても、KMSのプリペイド期間内であればKMSキーの取得に影響がなく、移行やアップグレードなどのタスクへの影響もありません。ただし、KMSキーの更新期限にはご注意ください。有効期限が切れた後にKMSキーを更新しない場合、透過的データ暗号化機能の使用にも影響が生じます。KMSキーの管理はKMSコンソールで行えます。 TencentDB for MySQLインスタンスは、KMSでサポートされるリージョンは異なります。キーを作成する際、KMSには中国大陸部に対応するリージョンがない場合、広州リージョンで作成でき、中国大陸部以外に対応するリージョンがない場合、中国香港リージョンで作成できます。
TDE暗号化機能を有効にした後、アカウント(UIN)配下で暗号化テーブルを作成したことがない場合、キーリストに対応するキー情報が表示されないことがあります。アカウント(UIN)配下で暗号化テーブルを作成したことがある場合、対応するキー情報が表示されます。暗号化テーブルの作成方法についてはよくあるご質問をご参照ください。 要件
インスタンスのアーキテクチャは、汎用型または専用型の2ノードまたは3ノードであること。
インスタンスのデータベースバージョンはMySQL 5.7またはMySQL 8.0であること。
KMSサービスが有効になっていること。有効になっていない場合は、データ暗号化を有効にする際にガイダンスに従ってKMSを有効にできます。
KMSキーの作成権限が付与されていること。付与されていない場合は、データ暗号化を有効にする際にガイダンスに従って権限を付与できます。
操作を行うアカウントには「QcloudAccessForMySQLRole」権限が必要です。権限がない場合は、データ暗号化を有効にする際にガイダンスに従って権限を付与できます。
注意事項
権限付与を取り消すと、再起動後にMySQLデータベースが使用できなくなります。
TDE暗号化機能は一度有効化すると、再度無効化することはできません。
TDE暗号化機能を有効にした後、データをローカルに復元する場合は、事前にデータを復号化する必要があります。
TDE暗号化機能を有効にすると保存データのセキュリティが向上しますが、暗号化されたデータベースへのアクセス時に読み書きパフォーマンスに影響があります。必要に応じてTDE暗号化機能の有効化をご検討ください。
マスターインスタンスは読み取り専用インスタンスまたは災害復旧インスタンスと関連付けられている場合、マスターインスタンスのTDE機能を有効にすれば、読み取り専用インスタンスと災害復旧インスタンスのデータ暗号化も同時に有効になります。
TDE機能を使用する際は、KMSキーが正常に使用できる状態であることを確認してください。正常でない場合、KMSからキーを取得できず、移行やアップグレードなどのタスクが正常に実行できなくなる可能性があります。
TDE暗号化機能を有効にすると、CPUリソースの消費が増加し、パフォーマンスに約5%の影響があります。
TDE暗号化機能を有効にすると、データベース認証を通過したアプリケーションとユーザーは、アプリケーションデータへの透過的アクセスが可能です。
TDE暗号化機能を有効にすると、バックアップの圧縮効果が低下する可能性があります。
TDE暗号化機能を有効にすると、MySQL 8.0バージョンのインスタンスでは自動的に暗号化され、TDE暗号化機能を有効にした後に作成されるすべてのテーブルはデフォルトで暗号化されます。
操作手順
TDE暗号化機能の有効化
1. MySQLコンソールにログインし、インスタンスリストでインスタンスIDまたは操作列の管理をクリックして、管理ページに進みます。 2. データ暗号化ページを選択し、暗号化ステータスの後のスイッチをクリックします。
ご注意:
データ暗号化機能が有効になっているインスタンスについては、物理バックアップを用いた他のサーバー上の自作データベースへの復旧はサポートされません。
データ暗号化は有効にすると無効にすることはできません。
3. ポップアップしたダイアログボックスで、KMSサービスのアクティブ化とKMSキーの権限承認を行い、キーを選択した後、暗号化をクリックします。
Tencent Cloudが自動生成したキーを使用するを選択すると、Tencent Cloudがキーを自動生成します。
既存のカスタムキーを使用するを選択すると、ご自身で作成したキーを選択できます。
説明:
カスタムキーがない場合は、作成に進むをクリックし、キー管理サービスコンソールでキーを作成する必要があります。詳細についてはキーの作成をご参照ください。 データテーブルの暗号化
TDE暗号化機能を有効にした後、データを暗号化するには、ユーザーがMySQLのテーブルに対し次のDDL操作を実行する必要があります。
テーブルの作成時にテーブルを暗号化する場合は、次のコマンドを実行してください。
CREATE TABLE t1 (c1 INT) ENCRYPTION='Y';
作成済みのテーブルを暗号化する場合は、次のコマンドを実行してください。
ALTER TABLE t1 ENCRYPTION='Y';
データテーブルの復号
TDE暗号化機能を有効にした後、データを復号するには、ユーザーがMySQLのテーブルに対し次のDDL操作を行う必要があります。
暗号化されたテーブルを復号する場合は、次のコマンドを実行してください。
ALTER TABLE t1 ENCRYPTION='N';
よくあるご質問
TDE暗号化を有効にした後、キーリストにキー情報が表示されないのはなぜですか?
問題の現象
TDE暗号化を有効にした後の正常なキーリスト
対処方法
1. まずKMSの暗号化状態、アカウントの料金の支払い状況、TencentDB for MySQLインスタンスとKMSの有効期限をご確認ください。上記すべてが正常であることを確認してから再試行してください。
2. TDE暗号化を初めてご利用の方は、アカウント(UIN)配下で暗号化テーブルを作成したことがないため、キーリストにキー情報が表示されません。以下のコマンドを参考に、データインスタンスで暗号化テーブルを作成してから再試行してください。
CREATE TABLE `user_test` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`userId` int(11) NOT NULL,
`age` int(11) NOT NULL,
`name` varchar(64) DEFAULT NULL,
`ins_date` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_ins_date` (`ins_date`),
KEY `idx_userId` (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ENCRYPTION='Y';
TDE暗号化を有効にした後、キーが使用できないのはなぜですか?
KMSの暗号化状態、アカウントの料金の支払い状況、TencentDB for MySQLインスタンスとKMSの有効期限をご確認ください。KMS(ポストペイド版)は作成できなくなり、新しいKMSはプリペイド版のみをサポートするため、既存のKMS(ポストペイド版)をご利用中のお客様は、KMS暗号化状態が異常またはアカウントが料金滞納の場合、キーを使用できなくなります。アカウントにチャージしてから再試行してください。