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 つの列を無料で暗号化できます。複数の列を暗号化するには、[列暗号化] を有効にし、サブスクリプション課金方法に基づいて十分な [列] クォータを購入する必要があります。詳細については、「課金概要」をご参照ください。
前提条件
列暗号化のために十分な列が購入されています。詳細については、「DSC の購入」または「サブスクリプション DSC の仕様変更」をご参照ください。
DSC は、管理する ApsaraDB RDS インスタンスにアクセスする権限があります。詳細については、「データベースにアクセスするための DSC の承認」をご参照ください。
機密データ列の識別は、承認された ApsaraDB RDS for MySQL インスタンスで実行されます。詳細については、「識別タスクを使用した機密データの識別」をご参照ください。
列暗号化統計の概要
ApsaraDB RDS for MySQL インスタンスを DSC に接続します。左側のナビゲーションペインで、
を選択します。 [列暗号化] ページで、接続されている ApsaraDB RDS for MySQL 5.7 および 8.0 インスタンスのリストと、データベース、テーブル、列、機密データ識別結果などの情報を表示できます。DSC コンソール にログオンします。
左側のナビゲーションペインで、
を選択します。RDS インスタンスリストで、インスタンス名、リージョン、暗号化チェック結果などの情報を表示できます。リストの上部にある識別テンプレート、識別モデル、または機密レベルで、管理する RDS インスタンスを検索できます。
RDS インスタンスを展開して、インスタンスのデータベース、テーブル、列、および機密データ識別結果を表示します。
RDS インスタンスリストの左上隅に、列の総数、機密列、暗号化された列、暗号化されていない列、および失敗した列が表示されます。機密列は、機密レベルが S3 以上の列です。暗号化された列は、列暗号化が有効になって有効になっている列です。失敗した列は、列暗号化が有効になっているが有効になっていない列です。
説明上記の列は、機密データ識別結果で機密レベルが S3 以上の列です。
RDS インスタンスリストの右上隅に、データベースアカウントと対応する権限が表示されます。
[アカウント合計]: 各データベースの各アカウントは、個別のデータベースアカウントと見なされます。たとえば、アカウント C がデータベース A とデータベース B の両方に存在する場合、2 つの異なるデータベースアカウントとしてカウントされます。
[暗号化が構成されていないアカウント]: データベースのすべての列で列暗号化が無効になっています。データベースのすべてのアカウントは、すべての列のデータにアクセスできます。
[プレーンテキスト権限] または [暗号文権限]: データベースの列暗号化を有効にした後、データベースアカウントの権限を構成して、暗号化された列データにアクセスできるようにすることができます。
列暗号化の構成
を選択します。 [列暗号化] ページで、[暗号化チェック] パラメーターの値が RDS インスタンスリストで [合格] であるインスタンスの列暗号化を構成できます。
[暗号化チェック] パラメーターの値が [失敗] の場合、データベースバージョンまたはエンジンバージョンは列暗号化機能をサポートしていません。データベースバージョンまたはエンジンバージョンを手動でアップグレードする必要があります。詳細については、FAQ をご参照ください。
列暗号化を有効にする
左側のナビゲーションペインで、
を選択します。次のいずれかの方法で列暗号化を有効にできます。
迅速な暗号化 (一度に複数の列の暗号化)
RDS インスタンスリストの上部にある [暗号化済み] フィールドの下の [迅速な暗号化] をクリックします。
暗号化するインスタンスの [アクション] 列にある [迅速な暗号化] をクリックすることもできます。
表示されるパネルで、パラメーターを構成し、[OK] をクリックします。次の表にパラメーターを示します。
パラメーター
説明
インスタンス名
列暗号化を構成する RDS インスタンスの名前。
暗号化アルゴリズム
[AES-128-GCM] 暗号化アルゴリズムのみがサポートされています。
プレーンテキスト権限アカウント
暗号化構成が完了すると、データベースインスタンスのすべてのアカウントに暗号文権限が付与されます。ホワイトリストに追加されたアカウントを選択して、プレーンテキスト権限を使用して暗号化された列データにアクセスできます。
列の構成
暗号化するデータベース、テーブル、および列を選択できます。
識別テンプレート、識別モデル、機密レベル、データベース名、またはテーブル名で暗号化された列情報を検索できます。
暗号化を有効にする (一度に 1 つの列の暗号化)
RDS インスタンスリストで、目的のインスタンスを展開し、暗号化する列を見つけ、[アクション] 列の [暗号化を有効にする] をクリックします。デフォルトの暗号化アルゴリズム [AES-128-GCM] を使用して列を暗号化します。
暗号化された列の範囲を変更する
暗号化構成が完了したら、インスタンスの [アクション] 列にある [編集] をクリックして、暗号化された列の範囲を変更できます。インスタンスを展開し、インスタンスリストで [列] 名を見つけることもできます。次に、[暗号化を有効にする] または [暗号化を無効にする] をクリックします。
データベースアカウント権限の変更
列暗号化が有効になって有効になっている場合、ビジネス要件に基づいてデータベースアカウントの権限を変更して、アカウントがプレーンテキストでデータにアクセスしたり、暗号文データを復号化したりできるようにすることができます。
を選択します。 [列暗号化] ページで、[アカウント] セクションの [権限設定] をクリックします。
インスタンスの [アクション] 列にある [編集] をクリックします。表示されるパネルで、[アカウント権限] の横にある [構成] をクリックします。
[権限設定] パネルで、インスタンスとアカウントを見つけて、アカウント権限を表示します。
管理するデータベースアカウントを見つけ、[アクション] 列にある [権限の変更] をクリックします。
同じ権限を持つ複数のアカウントを選択し、リストの下にある [権限の一括変更] をクリックすることもできます。
[権限の変更] ダイアログボックスで、必要な権限を選択し、[OK] をクリックします。
クライアントの指示
常時機密クライアントドライバー EncJDBC を使用して必要な ApsaraDB RDS データベースにアクセスし、Java アプリケーションを使用して暗号化された列データにアクセスできます。EncJDBC は暗号文データを自動的に復号化し、プレーンテキストデータを返します。このプロセスはアプリケーションに対して透過的です。詳細については、「EncJDBC」をご参照ください。
FAQ
[列暗号化] ページで承認された RDS インスタンスが見つからないのはなぜですか?
RDS インスタンスの暗号化チェックが失敗した場合はどうすればよいですか?