クラウド環境では、データベースに保存されている機密データは、プラットフォーム管理者によるアクセスや、侵害されたデータベースアカウントを介したアクセスなどのリスクにさらされる可能性があります。完全暗号化データベース機能は、アプリケーションのクライアント内ですべての暗号化操作 (暗号化と復号) を実行することで、これらのリスクを軽減します。データはアプリケーションから離れる前に暗号化され、データベースサーバー内では、転送中、保存中、さらには処理中も常に暗号化されたままです。データベースサーバーは暗号文 (暗号化されたデータ) のみを処理するため、データベース管理者や特権アカウントがアクセスした場合でも、データは解読不能なままです。この機能は、クラウドでのデータ漏洩に対する強力な保護レイヤーを提供します。
仕組み
中核となる原則は、特殊な JDBC ドライバーによって管理されるクライアント側の暗号化です。暗号鍵はユーザーが完全に制御します。
アプリケーション: アプリケーションは、標準の JDBC ドライバーの代わりに、暗号化された JDBC (EncJDBC) ドライバーを使用します。
構成: Data Security Center (DSC) を使用して暗号化ポリシーを定義し、暗号化する必要がある機密データを含むデータベース、テーブル、および列を指定します。
暗号化: アプリケーションがデータを書き込むと、EncJDBC ドライバーはデータをインターセプトし、DSC ポリシーをチェックして、指定された機密列の値を暗号化します。ユーザーが提供および管理するキーを使用します。
データベース: PolarDB-X サーバーは暗号文のみを受信して保存します。クエリやインデックスなどのすべてのデータベース操作は、暗号化されたデータに対して実行されます。
復号: アプリケーションがデータを読み取ると、EncJDBC ドライバーはデータベースから暗号文を取得し、それを復号してからプレーンテキストデータをアプリケーションに返します。
主な特徴
機密データベースの中核となる原則は、データの暗号化と復号が、特定のドライバーである EncJDBC によってアプリケーションクライアント上で実行されることです。データベースサーバーは暗号文のみを保存および処理します。暗号鍵はユーザーが管理し、データベースサーバー上ではホストされません。主な特徴は次のとおりです。
シームレスな統合: アプリケーションのビジネスロジックを変更する必要はありません。標準の JDBC ドライバーを EncJDBC ドライバーに置き換えるだけで、暗号化を有効にできます。
柔軟な暗号化構成: Data Security Center (DSC) を使用して暗号化する列を正確に選択できる柔軟性があり、セキュリティとパフォーマンスのバランスをとることができます。
きめ細かな権限管理: データベースアカウントごとにプレーンテキストまたは暗号文の権限を設定できます。権限付与されたアカウントはプレーンテキストデータにアクセスできますが、O&M エンジニアや開発者などの他のアカウントは、生の暗号文にのみアクセスできます。
キーの保護: 暗号鍵を完全に制御できます。キーは実行時に EncJDBC ドライバーに渡され、クライアントのメモリ内でのみ使用されます。データベースサーバー上に保存されたり、公開されたりすることはありません。
ユースケース
暗号化データベースは、さまざまなビジネスシナリオにおけるさまざまなデータセキュリティの課題に対処できます。以下に、いくつかの典型的なユースケースを示します。
クラウド管理者からアプリケーションデータを保護する: アプリケーション内の機密性の高いビジネスデータをデータベースに送信する前に暗号化します。これにより、クラウドプロバイダーのスタッフやデータベース管理者がプレーンテキストデータを表示できなくなります。
エンドツーエンド暗号化でエンドユーザーのプライバシーを確保する: 機密性の高いユーザーデータ (金融情報や健康情報など) を扱うアプリケーションの場合、暗号化はエンドユーザーのデバイス (モバイルアプリなど) で直接実行できます。これにより、アプリケーションプロバイダーであるあなたでさえも、ユーザーのプレーンテキストデータにアクセスできなくなり、最高レベルのプライバシーが提供されます。
安全なデータ共有を可能にする: 暗号鍵を公開することなく、暗号化されたデータセットを第三者と共有します。これにより、データの所有権を維持し、セキュリティ規制に準拠しながら、安全なビジネスコラボレーションが可能になります。
開始する前に
インスタンスバージョン: polardb-2.5.0_5.4.20-20250714_xcluster8.4.20-20250703 以降。
説明インスタンスのバージョン命名規則の詳細については、「リリースノート」をご参照ください。
インスタンスのバージョンを表示する方法の詳細については、「インスタンスのバージョンを表示および更新する」をご参照ください。
Data Security Center (DSC) を購入済みで、列暗号化権限付与のための十分なクォータがあること。列暗号化機能を有効にしていない場合、またはクォータが不十分な場合は、DSC エディションをスペックアップできます。
説明Data Security Center インスタンスのリージョンが列暗号化機能をサポートしていることを確認してください。詳細については、「サポートされているリージョン」をご参照ください。
課金
暗号化データベース機能自体は無料です。
ただし、その使用は有料サービスである Data Security Center (DSC) に依存します。DSC サブスクリプションに対して課金されます。また、列暗号化権限付与のための十分なクォータがあることを確認してください。料金の詳細については、「課金の概要」をご参照ください。
注意
パフォーマンスオーバーヘッド
クライアント側の暗号化と復号は、アプリケーションサーバーの CPU リソースを消費します。パフォーマンスへの影響は、暗号化された列の数とともに増加します。一般的な TPC-C ベンチマークでは、すべての列を暗号化すると、約 10% のパフォーマンスオーバーヘッドが発生します。セキュリティとパフォーマンスのバランスをとるには、保護が必要な機密列のみを暗号化してください。詳細については、「パフォーマンステストレポート」をご参照ください。
プロトコルの制限
完全暗号化機能は現在、
text プロトコルのみをサポートしています。binary プロトコルはサポートしていません。これは、プリペアドステートメントがバイナリプロトコルに依存するため、アプリケーションが JDBCPreparedStatement呼び出しを使用して暗号化されたデータをクエリできないことを意味します。暗号化された列を含むすべてのクエリは、標準のステートメントを使用して実行する必要があります。