ApsaraDB RDS for MySQL の Always Confidential 機能は、データへの不正アクセスを防ぎ、データ保護規制へのコンプライアンスを確保する暗号化ソリューションを提供します。このトピックでは、機密データを効率的に管理および保護するために、この機能のメリットについて説明します。
すべての SQL 文をサポートし、コード変更なしでアプリケーションに適応
既存のコードを変更することなく、いくつかのコマンドを実行して Always Confidential 機能を使用できます。この機能を使用する場合、クライアントで追加の暗号化および復号操作を実行する必要はありません。
この機能は、すべての SQL 文をサポートしています。 SQL 文を変更することなく、この機能が有効になっている RDS インスタンスで SQL 文を実行できます。たとえば、プレーンテキストで SQL 文を実行して、あいまい一致を実行できます。
この機能は、既存の RDS インスタンスと互換性があります。既存の RDS インスタンスに対してこの機能を有効にすることができます。ロールバックを実行することもできます。
この機能は、Data Transmission Service ( DTS ) と Data Management ( DMS ) などのツールをサポートしており、コード変更なしでアプリケーションのワークロードを移行できます。
データ保護ルールが有効になった後、すべてのデータを暗号文で返す
ビジネス要件に基づいてデータ保護ルールを構成し、保護するデータと、暗号化などのデータ保護方法を指定できます。この機能が有効になっている RDS インスタンスは、クエリ中に保護するデータを自動的に識別し、保護ルールで指定された保護方法を使用して処理されたクエリ結果を返します。これにより、関連するアカウントの資格情報が漏洩した場合でも、第三者がクエリ結果で保護されたデータをプレーンテキストで表示することはできません。
この機能は、指定されたデータ保護ルールに基づいて、加算、減算、集約、JOIN 操作など、保護されたデータを含むさまざまな計算の結果を保護するかどうかを判断します。
テーブルレベルとカラムレベルでデータを暗号化
この機能を使用すると、データ保護ルールに対して、テーブルレベルとカラムレベルで保護するデータを指定できます。
たとえば、カラム A を保護対象カラムとして指定し、暗号化方式を使用してカラムを保護する場合、この機能は指定したキーを使用してカラム A のデータを自動的に暗号化します。暗号化後、キーを持っているユーザーのみが暗号文を復号化し、カラム A のプレーンテキストデータを取得できます。
パフォーマンスオーバーヘッドが最小限
この機能が有効になっている RDS インスタンスのパフォーマンスオーバーヘッドは、この機能が無効になっている RDS インスタンスと同じくらい最小限です。
この機能が有効になっている RDS インスタンスのクエリパフォーマンスは、暗号化されるデータのサイズに反比例します。暗号化されたデータのサイズが大きい場合、RDS インスタンスのパフォーマンスは低下します。
キーを指定でき、機能が無効になった後にキーを自動的に破棄
信頼できる、またはサードパーティのキー管理サービスを使用してキーを取得し、パラメーター設定またはその他の方法を使用してキーを EncJDBC に動的に渡すことができます。 EncJDBC は、Always Confidential 機能用の MySQL JDBC です。 EncJDBC からこの機能を使用する方法の詳細については、「EncJDBC から Always Confidential 機能を使用する」をご参照ください。
データ所有者のみが使用できるキーは、安全な配布メカニズムを通じてクエリで有効になり、使用後に自動的に取り消されるため、盗難の可能性を防ぎます。
キーは更新および回転できます。
クライアントからの複数の接続方法をサポート
Java、Go、Python などのプログラミング言語のクライアントドライバーと SDK を使用して、クライアントからこの機能を使用できます。
クライアントドライバーは、アプリケーションの構成を変更することなく、自動的に復号を完了します。
この機能を使用するための SDK が提供されています。 API 操作を呼び出して、暗号文データを柔軟に処理できます。
データ保護ルールで指定できるデータ保護方法は暗号化です。
クライアントは、クエリ結果の暗号文の復号をサポートしますが、SQL 文の暗号化はサポートしていません。