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

PolarDB:PolarDB Always-confidential の利用

最終更新日:Aug 28, 2026

データベース管理者 (DBA) や開発者などの高い権限を持つロールは、データベースのメンテナンス時に、ユーザーの本人確認情報やトランザクションレコードなどの機密データにアクセスする可能性があります。これにより、データ漏洩のリスクが生じます。PolarDB for MySQL の PolarDB Always-confidential 機能は、データベースプロキシレイヤーでクエリ結果をオンザフライで暗号化します。これにより、特定のドライバーを使用する承認されたアプリケーションのみが機密データを復号してアクセスできるようになります。この機能を使用すると、アプリケーションコードへの変更を最小限に抑えながら、機密データを保護し、コンプライアンス要件を満たすことができます。

仕組み

PolarDB 常時機密機能はデータベースプロキシレイヤーで動作します。 SQL クエリが設定された暗号化ポリシーと一致した場合、プロキシはクライアントにクエリ結果を返す前に、指定されたフィールドのデータを暗号化します。

  • データストレージ:この機能は、データベース内のデータの物理的なストレージ状態を変更しません。データは、オペレーティングシステム (OS) ファイルやディスク上ではプレーンテキストのままです。

  • ユーザー視点:

    • スーパーアカウント:クエリ結果は常にプレーンテキストで返され、暗号化ポリシーの影響を受けません。これにより、データベース管理が容易になります。

    • 標準アカウント:クエリ結果は暗号文として返されます。クライアントでデータを復号するには、EncJDBC ドライバーや GoLang ドライバーなどの特定の暗号化ドライバーと正しいキーが必要です。

    • その他のユーザー:クエリ結果は暗号文として返され、キーがあっても復号できません。

前提条件

お使いの PolarDB for MySQL クラスターのデータベースプロキシは、バージョン 2.9.12 以降である必要があります。

説明
  • バージョン番号の表示:クラスターの現在のデータベースプロキシバージョンは、設定と管理 > バージョン管理 ページで確認できます。

  • バージョン互換性:データベースプロキシのバージョンが 2.9.12 より前で 2.8.18 より後の場合、暗号化ルールの設定インターフェイスは 動的データマスキング 機能と統合されています。最高のエクスペリエンスと機能の独立性を確保するため、バージョン 2.9.12 以降にアップグレードすることを推奨します。

動的暗号化の設定

動的暗号化の設定には、キーの設定、ロール権限の定義、暗号化ポリシーの作成という 3 つの主要なステップがあります。

操作手順

  1. PolarDB コンソールに移動します。左側のナビゲーションペインで、クラスター をクリックし、クラスターが配置されている リージョン を選択し、次にクラスター ID をクリックしてクラスターの詳細ページに移動します。

  2. 左側のナビゲーションペインで、設定と管理 > セキュリティ管理 を選択し、暗号化 タブをクリックします。

ステップ 1:キーの設定

暗号化 ページで、キー管理 スイッチをオンにして、アプリケーション側の暗号化と復号化に使用するキーを設定します。

KMS キー (推奨)

Alibaba Cloud Key Management Service (KMS) を使用してキーをホストできます。KMS は キーのローテーション をサポートし、高いセキュリティと保守性を提供します。KMS へのアクセスに使用される AccessKey (AK) が漏洩した場合でも、AK を無効にするか、ポリシーを厳格化することでリスクを軽減できます。キー自体は侵害されません。

説明

KMS では [カスタマーマスターキー (CMK)] タイプのみがサポートされています。[デフォルトキー] タイプはサポートされていません。詳細については、「キーサービス概要」をご参照ください。

カスタマーマスターキー (CMK) の設定

  1. KMS インスタンスの購入と有効化。

  2. カスタマーマスターキー (CMK) の作成。

  3. PolarDB コンソールに戻り、対応する CMK を選択して、OK をクリックします。

自己管理キー

KMS を設定しない場合、システムはデフォルトで自己管理キーを使用します。キーの生成、配布、保管はお客様の責任となります。

重要

自己管理キーには、紛失や漏洩のリスクがあり、現在キーの更新はサポートされていません。キーを紛失した場合、対応する暗号化データを復号することはできません。キーを管理するためには、厳格なセキュリティ手順を確立する必要があります。

ステップ 2:ロール権限の定義

暗号化 ページの ユーザーロール権限の設定 タブで、さまざまなデータベースアカウントのロールを設定します。これにより、データを照会するときにプレーンテキストと暗号文のどちらが表示されるかが決まります。

  1. [ロール権限ポリシーの作成] をクリックします。

  2. ロール権限の設定ダイアログボックスで、ポリシー名を設定し、データベースアカウントをロールに割り当てます。

    1. [権限ポリシー名]: ポリシーの名前を指定します。名前は最大 64 文字です。

    2. [スーパー管理者]:データベースアカウントのチェックボックスを選択します。複数のアカウントを選択できます。このリストのデータベースアカウントは、常にクエリ結果をプレーンテキストで受信します。

      説明

      スーパー管理者 ロールは最高の権限を持ちます。このリストには、必要な管理アカウントまたは監査アカウントのみを追加し、その使用を厳密に制御してください。

    3. [一般ユーザー]:データベースアカウントのチェックボックスを選択します。 複数のアカウントを選択できます。 このリストにあるデータベースアカウントは、クエリ結果を暗号文として受信しますが、特定の暗号化ドライバーとキーを使用してデータを復号できます。

    説明

    その他のユーザー:上記の 2 つのロールで設定されていないデータベースアカウント。これらのユーザーは、クエリ結果を暗号文として受け取り、データを復号することはできません。

ステップ 3:暗号化ポリシーの作成

暗号化 ページで、暗号化ポリシーの設定 タブに移動して暗号化ポリシーを設定します。

  1. [暗号化ポリシーの作成] をクリックします。

  2. 表示されるダイアログボックスで、次の表の説明に従ってポリシーパラメーターを設定します。

    説明

    正確な暗号化範囲の指定:ポリシーを作成するときは、必ずデータベース、テーブル、フィールド名を明示的に指定してください。無関係なサービスに影響を与えないように、すべてのデータベースまたはすべてのテーブルに適用される設定は使用しないでください。

    パラメーター

    説明

    [ルール名]

    必須。ポリシーの一意の識別子。例:encrypt-user-email。最大 64 文字です。

    [説明]

    任意。ポリシーの詳細な説明。例:customer データベースの user テーブルの email フィールドを暗号化する。最大 64 文字です。

    [ON/OFF]

    ポリシーを有効または無効にするスイッチ。ポリシーはデフォルトで有効になっており、作成中は変更できません。この設定は、ポリシーを作成した後に変更できます。

    [権限ポリシーの関連付け]

    必須。 ステップ2で設定したロール権限 を選択します。

    [データベース]

    任意。ポリシーが適用されるデータベース。次のいずれかのオプションを選択できます:

    • (デフォルト) すべてのデータベース:ポリシーはクラスター内のすべてのデータベースに適用されます。

    • データベースの指定:この設定は、指定されたデータベースにのみ適用されます。複数のデータベース名を区切るには、カンマ , を使用します。

    [テーブル名]

    任意。ポリシーが適用されるテーブル。次のいずれかのオプションを選択できます:

    • (デフォルト) すべてのテーブル:ポリシーは、指定されたデータベース内のすべてのテーブルに適用されます。

    • テーブルの指定:指定されたテーブルにのみ適用されます。複数のテーブル名を区切るには、カンマ , を使用します。

    [列名]

    必須。暗号化するフィールドの名前。カンマ , で区切ります。

    [暗号化アルゴリズム]

    必須。暗号化に使用するアルゴリズム。この機能は、次のアルゴリズムをサポートしています:

    • SM4 シリーズ:SM4-128-CBC、SM4-128-ECB、SM4-128-GCM、SM4-128-GTR。

    • AES-128 シリーズ:AES-128-CBC、AES-128-ECB、AES-128-GCM、AES-128-GTR。

    • AES-256 シリーズ:AES-256-CBC、AES-256-ECB、AES-256-GCM、AES-256-GTR。

  3. OK をクリックしてポリシーを作成します。

ステップ 4:暗号化ポリシーの管理

暗号化 ページの 暗号化ポリシーの設定 タブで既存のポリシーを管理します。

  • ポリシーの変更: 対象のルールを見つけ、操作 列の Modify をクリックします。

  • ポリシーの削除: 対象のルールを探し、操作 列の 削除 をクリックし、表示されたダイアログボックスで OK をクリックします。

  • ポリシーの有効化または無効化:対象のルールを見つけ、ON/OFF 列のスイッチをクリックします。

セキュリティ強化

コンソール権限を持つ DBA や開発者が暗号化ポリシーを悪意を持って改ざんしたり削除したりするのを防ぐために、Resource Access Management (RAM) を使用してセキュリティを強化できます。

基本原則

関連担当者向けに個別のRAM ユーザーを作成し、PolarDB を管理する権限を付与しますが、暗号化ポリシーを変更または削除する権限は明示的に拒否します。

手順

  1. 拒否ポリシーの作成

    1. RAM コンソールにログインします。 左側のナビゲーションペインで、[権限] > [ポリシー] を選択します。 [ポリシーの作成] をクリックしてカスタムポリシーを作成します。

    2. ビジュアルエディター タブで、次のパラメーターを設定します:

      • 効果: 拒否。

      • サービス: [PolarDB]。

      • [操作]: [アクションの指定] を選択します。[書き込み操作] で、polardb:ModifyMaskingRules と polardb:DeleteMaskingRules を選択します。

      • リソース および [条件]: ポリシーが適用されるリソースと、それが有効になる条件を指定します。詳細については、「ポリシーの基本要素」をご参照ください。

      • 設定を完了したら、OK をクリックします。[ポリシーの作成] ダイアログボックスで、[ポリシー名] と 発言 を設定します。

  2. RAM ユーザー権限の設定

    1. RAM コンソールにログインします。左側のナビゲーションペインで、[ID] > Users を選択します。目的の RAM ユーザーを見つけ、操作 列の [権限を追加] をクリックします。

    2. [ポリシー] セクションで、作成した拒否ポリシーを選択し、次に [OK] をクリックします。

結果

制限された RAM ユーザーが暗号化ポリシーを変更または削除しようとすると、コンソールに [権限がありません] というエラーが表示されます。エラーは、現在の操作が明示的に拒否されたことを示し、エラーコード Forbidden.RAM と認証アクション polardb:ModifyEncryptionPolicy が表示されます。ポリシータイプはアイデンティティベースのポリシー (アカウントレベル) で、権限の決定は明示的な拒否です。ユーザーは、アカウント管理者に連絡して承認を得る必要があります。

次のステップ

暗号化ルールを設定した後、アプリケーションは EncJDBC ドライバーや GoLang ドライバーなどの暗号化対応ドライバーを使用して、暗号化されたデータを正しく読み書きする必要があります。

よくある質問

暗号化ポリシーを設定しましたが、データベースクライアントからデータをクエリすると、なぜプレーンテキストが表示されるのですか?

データベースにログオンするアカウントを確認してください。アカウントがスーパー管理者として設定されている場合、管理を容易にするため、クエリ結果は常にプレーンテキストで表示されます。暗号文の結果を表示するには、一般ユーザーとして設定されているアカウントでテストしてください。

暗号化が機能していることを確認するにはどうすればよいですか?

コマンドラインや Navicat などの標準の MySQL クライアントを使用して、スーパー管理者 リストにないデータベースアカウントでデータベースに接続します。 次に、暗号化されたフィールドをクエリします。 暗号文が表示された場合、クエリ結果がデータベースプロキシレイヤーでオンザフライで暗号化されていることを示します。

スーパーアカウントロールのリスクは何ですか?

スーパー管理者 ロールは、暗号化保護を完全に回避して、平文データを直接読み取ることができます。データ修正、移行、監査など、絶対に必要なシナリオでのみ一時的にこのロールを使用することをお勧めします。使用後すぐにアカウントをこのロールから削除し、すべての操作の完全な監査証跡を維持してください。