TDSQL-C for MySQLの透過的データ暗号化機能についてご紹介します。
機能概要
透過的データ暗号化(Transparent Data Encryption、以下TDE)機能は、データの暗号化と復号操作がユーザーに対して透過的であることを指します。
使用シナリオ
TDE機能を使用すると、データファイルのリアルタイムI/O暗号化と復号をサポートします。データがディスクに書き込まれる前に暗号化し、ディスクからメモリに読み取られる時に復号します。これにより、静的データ暗号化のコンプライアンス要件を満たすことができます。
前提条件
インスタンスバージョンが MySQL5.7 2.1.12 以上、または MySQL8.0 3.1.15.005 以上であること。
インスタンスの状態は稼働中です。
注意事項
TDE機能を使用するには、キー管理サービスKMSが有効化されている必要があります。有効化されていない場合は、TDEの有効化プロセスでガイドに従ってKMSサービスを有効化できます。 TDE機能を使用するには、KMSキー権限が付与されている必要があります。付与されていない場合は、TDEを有効化するプロセスでガイドに従って権限を付与できます。
操作アカウントはQcloudAccessForMySQLRoleの権限を持っている必要があります。権限がない場合は、TDEを有効化するプロセスでガイドに従って権限を付与できます。
TDE機能はグローバル暗号化の有効化をサポートします。グローバル暗号化に関する注意事項は以下の通りです。
TDE機能を有効化し、かつグローバル暗号化を有効にした後、テーブルを暗号化する際、コマンドにENCRYPTION='Y'を追加する必要はありません。バックグラウンドで自動的に暗号化されます。なお、このポリシーは新規のデータベースとテーブルにのみ適用され、既存のデータベースとテーブルには適用されませんのでご注意ください。つまり、グローバル暗号化を有効にする前にデータベースを作成した場合、有効化後にそのデータベース内に新しく作成したテーブルは暗号化されません。有効化後に作成されたデータベースとテーブルのみが自動的に暗号化されます。
クラスタをリストアする際、ソースクラスタでグローバル暗号化が有効化されているが、暗号化されていないテーブルが存在する場合、論理バックアップによるリストア後のテーブルはすべて暗号化されます。一方、スナップショットバックアップによるリストア後のテーブルは、もともと暗号化されていた場合はリストア後も暗号化されたままとなり、もともと暗号化されていなかった場合は非暗号化のまま維持されます。
料金説明
暗号化に使用されるキーはキー管理サービスKMSによって生成・管理されます。TDSQL-C for MySQLのデータ暗号化機能に追加料金はかかりませんが、キー管理サービスKMSでは追加費用が発生する可能性があります。詳細については課金概要をご参照ください。 利用制限
対称暗号化のみサポートします。
操作アカウントがTDEを有効化した後、権限関係を取り消した場合、インスタンスの再起動によりデータベースが利用不可になります。
TDEは有効化のみ可能で、無効化はできません。つまり、TDEを有効化した後、インスタンス上の証明書キーは削除できません。
KMSマスターキーを削除すると、ユーザーインスタンスは利用不可になります。
TDE機能を有効化した後、アカウントが未払い状態の場合、KMSからキーを取得できず、移行やアップグレードなどのタスクが正常に進行できなくなる可能性があります。
クラスタが自動バックアップとログバックアップのクロスリージョンバックアップを有効化している場合、TDE機能の有効化はサポートされません。
操作手順
データ暗号化の有効化
2. クラスタ管理ページでデータセキュリティタブを選択します。
3. データ暗号化を選択し、最初の行の未開通の前のボタンをクリックして、データ暗号化機能を有効にします。
4. ポップアップダイアログでキー方式を選択し、グローバル暗号化を有効にするかどうかを選択した後、確定をクリックします。
説明:
KMSサービスをこれまでに有効化したことがなく、KMSキーの権限付与も行っていない場合、ダイアログの指示に従い、KMSサービスの横にある有効化をクリックし、その後KMSキー権限付与の横にある権限付与をクリックして、対応する有効化または権限付与操作を完了させる必要があります。これによりデータ暗号化機能の後続設定が利用可能になります。
キーを選択する
Tencent Cloudが自動生成したキーを使用します:これはシステムによって自動生成されたキーです。
説明:
"Tencent Cloudが自動生成したキーを使用します"を選択した場合、KMSが現在のクラスタの所在リージョンをサポートしているときは、現在のクラスタの所在リージョンのキーが使用されます。サポートしていない場合は、広州リージョンのキーが使用されます。現在、KMSがTDSQL-C for MySQLの以下のリージョンをサポートしていません:成都、重慶、南京、サンパウロ。
既存のカスタムキーを使用します:ユーザーがカスタム作成したキーを選択できます。
既存のカスタムキーを使用する場合、既存キーの所在リージョンを選択する必要があります。
既存のカスタムキーを使用する場合、キー名で既存のキーを選択できます。作成済みのキーがない場合は、作成へ進むをクリックし、鍵管理サービスKMSコンソールで作成した後、再度選択してください。 グローバル暗号化
グローバル暗号化を有効化するかどうかを選択するボタンです。有効化すると、新規のデータベースとテーブルは自動的に暗号化されます。グローバル暗号化ボタンは、TDEを有効化した後でも個別に有効化または無効化することもサポートしています。
5. クラスタの稼働状態が「稼働中・非同期タスク:データ暗号化」から「稼働中」に変わったら、データ暗号化が正常に有効化されたことを示します。タスクの進捗状況を確認する場合は、タスクリストで確認できます。 暗号化データテーブル
データ暗号化機能を有効にした後、ユーザーはデータベースのテーブルに対して次のDDL操作を行う必要があります。
テーブル作成時に暗号化を行う場合は、次のコマンドを実行してください:
CREATE TABLE t1 (c1 INT) ENCRYPTION='Y';
既に作成したテーブルを暗号化する場合は、次のコマンドを実行してください:
ALTER TABLE t1 ENCRYPTION='Y';
テーブルの復号化
データ暗号化機能を有効化した後、暗号化済みのテーブルをデータ復号化する場合は、次のDDL操作を行ってください。
ALTER TABLE t1 ENCRYPTION='N';
関連するAPI
|
| 本インターフェース(DescribeClusterTransparentEncryptInfo)はクラスタの透過的データ暗号化情報を照会するために使用されます。 |
| 本インターフェース(OpenClusterTransparentEncrypt)はクラスタの透過的データ暗号化を有効化するために使用されます。 |