Data Security Center (DSC) の列暗号化機能は、データベース内の特定の列をストレージ用に暗号化することでデータを保護します。この機能は、RDS for MySQL、RDS for PostgreSQL、PolarDB for MySQL、PolarDB for PostgreSQL、PolarDB for PostgreSQL (Compatible with Oracle)、および PolarDB-X 2.0 などのデータベース内の機密データを保護します。これにより、権限のない担当者がクラウドプラットフォームソフトウェアやデータベース接続ツールを使用してプレーンテキストで機密データに直接アクセスすることを防ぎます。これにより、内外のセキュリティ脅威を軽減し、データセキュリティを確保できます。
機能紹介
Data Security Center の列暗号化機能には、暗号化設定とアカウント権限管理の 2 つの主要な部分が含まれます。暗号化設定では、暗号化アルゴリズム、メソッド、およびデータベースインスタンス、データベース、テーブル、列などの範囲を定義します。アカウント権限管理は、どのデータベースアカウントが暗号化されたデータにアクセスできるか、およびその権限を制御します。
暗号化の原則
暗号化アルゴリズム: 列暗号化では、SM4_128_GCM、AES-128-GCM、AES-256-GCM などの業界標準の暗号化アルゴリズムを使用して、指定された列のデータを暗号化します。
暗号化メソッド: 列暗号化は、指定されたデータベースの暗号鍵を管理するための 2 つのメソッドをサポートしています。
ローカルキー: ローカル環境で暗号鍵を生成して保存します。
KMS キー (推奨): Key Management Service (KMS) を使用して、指定されたデータベースの暗号鍵をホストします。DSC は、KMS で作成または管理するカスタマーマスターキーの使用をサポートしています。キータイプの詳細については、「キータイプ」をご参照ください。
アカウント権限:
アカウントとは、DSC に承認されたデータベースからプルされたデータベースアカウントを指します。サポートされているデータベースには、RDS for MySQL、RDS for PostgreSQL、PolarDB for MySQL、PolarDB for PostgreSQL、PolarDB for PostgreSQL (Compatible with Oracle)、および PolarDB-X 2.0 が含まれます。
権限は次のとおりです。
権限
説明
暗号文権限 (JDBC 復号)
デフォルトでは、アカウントは暗号化された列の暗号文にアクセスできます。アカウントは、SDK を介して always-confidential クライアントドライバー を使用し、ローカルキーまたは KMS キーでデータを復号してプレーンテキストを表示できます。
暗号文権限 (復号権限なし)
アカウントは、暗号化された列の暗号文にのみアクセスできます。いかなる手段でもデータを復号してプレーンテキストを表示することはできません。
プレーンテキスト権限
データベースの列暗号化を有効にした後、プレーンテキスト権限を持つアカウントは暗号化設定の影響を受けず、暗号化された列のプレーンテキストデータに直接アクセスできます。
データベースの暗号化制限
サポートされているデータベースの種類 | サポートされているバージョン | サポートされている暗号化アルゴリズム | サポートされている暗号化メソッド | サポートされている権限 |
RDS for MySQL | メジャーバージョンは MySQL 5.7 または MySQL 8.0 で、マイナーエンジンバージョンは 20240731 以降です。 |
説明 中国本土以外のリージョンでは、AES_128_GCM のみがサポートされています。 |
|
|
RDS for PostgreSQL | メジャーバージョンは PostgreSQL 16 で、マイナーエンジンバージョンは 20241230 以降である必要があります。 | AES_256_GCM。 | ローカルキー。 |
|
PolarDB for MySQL | メジャーバージョンは MySQL 5.7 または MySQL 8.0 で、データベースプロキシのバージョンは 2.8.36 以降である必要があります。 重要 PolarDB for MySQL データベースに列暗号化ポリシーを設定する場合、データベースプロキシエンドポイント (読み書き分離モード) を使用してデータベースに接続する必要があります。プライマリエンドポイントを使用する場合、列暗号化ポリシーは有効になりません。詳細については、「データベースプロキシの設定」および「エンドポイントの管理」をご参照ください。 | AES_128_GCM。 | ローカルキー。 | |
PolarDB for PostgreSQL | メジャーバージョンは PostgreSQL 14 で、データベースバージョンは 2.0.14.15.31.0 以降です。 | AES_256_GCM。 | ローカルキー。 | |
PolarDB for PostgreSQL (Compatible with Oracle) | Oracle 構文互換性 2.0 のみがサポートされています。メジャーバージョンは PostgreSQL 14 で、データベースバージョンは 2.0.14.15.31.0 以降です。 | AES-256-GCM。 | ローカルキー。 | |
PolarDB-X 2.0 | データベースバージョンは polardb-2.5.0_5.4.20-20250714_xcluster8.4.20-20250703 以降です。 |
| ローカルキー。 |
課金
DSC は、1 つの列を暗号化するための無料クォータを提供します。より多くの列を暗号化するには、[列暗号化] サービスを有効にし、十分な [暗号化列数] を購入する必要があります。このサービスはサブスクリプションベースで課金されます。課金の詳細については、「課金の概要」をご参照ください。
列暗号化構成で [暗号化メソッド] を [KMS キー] に設定した場合、KMS はキーをホストするための料金を請求します。課金の詳細については、「プロダクトの課金」をご参照ください。
使用フロー
列暗号化の構成フロー
次の図は、ターゲットデータベースの列暗号化を構成するフローを示しています。詳細については、「データベースの列暗号化を構成する」をご参照ください。
暗号化された列データへのアクセス例
列暗号化を構成した後、暗号文権限を持つデータベースアカウントが暗号化された列をクエリすると、データベースはデータを暗号文で返します。クライアントでデータを復号してプレーンテキストを取得できます。これにより、クライアントとデータベース間の転送中にデータが暗号化されたままであることが保証されます。
クライアントの使用
Alibaba Cloud は、Java および Go 用の always-confidential クライアントドライバーを提供しています。暗号文権限 (JDBC 復号) を持つデータベースアカウントを使用して、ターゲットデータベースの暗号化された列のプレーンテキストデータを復号してアクセスできます。
プログラミング言語 | サポートされているデータベースタイプ | 参照 |
Java |
| EncJDBC の統合 (ローカルキーと KMS キーを使用した復号をサポート) |
Go |
| Go ドライバーの統合 (ローカルキーを使用した復号のみをサポート) |