セキュリティコンプライアンスや保存データの暗号化のために、透過的なデータ暗号化 (TDE) を使用して、データファイルをリアルタイムで暗号化および復号します。TDE はデータベースレイヤーでデータを暗暗号化し、潜在的な攻撃者がデータベースをバイパスしてストレージから機密情報を直接読み取ることを防止します。これにより、機密データのセキュリティが大幅に向上します。
背景情報
概要: TDE を有効にすると、データはディスクに書き込まれる前に暗号化され、メモリに読み込まれるときに復号されます。認証されたアプリケーションやユーザーは、引き続き透過的にアプリケーションデータにアクセスできます (アプリケーションコードや設定の変更は不要です)。これにより、権限のないユーザーがテーブルスペースファイル、ディスク、またはバックアップ内のプレーンテキストデータにアクセスすることを防止します。
キー: Key Management Service (KMS) は、TDE に使用されるキーを生成および管理します。ApsaraDB RDS は、暗号化に必要なキーや証明書を提供しません。Alibaba Cloud によって自動的に生成されたキーを使用するか、独自のカスタマーマスターキー (CMK) を使用して ApsaraDB RDS にその使用を許可することができます。
暗号化アルゴリズム: 使用される暗号化アルゴリズムは、データベースエンジンバージョンによって異なります。次の表に、暗号化アルゴリズムを示します。
データベースエンジンバージョン | サポートされる暗号化アルゴリズム | アルゴリズムの変更 |
MySQL 5.6 |
| 暗号化アルゴリズムは変更できません。 |
MySQL 5.7 および 8.0 |
|
|
innodb_encrypt_algorithm パラメーターの変更はリスクの高い操作です。インスタンス内の暗号化されたテーブルやログなど、すべての暗号化データの暗号化および復号アルゴリズムに影響します。このパラメーターの値がデータの暗号化アルゴリズムと異なる場合、データは復号できなくなります。innodb_encrypt_algorithm パラメーターはコンソールに表示されません。このパラメーターを変更するには、チケットを送信してください。
前提条件
TDE 機能を使用するには、ApsaraDB RDS インスタンスが次の要件を満たしている必要があります。
データベースエンジンバージョン: MySQL 8.0、5.7、または 5.6 (マイナーエンジンバージョン 20191015 以降)。
エディション: High-availability Edition または Cluster Edition。
Key Management Service (KMS) が有効化されていること。有効化されていない場合は、TDE を有効化する際に画面の指示に従って有効化してください。
Alibaba Cloud アカウントを使用して、ApsaraDB RDS に Key Management Service (KMS) へのアクセス権を付与してください。
注意事項
TDE を有効にすると、無効化できず、キーも変更できず、CPU 使用率が大幅に増加します。
インスタンススイッチオーバー: TDE を有効にすると、ApsaraDB RDS インスタンスが再起動し、インスタンススイッチオーバーが発生します。インスタンスは約 15 秒間利用できなくなります。この操作はオフピーク時に実行し、アプリケーションが自動再接続をサポートしていることを確認してください。
コード変更は不要: TDE を有効にしても、データファイルのサイズが増加したり、アプリケーションのコードや設定を変更したりする必要はありません。
クロスリージョンバックアップと復元: TDE を有効にした後、クロスリージョンバックアップと復元のサポートはストレージタイプによって異なります。
クラウドディスクインスタンス: クロスリージョンバックアップとクロスリージョン復元の両方をサポートします。
ローカルディスクインスタンス: クロスリージョンバックアップのみをサポートします。クロスリージョン復元はサポートされていません。
クロスリージョンバックアップの詳細については、「クロスリージョンバックアップ」をご参照ください。オンプレミスのマシンにデータを復元するには、まずデータを復号する必要があります。
設定変更の制限:TDE を有効にした後、インスタンスのエディションを High-availability Edition から Cluster Edition に変更することはできません。
CMK の制限事項: 既存の CMK を使用する場合、次の点にご注意ください。
対称キーのみ使用できます。非対称キーはサポートされていません。
KMS インスタンスが有効期限切れや削除により利用できなくなった場合、キーが無効化された場合、キーの削除が予約された場合、またはキーマテリアルが削除された場合、キーは利用できなくなります。このような場合、ApsaraDB RDS インスタンスのデータは復元できません。
権限を取り消してから ApsaraDB RDS インスタンスを再起動すると、インスタンスは利用できなくなります。
マイナーエンジンバージョンのアップグレード: インスタンスの安定性を確保するために、プライマリインスタンスと、もしあればその読み取り専用インスタンスのマイナーエンジンバージョンを最新バージョンにアップグレードすることを推奨します。
TDE の有効化
TDE は、Alibaba Cloud によって自動的に生成されたキーを使用するか、独自の CMK を使用して ApsaraDB RDS に使用を許可することで有効にできます。TDE を有効にするには、Alibaba Cloud アカウントまたは AliyunSTSAssumeRoleAccess 権限を持つアカウントを使用する必要があります。
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
左側メニューで、セキュリティコントロール をクリックし、次に [TDE] タブをクリックします。
キーのタイプを選択します。
[自動生成されたキーを使用する]:このオプションは、KMS のサービスキーを使用します。
[既存のカスタムキーを使用する ]:既存の CMK を選択します。対称キーのみがサポートされています。
説明利用可能なキーがない場合は、作成してください。 をクリックして KMS コンソールに移動し、キーを作成して独自のキーマテリアルをインポートします。キーを作成する際、キータイプ パラメーターには [対称キー] を選択します。
OK をクリックして TDE を有効にします。
データの暗号化と復号
データの暗号化
データベースにログインし、次のコマンドを実行してテーブルを暗号化します。
TDE を有効にした後、既存のテーブルは自動的には暗号化されません。次のコマンドを実行して、既存のテーブルを手動で暗号化する必要があります。
MySQL 5.6:
ALTER TABLE <tablename> engine=innodb,block_format=encrypted;MySQL 5.7 または 8.0:
ALTER TABLE <tablename> encryption='Y';
データの復号
データベースにログインし、適切なコマンドを実行してテーブルを復号します。
MySQL 5.6:
ALTER TABLE <tablename> engine=innodb,block_format=default;MySQL 5.7 または 8.0:
ALTER TABLE <tablename> encryption='N';
よくある質問
Q1: TDE を有効にした後も、Navicat などの一般的なデータベースツールを使い続けることはできますか?
A: はい、できます。TDE は認証された接続に対して透過的です。Navicat などのデータベースツールは、権限を付与されたユーザーとして接続します。そのため、アクセス時にデータはメモリ内で自動的に復号されます。クライアントツール側の変更は不要です。
Q2: TDE を有効にした後も、他の ApsaraDB RDS インスタンスにデータを移行できますか?
A: はい、できます。データ移行ツールは認証されたユーザーとしてソースデータベースに接続し、データベースエンジンが透過的に復号した後のデータを読み取ります。移行プロセスは、暗号化されていないインスタンスの場合と同じです。
Q3: 暗号化されたテーブルをクエリすると、なぜデータがプレーンテキストで表示されるのですか?
A: これは TDE の仕様通りの動作です。TDE は、使用中のデータ (メモリ内のデータ) ではなく、保存データ (ディスク上のデータ) を保護します。権限を付与されたユーザーが暗号化されたテーブルをクエリすると、データベースエンジンは結果を返す前にメモリ内でデータを復号します。ディスク上のデータファイルとバックアップは暗号化されたままです。これにより、権限のない第三者が物理ストレージやバックアップファイルにアクセスした場合でも、機密情報への不正アクセスを防止します。バックアップは暗号化されており、オンプレミス環境で直接復元することはできません。オンプレミスのマシンにデータを復元するには、まずソースデータベースでデータを復号する必要があります。
関連ドキュメント
さまざまなデータベース暗号化技術の比較については、「データベース暗号化技術の比較」をご参照ください。
転送中のデータを暗号化するには、SSL 暗号化を有効にすることができます。詳細については、「クラウド証明書を使用した SSL 暗号化の有効化」をご参照ください。
キー関連の操作の詳細については、「Key Management Service」をご参照ください。
関連 API
API | 説明 |
ApsaraDB RDS インスタンスの TDE を有効にするには、TDEStatus パラメーターを Enabled に設定します。必要に応じて他のパラメーターを設定できます。 |