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

Data Security Center:列暗号化

最終更新日:Jan 07, 2025

Data Security Center (DSC) は、ApsaraDB RDS for MySQL データベースのテーブルにある特定の機密データ列を暗号化する列暗号化機能を提供します。これにより、権限のない担当者がクラウドプラットフォームソフトウェアまたはデータベース接続ツールを使用して機密のプレーンテキスト列データにアクセスすることを防ぎます。データベース内のデータは利用可能ですが、非表示であるため、外部および内部ソースからのセキュリティ脅威を効果的に軽減します。これにより、クラウドデータがプライベート資産であり続けることが保証されます。

機能の説明

DSC の列暗号化機能には、暗号化設定とアカウント権限管理が含まれます。暗号化設定では、暗号化アルゴリズムと、暗号化する ApsaraDB RDS データベース、テーブル、および列の範囲を定義します。アカウント権限管理は、暗号化されたすべての列データへのデータベースアカウントのアクセスを制御するために使用されます。

サポートされている ApsaraDB RDS データベース

MySQL 5.7 または MySQL 8.0 を実行し、マイナーエンジンバージョンが 20240731 以降の ApsaraDB RDS データベースインスタンス

仕組み

データベースの列暗号化を有効にし、必要な権限を持つアカウントを使用してテーブル内の暗号化された列のデータをクエリすると、ApsaraDB RDS は暗号化されたデータを返します。暗号化されたデータは、アプリケーションクライアントでのみプレーンテキストに復号化できます。これにより、データベースとアプリケーションクライアントの外部への転送中にデータが暗号化されたままになります。

  • アカウント: DSC へのアクセス権が付与されている ApsaraDB RDS for MySQL データベースアカウント。

  • 暗号文権限: データベースの暗号化列機能を有効にすると、すべてのデータベースアカウントに暗号文権限が自動的に付与されます。アカウントを使用して、暗号化された列の暗号文データのみにアクセスできます。アカウント内で列のプレーンテキストデータを表示するには、SDK と対応する復号化キーを使用してデータを復号化します。

  • プレーンテキスト権限: データベースの列暗号化を有効にした後、プレーンテキスト権限が付与されているアカウントは、暗号化された列のデータにプレーンテキストで引き続きアクセスできます。

課金

DSC は 1 つの列を無料で暗号化できます。複数の列を暗号化するには、[列暗号化] を有効にし、サブスクリプション課金方法に基づいて十分な [列] クォータを購入する必要があります。詳細については、「課金概要」をご参照ください。

前提条件

列暗号化統計の概要

ApsaraDB RDS for MySQL インスタンスを DSC に接続します。左側のナビゲーションペインで、[データガバナンス] > [列暗号化] を選択します。 [列暗号化] ページで、接続されている ApsaraDB RDS for MySQL 5.7 および 8.0 インスタンスのリストと、データベース、テーブル、列、機密データ識別結果などの情報を表示できます。

  1. DSC コンソール にログオンします。

  2. 左側のナビゲーションペインで、[リスクガバナンス] > [列暗号化] を選択します。

  3. RDS インスタンスリストで、インスタンス名、リージョン、暗号化チェック結果などの情報を表示できます。リストの上部にある識別テンプレート、識別モデル、または機密レベルで、管理する RDS インスタンスを検索できます。

    RDS インスタンスを展開して、インスタンスのデータベース、テーブル、列、および機密データ識別結果を表示します。

    image

  4. RDS インスタンスリストの左上隅に、列の総数、機密列、暗号化された列、暗号化されていない列、および失敗した列が表示されます。機密列は、機密レベルが S3 以上の列です。暗号化された列は、列暗号化が有効になって有効になっている列です。失敗した列は、列暗号化が有効になっているが有効になっていない列です。

    説明

    上記の列は、機密データ識別結果で機密レベルが S3 以上の列です。

  5. RDS インスタンスリストの右上隅に、データベースアカウントと対応する権限が表示されます。

    [アカウント合計]: 各データベースの各アカウントは、個別のデータベースアカウントと見なされます。たとえば、アカウント C がデータベース A とデータベース B の両方に存在する場合、2 つの異なるデータベースアカウントとしてカウントされます。

    [暗号化が構成されていないアカウント]: データベースのすべての列で列暗号化が無効になっています。データベースのすべてのアカウントは、すべての列のデータにアクセスできます。

    [プレーンテキスト権限] または [暗号文権限]: データベースの列暗号化を有効にした後、データベースアカウントの権限を構成して、暗号化された列データにアクセスできるようにすることができます。

列暗号化の構成

Data Governance > Column Encryption を選択します。 [列暗号化] ページで、[暗号化チェック] パラメーターの値が RDS インスタンスリストで [合格] であるインスタンスの列暗号化を構成できます。

説明

[暗号化チェック] パラメーターの値が [失敗] の場合、データベースバージョンまたはエンジンバージョンは列暗号化機能をサポートしていません。データベースバージョンまたはエンジンバージョンを手動でアップグレードする必要があります。詳細については、FAQ をご参照ください。

列暗号化を有効にする

  1. 左側のナビゲーションペインで、[リスクガバナンス] > [列暗号化] を選択します。

  2. 次のいずれかの方法で列暗号化を有効にできます。

    迅速な暗号化 (一度に複数の列の暗号化)

    1. RDS インスタンスリストの上部にある [暗号化済み] フィールドの下の [迅速な暗号化] をクリックします。

      暗号化するインスタンスの [アクション] 列にある [迅速な暗号化] をクリックすることもできます。

    2. 表示されるパネルで、パラメーターを構成し、[OK] をクリックします。次の表にパラメーターを示します。

      image

      パラメーター

      説明

      インスタンス名

      列暗号化を構成する RDS インスタンスの名前。

      暗号化アルゴリズム

      [AES-128-GCM] 暗号化アルゴリズムのみがサポートされています。

      プレーンテキスト権限アカウント

      暗号化構成が完了すると、データベースインスタンスのすべてのアカウントに暗号文権限が付与されます。ホワイトリストに追加されたアカウントを選択して、プレーンテキスト権限を使用して暗号化された列データにアクセスできます。

      列の構成

      暗号化するデータベース、テーブル、および列を選択できます。

      識別テンプレート、識別モデル、機密レベル、データベース名、またはテーブル名で暗号化された列情報を検索できます。

    暗号化を有効にする (一度に 1 つの列の暗号化)

    RDS インスタンスリストで、目的のインスタンスを展開し、暗号化する列を見つけ、[アクション] 列の [暗号化を有効にする] をクリックします。デフォルトの暗号化アルゴリズム [AES-128-GCM] を使用して列を暗号化します。

    image

暗号化された列の範囲を変更する

暗号化構成が完了したら、インスタンスの [アクション] 列にある [編集] をクリックして、暗号化された列の範囲を変更できます。インスタンスを展開し、インスタンスリストで [列] 名を見つけることもできます。次に、[暗号化を有効にする] または [暗号化を無効にする] をクリックします。

データベースアカウント権限の変更

列暗号化が有効になって有効になっている場合、ビジネス要件に基づいてデータベースアカウントの権限を変更して、アカウントがプレーンテキストでデータにアクセスしたり、暗号文データを復号化したりできるようにすることができます。

  1. Data Governance > Column Encryption を選択します。 [列暗号化] ページで、[アカウント] セクションの [権限設定] をクリックします。

    インスタンスの [アクション] 列にある [編集] をクリックします。表示されるパネルで、[アカウント権限] の横にある [構成] をクリックします。

  2. [権限設定] パネルで、インスタンスとアカウントを見つけて、アカウント権限を表示します。

  3. 管理するデータベースアカウントを見つけ、[アクション] 列にある [権限の変更] をクリックします。

    同じ権限を持つ複数のアカウントを選択し、リストの下にある [権限の一括変更] をクリックすることもできます。

  4. [権限の変更] ダイアログボックスで、必要な権限を選択し、[OK] をクリックします。

クライアントの指示

常時機密クライアントドライバー EncJDBC を使用して必要な ApsaraDB RDS データベースにアクセスし、Java アプリケーションを使用して暗号化された列データにアクセスできます。EncJDBC は暗号文データを自動的に復号化し、プレーンテキストデータを返します。このプロセスはアプリケーションに対して透過的です。詳細については、「EncJDBC」をご参照ください。

FAQ

  • [列暗号化] ページで承認された RDS インスタンスが見つからないのはなぜですか?

    承認された RDS インスタンスが ApsaraDB RDS for MySQL インスタンスでない場合、Data Governance > Column Encryption ページには表示されません。

  • RDS インスタンスの暗号化チェックが失敗した場合はどうすればよいですか?

    次のシナリオでは、[暗号化チェック] 列に [失敗] と表示されます。

    • 承認された ApsaraDB RDS for MySQL インスタンスが MySQL 5.7 または MySQL 8.0 を実行していません。

      ApsaraDB RDS for MySQL インスタンスの列暗号化を有効にするには、[インスタンス] に移動し、インスタンスを見つけて、データベースバージョンをアップグレードします。詳細については、「メジャーエンジンバージョンのアップグレード」をご参照ください。

      バージョンがアップグレードされたら、DSC コンソールに移動して最新のインスタンス情報を同期します。

      1. 左側のナビゲーションペインで、[アセットセンター] > をクリックします。アセット承認管理 タブで、 をクリックします。

      2. [アセット承認管理] パネルの左側のペインで、[RDS] をクリックします。

      3. [アセット承認管理] パネルで、[アセット同期] をクリックします。

    • インスタンスのマイナーエンジンバージョンが 20240731 より前です。

      image

      ApsaraDB RDS for MySQL インスタンスの列暗号化を有効にするには、[マイナーエンジンバージョンの更新] をクリックし、[最新バージョン] および [更新時間] パラメーターを構成して、[OK] をクリックして、インスタンスのマイナーエンジンバージョンを更新します。詳細については、「マイナーエンジンバージョンの更新」をご参照ください。インスタンスのマイナーエンジンバージョンが更新された後にのみ、RDS インスタンスの列暗号化を有効にすることができます。

      image

    • データベースインスタンスは読み取り専用インスタンスです。

      読み取り専用 RDS インスタンスの作成中は、ApsaraDB RDS はセカンダリ RDS インスタンスから読み取り専用 RDS インスタンスにデータを複製します。読み取り専用 RDS インスタンスが作成されると、インスタンスはプライマリ RDS インスタンスと同じデータを持ちます。プライマリ RDS インスタンスのデータが更新されると、ApsaraDB RDS はプライマリ RDS インスタンスに接続されているすべての読み取り専用 RDS インスタンスに更新をすぐに同期します。プライマリ RDS インスタンスの列暗号化を有効にすることをお勧めします。