すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:さまざまなデータベース暗号化方式の比較

最終更新日:Mar 28, 2026

ApsaraDB RDS for MySQL は、ディスク暗号化、透過的データ暗号化(TDE)、列レベルの暗号化の 3 種類の補完的な暗号化方式をサポートしており、それぞれがスタックの異なるレイヤーでデータを保護します。本ページでは、各方式がどのような脅威に対して防御するか、パフォーマンスへの影響、および適用タイミングについて説明します。

データベース暗号化の仕組み

暗号化は、アクセスの制御を置き換えるものではありません。代わりに、アクセス制御が失敗した場合(たとえば、管理者アカウントが侵害された場合や、攻撃者がデータベースファイルをディスクから直接コピーした場合など)に発生する被害を軽減します。

3 種類の方式は、システム内の異なるポイントでデータを保護します:

  • ディスク暗号化 は、サービスとしてのインフラストラクチャ(IaaS)レイヤーでデータを保護し、物理ディスク上のデータをセキュアにします。

  • TDE は、Platform as a Service(PaaS)レイヤーでデータを保護し、ファイルシステムに書き込む前にデータを暗号化します。

  • 列レベルの暗号化(Always-Confidential Database 機能の Basic Edition)は、データベースとクライアント間の通信中のデータを保護し、クエリ結果を暗号文の形式で配信します。

以下の図は、各方式が対応する攻撃経路を示しています。

image

攻撃タイプとカバー範囲

データベースシステムを標的とする攻撃は、以下の 8 カテゴリに分類されます:

攻撃タイプ説明一般的な手法
管理者への攻撃システム管理者を標的にした攻撃です。データベース管理者(DBA)はデータにアクセスしたり構成を変更したりできます。PaaS 管理者は OS レベルのファイルにアクセスできます。IaaS 管理者は物理ディスクにアクセスできます。OS の脆弱性、アカウント情報の漏洩、誤ったシステム構成
ユーザーへの攻撃データベースへのアクセス権を持つエンドユーザを標的にし、SQL インジェクションを用いて特権を昇格させます。アカウント情報の漏洩、論理的データ侵害
攻撃アプリケーションデータベース自体よりも攻撃対象領域が広いインターネットに公開されたアプリケーションサーバを標的にします。アプリケーションおよび OS の脆弱性
ネットワークへの攻撃アプリケーションとデータベース間のトラフィックを傍受します。バイパス手法により検出が困難になります。ネットワークのリスニングおよびトラフィック傍受
データベースのバイパスPaaS 運用担当者がデータベースのディスクからデータファイルまたはバックアップファイルを直接コピーします。物理的データ侵害
OS のバイパスIaaS 運用担当者がローカルまたはクラウド上のディスクからデータを直接コピーします。増加する攻撃
Exploit Databaseデータベースシステムのコードバグを悪用して、データに直接または間接的にアクセスします。データベースおよび OS の脆弱性
対象データコピー本番環境のデータをミラーしている開発・テスト用データベースを標的にしますが、これらの環境には同等のセキュリティ対策が施されていないことが一般的です。上記のいずれか

暗号化方式の選択

各方式は、上記の攻撃タイプのうち特定のサブセットに対して防御します。下表は、適切な方式(あるいは複数方式の組み合わせ)を選択するための主要な評価項目をまとめています。

ディスク暗号化TDE列レベルの暗号化(Basic Edition)
対応する攻撃タイプOS のバイパス、管理者への攻撃(IaaS)データベースのバイパス、OS のバイパス、管理者への攻撃(PaaS および IaaS)ユーザーへの攻撃、アプリケーションへの攻撃、管理者への攻撃(DBA[1])、ネットワークへの攻撃、データコピーへの攻撃
DBA の可視性可視可視非表示
PaaS 運用および保守の可視化可視非表示可視[1]
IaaS 運用・保守の可視化非表示非表示可視[1]
暗号化の粒度インスタンステーブルおよびデータベース
アプリケーションの変更なしなしJDBC を EncJDBC に置き換え(コード変更不要)
通常時のパフォーマンス損失ごくわずか~なし5%未満7%未満
高負荷時のパフォーマンス損失ごくわずか最大 20%最大 21%
詳細についてはECS ディスク暗号化の概要TDE の設定カラム暗号化の概要

[1] Basic Edition では、PaaS および IaaS の運用担当者がプレーンテキストのデータにアクセスすることを防止できません。これらのレイヤーに対する防御を実現するには、信頼できるハードウェア技術と併用可能な Always-Confidential Database 機能のハードウェア強化版をご利用ください。

各方式の動作原理

ディスク暗号化

ディスク暗号化は IaaS レイヤーで動作します。Elastic Compute Service(ECS)のシステムディスクまたはデータディスクを作成する際に有効化するか、インスタンス作成後にデータディスクに追加できます。有効化後、ECS インスタンスをホストするディスク上のすべてのデータが自動的に暗号化され、鍵管理インフラストラクチャは不要です。

主な特徴: データは IaaS 運用担当者(物理プロセスエンジニア)には非表示ですが、DBA および PaaS 管理者は引き続きプレーンテキストのデータにアクセスできます。

パフォーマンス: 影響はごくわずかであり、多くの場合検出できません。

透過的データ暗号化(TDE)

TDE は PaaS レイヤーで動作します。データベースエンジンが、ファイルシステムに書き込む前にメモリ上のデータを暗号化し、読み込み時に復号します。暗号化および復号は透過的に行われるため、アプリケーションの変更は不要です。

主な特徴: データは IaaS および PaaS の運用担当者には非表示ですが、DBA は引き続きプレーンテキストのデータにアクセスできます。

パフォーマンス: パフォーマンス損失は、機密テーブルのサイズとデータベースキャッシュのサイズの相対関係によって異なります:

  • テーブルがキャッシュに収まる場合、パフォーマンス損失は無視できます。

  • テーブルがキャッシュより大幅に大きい場合、損失は顕著になる可能性があります。

  • ほとんどのワークロードでは、損失は 5%未満に留まります。極端に高負荷な状況では、最大 20%に達する可能性があります。

列レベルの暗号化

列レベルの暗号化(Always-Confidential Database 機能の Basic Edition)は、データベースカーネルレイヤーで動作します。データベースがクエリ結果をクライアントに送信する前に、そのデータを暗号化します。クライアントは必要な鍵を使用して結果を復号します。これにより、データ所有者とデータ管理者が分離されます:データベースを管理する者が、その中に格納されるデータを閲覧できないようになります。

主な特徴: データは DBA には非表示ですが、ハードウェア強化版へアップグレードしない限り、PaaS および IaaS の運用担当者はストレージレベルでプレーンテキストのデータにアクセス可能です。

必要なアプリケーション変更: Java Database Connectivity(JDBC)ドライバーを EncJDBC に置き換えます。ドライバーの交換以外のコード変更は不要です。

パフォーマンス: パフォーマンス損失は、クエリ結果に含まれる機密データの量に依存し、テーブルやデータベースのサイズには依存しません:

  • 1 行のクエリ:損失はごくわずか

  • 100 万行の暗号化データのクエリ:損失は顕著

  • ほとんどのワークロードでは、損失は 7%未満に留まります。極端に高負荷な状況では、最大 21%に達する可能性があります。

技術アーキテクチャ

以下の表は、3 種類の方式のアーキテクチャ上の違いを示しています。

ディスク暗号化TDE列レベルの暗号化
有効範囲オペレーティングシステムデータベースカーネルデータベースカーネル
暗号化範囲ホストおよび ECS インスタンスデータベースインスタンスデータベースインスタンス
暗号化の粒度インスタンスデータベースおよびテーブル
アプリケーション認識透過的透過的JDBC を EncJDBC に置き換え

各方式の適用タイミング

IaaS レイヤーのコンプライアンス要件を満たす必要がある場合、または物理メディアが盗難・不正コピーされるリスクに対処する場合は、ディスク暗号化をご利用ください。

PaaS および IaaS の運用担当者(OS 管理者など)がデータベースファイルの内容にアクセスすることを防止したいが、アプリケーションの変更は行いたくない場合は、TDE をご利用ください。

DBA が機密データを閲覧することを防止したい場合、またはデータベースとアプリケーション間の通信中のデータを保護したい場合は、列レベルの暗号化をご利用ください。

これらの方式は相互に補完的です。厳格なセキュリティ要件を有する本番環境では、3 種類を併用することが推奨されます。

次のステップ