ユースケース
TencentDB for MySQLでは、TDE(透過的データ暗号化)機能を提供しています。TDEとは、データの暗号化/復号操作をユーザーに対して透明にすることを指し、データファイルに対するリアルタイムな I/Oの暗号化と復号をサポートしています。データをディスクに書き込む前に暗号化して、ディスクから内部記憶装置に読み込む時に復号しますので、静的データの暗号化におけるコンプライアンス要件を満たすことができます。
制限条件
- インスタンスのアーキテクチャは2ノードまたは3ノードであることが必要です。
- インスタンスのタイプはMySQL 5.7、MySQL 8.0であることが必要です。
- Key Management Service (KMS)が有効になっている必要があります。有効になっていない場合は、データ暗号化の過程でガイダンスに従ってKMSを有効化してください。
- KMSのキー権限が承認されている必要があります。権限承認を行っていない場合は、データ暗号化の過程でガイダンスに従って権限承認を行ってください。
- 操作するアカウントにQcloudAccessForMySQLRoleの権限が必要です。権限がない場合は、データ暗号化の過程でガイダンスに従って権限承認を行ってください。
説明:
- アカウントが料金滞納状態の場合は、KMSからキーを取得することができず、マイグレーション、アップデートなどのタスクが正常に行われない場合があります。支払い延滞の説明をご参照ください。
注意事項
- 権限承認関係を取り消した後に再起動すると、MySQLデータベースが使用できなくなる場合があります。
- TDE暗号化機能を有効にすると無効にすることはできません。
- TDE暗号化機能を有効にした後、ユーザーがデータをローカルにリストアしたい場合は、先にデータの復号を行う必要があります。
- TDE暗号化機能を有効にすると、静的データの安全性を向上させることができますが、暗号化されたデータベースにアクセスする場合の読み取り/書き込みパフォーマンスに影響が生じるおそれがあります。TDE暗号化機能の有効化は実際の状況に応じて選択してください。
- マスターインスタンスが読取専用インスタンスまたはディザスタリカバリインスタンスに関連付けられている場合は、マスターインスタンスのデータ暗号化機能を積極的に有効にするだけでよいです。読取専用インスタンスとディザスタリカバリインスタンスのデータ暗号化が同時に有効になります。
- TDE暗号化機能を有効にした後、アカウントが支払い延滞すると、KMSからキーを取得できず、移行やアップグレードなどのタスクが失敗する可能性があります。
- TDE暗号化機能を有効にした後、CPUリソースの消費量が増加し、パフォーマンスに約5%影響します。
- TDE暗号化を有効にすると、データベースで認証されたアプリケーションとユーザーはアプリケーションデータに透過的にアクセスできます。
操作手順
TDE暗号化機能の有効化
- MySQLコンソールにログインし、インスタンスリストのインスタンスIDまたは操作列の管理をクリックして、管理ページに進みます。
- データ暗号化ページを選択し、暗号化ステータスの後のスイッチをクリックします。
注意:
- データ暗号化機能が有効になっているインスタンスについては、物理バックアップを用いた他のサーバー上の自作データベースへの復旧はサポートされません。
- データ暗号化は有効にすると無効にすることはできません。
- ポップアップしたダイアログボックスで、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';
この記事はお役に立ちましたか?