Data Security Center (DSC) が提供するカラム暗号化は、ApsaraDB RDS for PostgreSQL の機密性の高いカラムデータをデータベースレベルで暗号化して保護します。データ所有者は、常に機密性が保たれるクライアントを介してデータをプレーンテキストで読み取ることができますが、データベース管理者やクラウドプラットフォームのオペレーター (データベースに直接アクセスできる権限を持つ者も含む) には暗号文しか表示されません。この、データを所有する者とデータベースインフラを管理する者との分離が、本機能の核となるセキュリティ保証です。
前提条件
開始する前に、以下が満たされていることを確認してください。
-
マイナーエンジンバージョンが 20250228 以降の ApsaraDB RDS for PostgreSQL 16 インスタンス
-
サポートされている以下のいずれかのリージョンで実行されているインスタンス:
-
中国本土:中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (杭州)、中国 (上海)、中国 (深圳)、中国 (広州)、中国 (成都)
-
中国本土以外:中国 (香港)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、ドイツ (フランクフルト)
-
仕組み
DSC は、ローカルキー暗号化方式として AES-256-GCM 暗号化アルゴリズムを使用します。機密性の高いカラムは、データベースに暗号文として保存されます。データベースアカウントには、以下の 2 種類の権限があります。
-
[プレーンテキスト権限]: アカウントは暗号化されたカラムをクエリし、プレーンテキストを直接受け取ることができます。この権限は、機密データを読み取る必要があるデータ所有者に割り当てます。
-
[暗号文権限 (JDBC 復号)]: アカウントは暗号文を受け取り、カラム暗号化 JDBC ドライバーを使用してローカルで復号できます。これは、暗号化が有効になった後のすべてのアカウントのデフォルト権限です。この権限は、Java コードを使用してデータベースにアクセスするアプリケーションに割り当てます。
DSC でインスタンスの暗号化チェックに失敗した場合、カラム暗号化は設定できません。一般的な原因は、データベースのメジャーバージョンが PostgreSQL 16 ではない、マイナーエンジンバージョンが 20250228 より古い、またはインスタンスが読み取り専用インスタンスであることです。解決手順については、「よくある質問」をご参照ください。
カラム暗号化の設定
カラム暗号化の設定には、DSC の有効化、DSC によるクラウドリソースへのアクセス承認、RDS インスタンスの承認、データベースへの接続、特定カラムの暗号化の有効化の 5 つのステップが含まれます。
ステップ 1: DSC の有効化またはアップグレード
ステップ 2: DSC によるクラウドリソースへのアクセス承認
ステップ 3: RDS データベースインスタンスの承認
ステップ 4: データベースへの接続と機密データ識別タスクの実行
ステップ 5: カラム暗号化の有効化
-
Data Security Center コンソールにログインします。左側メニューで、[リスクガバナンス] > [カラム暗号化] を選択します。
重要カラム暗号化を有効にして設定する前に、[暗号化チェック] 列に [合格] と表示されている必要があります。 [失敗] と表示されている場合は、「よくある質問」をご参照ください。
-
データベースインスタンスリストの上にある [高速暗号化] をクリックして、インスタンス全体で暗号化されていないすべてのカラムの暗号化を設定してください。 または、特定のデータベースインスタンスの [操作] 列にある [高速暗号化] をクリックして、そのインスタンスにスコープを限定してください。

-
[暗号化設定] パネルで、[アセットタイプ]、[インスタンス名]、[プレーンテキスト権限アカウント]、および対象の [データベース]、[テーブル]、[カラム] を選択し、[OK] をクリックしてください。 次の点にご注意ください:
-
RDS PostgreSQL は、AES-256-GCM 暗号化アルゴリズムとローカルキー暗号化方式のみをサポートします。
-
暗号化が設定されると、すべてのデータベースアカウントはデフォルトで [暗号文権限 (JDBC 復号)] になります。 この権限を持つアカウントは、デフォルトで暗号文にアクセスし、JDBC クライアントを使用してローカルで復号します。
-
アカウントに直接プレーンテキストへのアクセスを許可するには、[プレーンテキスト権限アカウント] に追加してください。
-
暗号化設定の変更
暗号化カラムの範囲変更
カラム暗号化を有効にした後、いつでも暗号化するカラムを調整できます。
-
Data Security Center コンソールにログインします。左側メニューで、[リスクガバナンス] > [カラム暗号化] を選択します。
-
インスタンスリストで、対象のインスタンスを展開します。対象の [データベース]、[テーブル]、[カラム] を見つけ、[暗号化を有効化] または [暗号化を無効化] をクリックしてください。

アカウント権限の変更
すべてのアカウントは、明示的に [プレーンテキスト権限] に設定されていない限り、デフォルトで [暗호文権限 (JDBC 復号)] になります。 各アカウントの役割に基づいて権限を変更してください。
-
[プレーンテキスト権限]: コンソールや DMS を介して機密データを直接読み取る必要があるデータ所有者向け。
-
[暗号文権限 (JDBC 復号)]: JDBC を介してデータベースにアクセスし、ローカルで復号するアプリケーションや管理者向け。
権限を変更するには:
-
Data Security Center コンソールにログインします。
-
[リスクガバナンス] > [カラム暗号化] ページで、[権限設定] セクションの [アカウント] をクリックしてください。または、インスタンスの [操作] 列にある [編集] をクリックし、[設定] パネルの [アカウント権限] をクリックしてください。
-
[権限設定] パネルで、対象のインスタンスとアカウントを検索して現在の権限を表示してください。
説明 新しく追加したデータベースアカウントがリストに表示されない場合は、まず [アセット同期] を実行してから再度確認してください。 -
対象アカウントの [操作] 列にある [権限の変更] をクリックしてください。一度に複数のアカウントに同じ権限を更新するには、それらを選択して [権限の一括変更] をクリックしてください。
-
[権限の変更] ダイアログボックスで、対象の権限を選択し、[OK] をクリックしてください。
カラム暗号化の検証
この例では、students01 テーブルの birth_date カラムを使用します。 一方のデータベースアカウントには [プレーンテキスト権限] があり、もう一方には [暗号文権限 (JDBC 復号)] があります。
-
RDS PostgreSQL 16 インスタンスを DSC に接続し、機密データの分類を完了し、対象カラムのカラム暗号化を有効にしてください。 一方のアカウントを [プレーンテキスト権限] に設定し、もう一方を [暗号文権限 (JDBC 復号)] のままにしてください。

-
[暗号文権限 (JDBC 復号)] を持つアカウントで Data Management Service (DMS) にログインしてください。
SELECT * FROM students01;を実行してください。 暗号化されたカラムは暗号文を返します。
-
[プレーンテキスト権限] を持つアカウントで DMS にログインしてください。
SELECT * FROM students01;を実行してください。 暗号化されたカラムはプレーンテキストを返します。
アプリケーションからの暗号化カラムへのアクセス
[暗号文権限 (JDBC 復号)] を持つアカウントの場合、カラム暗号化 JDBC ドライバーを使用して、Java アプリケーションから暗号化されたカラムデータにアクセスします。 ドライバーは結果を返す前に暗号文を自動的に復号するため、アプリケーション側ではこのプロセスが透過的に処理されます。
よくある質問
RDS インスタンスが暗号化チェックに失敗した場合はどうすればよいですか?
次のステップ
-
カラム暗号化のアーキテクチャと原則については、「カラム暗号化の概要」をご参照ください。
-
承認後に機密カラムデータが変更された場合は、データベースを再スキャンしてください。 詳細については、「検出タスクによる機密データのスキャン」をご参照ください。

