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

Data Security Center:列レベルの暗号化

最終更新日:Apr 30, 2026

Data Security Center (DSC) の列レベルの暗号化機能は、ApsaraDB RDS for MySQL、ApsaraDB RDS for PostgreSQL、PolarDB for MySQL、PolarDB for PostgreSQL、PolarDB for PostgreSQL (Oracle Compatible)、および PolarDB-X 2.0 などのデータベース内の特定の列を暗号化します。この機能により、不正ユーザーがクラウドプラットフォームソフトウェアやデータベース接続ツールを通じてプレーンテキストの機密データにアクセスするのを防ぎ、内部および外部のセキュリティ脅威を軽減します。

メリット

  • アプリケーションの変更不要:クライアントドライバーが自動的に暗号化および復号を処理するため、アプリケーションに対して透明であり、導入コストを削減できます。

  • 低オーバーヘッド:TPC-C ベンチマークテストによると、パフォーマンスはプレーンテキスト操作の 93 % 以上を達成します。

  • エンドツーエンドの暗号保護:重要なデータは常に暗号文として返されます。データベースアカウントの認証情報が漏洩した場合でも、データは安全に保たれます。

  • 完全な SQL サポート:暗号化されたデータに対しても、すべてのネイティブ SQL クエリ関数が機能制限なくサポートされます。

  • 安全な鍵管理:使用する鍵を指定できます。サービスが終了すると鍵は即座に削除され、鍵の更新およびローテーションもサポートされています。

基本概念

DSC における列レベルの暗号化は、暗号化設定アカウント権限管理の 2 つの主要部分で構成されます。暗号化設定では、暗号化アルゴリズム、方法、および対象範囲(データベースインスタンス、データベース、テーブル、列)を定義します。アカウント権限管理では、どのデータベースアカウントが暗号化されたデータにアクセスできるか、およびその権限レベルを制御します。

  • 暗号化アルゴリズム:列レベルの暗号化では、業界標準の SM4-128-GCMAES-128-GCM、および AES-256-GCM 暗号化アルゴリズムを使用して、指定された列のデータを暗号化します。

  • 暗号化方法:列レベルの暗号化では、指定されたデータベースの暗号鍵を管理する方法として、ローカル鍵 および KMS 鍵 の 2 種類をサポートしています。

    • ローカル鍵:暗号鍵はご利用のローカル環境で生成・保管されます。

    • KMS 鍵(推奨)Key Management Service (KMS) を使用して、指定されたデータベースの暗号鍵をホストします。DSC では、KMS で作成・管理する Customer Master Key の使用をサポートしています。鍵タイプの詳細については、「Key types」をご参照ください。

  • アカウント権限:

    アカウントとは、ご利用の ApsaraDB RDS for MySQL、ApsaraDB RDS for PostgreSQL、PolarDB for MySQL、PolarDB for PostgreSQL、PolarDB for PostgreSQL (Oracle Compatible)、および PolarDB-X 2.0 インスタンスから取得されたデータベースアカウントであり、DSC がアクセスを許可されたものです。

    以下の表は、利用可能な権限を示しています。

    権限

    説明

    Ciphertext Permission (JDBC Decryption)

    この権限を持つアカウントはデフォルトで、暗号化された列の暗号文にアクセスできます。SDK および常時機密クライアントドライバーを使用して、ローカル鍵またはKMS 鍵でデータを復号し、プレーンテキストを表示できます。

    Ciphertext Permission (No Decryption Permission)

    このアカウントは、暗号化された列の暗号文にのみアクセスできます。いかなる手段でもデータを復号することはできません。

    Plaintext Permissions

    データベースで列レベルの暗号化が有効になると、この権限を持つアカウントは暗号化設定をバイパスし、暗号化された列のプレーンテキストデータに直接アクセスできます。

クォータと制限事項

データベースタイプ

バージョン

暗号化アルゴリズム

暗号化方法

権限

ApsaraDB RDS for MySQL

メジャーエンジンバージョンが MySQL 5.7 または MySQL 8.0、マイナーエンジンバージョンが 20240731 以降である必要があります。

  • AES-128-GCM。

  • AES-256-GCM:マイナーエンジンバージョンが 20241231 以降の場合にのみサポートされます。

  • SM4-128-GCM:マイナーエンジンバージョンが 20241231 以降の場合にのみサポートされます。

  • ローカル鍵。

  • KMS 鍵:マイナーエンジンバージョンが 20241231 以降かつストレージタイプがクラウドディスクの場合にのみサポートされます。

  • 暗号文権限(復号不可):ローカル鍵を使用する場合にのみサポートされます。これはデフォルトの権限です。

  • 暗号文権限(JDBC 復号):KMS 鍵を使用する場合のデフォルト権限です。

  • プレーンテキスト権限。

ApsaraDB RDS for PostgreSQL

メジャーエンジンバージョンが PostgreSQL 16、マイナーエンジンバージョンが 20241230 以降である必要があります。

AES-256-GCM。

ローカル鍵。

  • 暗号文権限(JDBC 復号)(デフォルト)。

  • プレーンテキスト権限。

PolarDB for MySQL

メジャーエンジンバージョンが MySQL 5.7 または MySQL 8.0、データベースプロキシバージョンが 2.8.36 以降である必要があります。

重要

PolarDB for MySQL クラスターに対して列レベルの暗号化ポリシーを設定する場合は、クラスターエンドポイントを使用してクラスターに接続する必要があります。プライマリエンドポイントを使用した場合、列レベルの暗号化ポリシーは適用されません。詳細については、「Configure database proxy」および「Manage endpoints」をご参照ください。

AES-128-GCM。

ローカル鍵。

PolarDB for PostgreSQL

メジャーエンジンバージョンが PostgreSQL 14、データベースバージョンが 2.0.14.15.31.0 以降である必要があります。

AES-256-GCM。

ローカル鍵。

PolarDB for PostgreSQL (Oracle Compatible)

Oracle 構文互換バージョン 2.0 のみサポートされます。メジャーエンジンバージョンが PostgreSQL 14、データベースバージョンが 2.0.14.15.31.0 以降である必要があります。

AES-256-GCM。

ローカル鍵。

PolarDB-X 2.0

シリーズが Enterprise Edition である必要があります。データベースバージョンが polardb-2.5.0_5.4.20-20250714 以降である必要があります。

  • AES-128-GCM。

  • AES-256-GCM:データベースバージョンが polardb-2.5.0_5.4.21-20260414 以降の場合にのみサポートされます。

  • SM4-128-GCM。

  • ローカル鍵。

  • KMS 鍵:データベースバージョンが polardb-2.5.0_5.4.21-20260414 以降の場合にのみサポートされます。

課金

DSC では、1 列分の暗号化について無料クォータを提供しています。複数の列を暗号化するには、Column Encryptionサービスを有効化し、十分な数の暗号化列数を購入する必要があります。このサービスはサブスクリプション制です。詳細については、「Billing」をご参照ください。

列レベルの暗号化設定で暗号化方法KMS 鍵に設定した場合、KMS から鍵ホスティング料金が発生します。詳細については、「Product Billing」をご参照ください。

ワークフロー概要

列レベルの暗号化ワークフロー

次の図は、データベースの列レベルの暗号化を設定するワークフローを示しています。詳細については、「Configure column encryption for a database」をご参照ください。

暗号化データへのアクセス

列レベルの暗号化を設定後、暗号文権限を持つデータベースアカウントが暗号化された列をクエリすると、データベースは暗号文のみを返します。その後、クライアント側でデータを復号してプレーンテキストを取得できます。このプロセスにより、クライアントとデータベース間のデータ転送中にデータが暗号化された状態に保たれます。

クライアントの使用方法

Alibaba Cloud は、Java および Go 向けの常時機密クライアントドライバーを提供しています。暗号文権限(JDBC 復号)を持つデータベースアカウントを使用して、対象データベースの暗号化された列のプレーンテキストデータを復号およびアクセスできます。

言語

データベースタイプ

ドキュメント

Java

  • ApsaraDB RDS for MySQL

  • ApsaraDB RDS for PostgreSQL

  • PolarDB for MySQL

  • PolarDB for PostgreSQL

  • PolarDB for PostgreSQL (Oracle Compatible)

  • PolarDB-X 2.0

Integrate EncJDBC(ローカル鍵および KMS 鍵による復号をサポート)

Go

  • ApsaraDB RDS for MySQL

  • PolarDB for MySQL

  • PolarDB-X 2.0

Integrate GoLang driver(ローカル鍵による復号のみサポート)