透過的データ暗号化 (TDE) は、ディスクへの書き込み時にリアルタイムでデータファイルを暗号化し、メモリへの読み取り時に復号します。アプリケーション側での変更は一切不要です。保存データの暗号化によりセキュリティコンプライアンス要件を満たす必要がある場合、ストレージへの直接アクセスから機密データベースコンテンツを保護したい場合、またはサードパーティとバックアップファイルを安全に共有したい場合に TDE を使用してください。
TDE を有効にしても、データファイルサイズは増加しません。
仕組み
TDE は階層的なキー構造を使用してデータを保護します。
オペレーティングシステムレイヤー — Windows Data Protection API (DPAPI) は、Windows に組み込まれた API で、暗号化キーおよびアルゴリズムを透過的に管理します。DPAPI は TDE キー階層のルートであり、サービスマスターキー (SMK) を保護します。
SQL Server インスタンスレイヤー — サービスマスターキー (SMK) は SQL Server インスタンス作成時に生成されます。これはデータベースエンジンのルート暗号鍵として機能し、DPAPI によって保護されます。SMK はデータベースマスターキー (DMK) を暗号化します。
データベースレイヤー — TDE はマスターデータベースおよびユーザーデータベースの両方に適用されます。
-
マスターデータベース:TDE を有効にすると、マスターデータベース内に DMK および証明書が作成されます。DMK は SMK によって暗号化された対称キーであり、証明書はユーザーデータベースに格納されるデータベース暗号化キー (DEK) を暗号化します。
-
ユーザーデータベース:各ユーザーデータベースには、マスターデータベース内の証明書によって暗号化された DEK が格納されます。SQL Server がデータを読み書きする際、証明書の秘密鍵を使用してメモリ内で DEK を復号し、その DEK を使ってデータファイルをリアルタイムで暗号化または復号します。このプロセスはアプリケーションおよびユーザーに対して完全に透過的です。
TDE 証明書がマスターデータベースに存在しない場合、SQL Server は DEK を復号できません。そのため、TDE が有効なデータベースのバックアップファイルから復元したり、別のインスタンスにデータベースをアタッチしたりすることはできません。
前提条件
開始前に、以下の条件を満たしていることを確認してください。
-
RDS インスタンスが次のすべての条件を満たしていること。
-
インスタンスが 汎用 または 専有 インスタンスファミリーに属していること。共有パフォーマンスインスタンスはサポートされていません。詳細については、「Instance families」をご参照ください。
-
課金方法が サブスクリプション または 従量課金 であること。Serverless インスタンスはサポートされていません。詳細については、「Serverless ApsaraDB RDS for SQL Server instances」をご参照ください。
-
インスタンスが次のいずれかの SQL Server バージョンを実行していること:SQL Server 2019 SE、SQL Server 2022 SE、SQL Server 2025 SE、または SQL Server EE。
-
インスタンスが読み取り専用 RDS インスタンスでないこと。
-
-
ご利用の Alibaba Cloud アカウントが、RDS インスタンスによる Key Management Service (KMS) へのアクセスを許可済みであること。詳細については、「Authorize ApsaraDB RDS to access KMS」をご参照ください。
-
(Bring Your Own Key (BYOK) のみ該当) 証明書ファイル、秘密鍵ファイル、およびパスワードを準備済みであること。
制限事項と注意事項
制限事項
RDS インスタンスで TDE が有効になると:
-
マイナーエンジンバージョンの更新はできません。
-
インスタンスが Premium Local SSD を使用しており、かつ SQL Server 2008 R2 を実行している場合、SQL Server 2008 R2 から SQL Server 2012 または SQL Server 2016 へのメジャーエンジンバージョンのスペックアップはできません。
-
バックアップファイルは新しい RDS インスタンスへのデータ復元には使用できますが、RDS インスタンスの再構築や他の既存 RDS インスタンスへのデータ復元には使用できません。
-
Alibaba Cloud サービスキーを使用している場合、TDE 有効後に生成されたバックアップファイルはオンプレミスデバイスへのデータ復元に使用できません。
パフォーマンスへの影響
TDE は CPU 負荷が高く、I/O 操作を伴います。Microsoft 公式ドキュメントに基づくと、以下の通りです。
-
通常の条件下では、全体的なパフォーマンスが約 3%~5% 低下します。
-
アクセス頻度の高いデータのほとんどがメモリ上にある場合、影響は最小限に抑えられます。
-
CPU 使用率がすでに高い状態の場合、パフォーマンスの低下は最大で約 28% に達する可能性があります。
TDE の有効化
-
インスタンスページに移動します。画面上部のナビゲーションバーで RDS インスタンスが配置されているリージョンを選択し、インスタンス ID をクリックします。
-
左側のナビゲーションウィンドウで データセキュリティ をクリックします。
-
TDE タブで、無効 の横にあるスイッチをオンにします。
TDE はすべての前提条件を満たしている場合にのみ有効化できます。
-
ダイアログボックスでキーの種類を選択し、OK をクリックします。
Alibaba Cloud が自動生成したキーを使用する
未選択のデータベース セクションからデータベースを選択し、
アイコンをクリックして 選択済みのデータベース セクションに移動させ、確認 をクリックします。
ご自身の SQL Server キーで暗号化する (BYOK)
-
証明書ファイルおよび秘密鍵ファイルを OSS バケットにアップロードします。詳細については、「Upload objects」をご参照ください。

-
次のステップ をクリックし、以下のパラメーターを設定します。
Parameter Description OSS Bucket 証明書および秘密鍵ファイルをアップロードした OSS バケット。 Certificate OSS バケットにアップロードした証明書ファイル。 Private key OSS バケットにアップロードした秘密鍵ファイル。 Password SQL Server キーのパスワード。 
-
次のステップ をクリックして、認証データベース ステップに進みます。
-
未選択のデータベース セクションからデータベースを選択し、
アイコンをクリックして 選択済みのデータベース セクションに移動させ、確認 をクリックします。
TDE の無効化
TDE を無効にすると、すべてのデータが復号されます。この操作はリソースを大量に消費し、CPU、メモリ、I/O リソースを著しく使用します。復号時間はデータ量に比例します。たとえば、約 200 GB のデータを含むデータベースの場合、復号に 40 分以上かかることがあります。
-
特定のデータベース の TDE を無効にするには、それらのデータベースを 選択済みのデータベース セクションから削除します。
-
インスタンス全体 の TDE を無効にするには、選択済みのデータベース セクションからすべてのデータベースを削除します。これにより、インスタンスの TDE が無効になります。
手順:
-
インスタンスページに移動します。画面上部のナビゲーションバーで RDS インスタンスが配置されているリージョンを選択し、インスタンス ID をクリックします。
-
左側のナビゲーションウィンドウで データセキュリティ をクリックします。
-
TDE タブをクリックし、TDE 設定項目 をクリックします。
-
選択済みのデータベース セクションからデータベースを選択し、
アイコンをクリックして 未選択のデータベース セクションに移動させ、OK をクリックします。
TDE 無効化後の復号進行状況を確認するには、次の SQL ステートメントを実行します。
SELECT
db_name(database_id) AS DatabaseName,
encryption_state,
percent_complete
FROM
sys.dm_database_encryption_keys;
次のステップ
-
API オペレーションを呼び出して TDE を有効にする方法については、「ModifyDBInstanceTDE」をご参照ください。
-
RDS インスタンスへの接続を SSL を使用して暗号化する方法については、「SSL 暗号化機能の設定」をご参照ください。