この Topic では、ApsaraDB RDS コンソールで ApsaraDB RDS for MySQL インスタンスの列暗号化ルールとロール権限を設定する方法について説明します。列暗号化は、常時機密データベース機能の基本エディションです。
前提条件
RDS インスタンスは、マイナーエンジンバージョン 20240731 以降の MySQL 5.7 または 8.0 を実行していること。
説明詳細については、「マイナーエンジンバージョンを更新する」をご参照ください。
特権アカウントを使用してデータ保護ルールを設定すること。
機能の説明
列暗号化の設定は、次の 2 つのコアコンポーネントで構成されます。
列暗号化ルール: データベース、テーブル、およびフィールドを指定して、暗号化する列を定義します。
ロール権限設定: どのデータベースアカウントがプレーンテキストまたは暗号文データにアクセスできるかを制御します。
列暗号化ルールを設定する前に、必要なアカウントにプレーンテキストの表示権限を設定します。
データベースアカウントに特定のロール権限を割り当てない場合、すべてのデータベースアカウントにはデフォルトで その他の管理者 (暗号文を表示) ロールが割り当てられます。
ロール権限を設定せずに列暗号化ルールを設定すると、アプリケーションで文字化けやアクセスエラーが発生する可能性があります。
使用上の注意
データ保護ルールを設定して有効にすると、そのルールは RDS インスタンス上のすべてのデータベースで有効になり、ルールを繰り返し設定する必要はありません。
データ保護ルールとオンラインアプリケーションを管理するために、別々のデータベースアカウントを使用することをお勧めします。必要でない限り、オンラインアプリケーションの管理権限を付与しないでください。
mysql.encdb_sensitive_rules および mysql.encdb_auth_users テーブルに対する読み取りおよび書き込み権限を付与する際は、注意が必要です。これらのテーブルを変更すると、攻撃者が常時機密保護をバイパスできる可能性があります。
手順
RDS インスタンスページに移動し、上部のナビゲーションバーでリージョンを選択し、対象インスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、[データセキュリティ] をクリックします。
[列の暗号化] タブをクリックして、ロール権限と列暗号化ルールを設定します。
ロール権限の設定または変更
[ロール権限設定] をクリックし、管理するロールを見つけて、[アクション] 列の [アカウントの設定] または [アカウントの変更] をクリックします。
説明次のリストは、ロール権限について説明しています。
スーパー管理者: すべての機密データのプレーンテキストコンテンツを表示できます。
O&M 管理者: 機密データを暗号文で表示する権限を持ちます。このロールを使用して、カスタムの専用キーを作成し、リアルタイムのデータ暗号化と復号を実装できます。
その他の管理者: 暗号文のみ表示でき、データを復号することはできません。
[アカウントの設定] ページで、次のパラメーターを設定し、[OK] をクリックします。
必要に応じてユーザー権限を調整できます。たとえば、スーパー管理者ロールを複数のユーザー (ユーザー A、次にユーザー B など) に別々の操作で割り当てることができます。ユーザーの権限を取り消すには、そのロールをその他の管理者に変更します。
パラメーター
必須
説明
有効期限
はい
このパラメーターは、[スーパー管理者] ロールでのみ使用できます。
有効期限が切れると、スーパー管理者の権限は、プレーンテキストデータを表示する権限を持たないその他の管理者の権限に自動的にリセットされます。
リンクされたアカウント
いいえ
ドロップダウンリストから 1 つ以上の既存のデータベースアカウントを選択します。
カスタムアカウント
いいえ
リンクされたアカウントと同様です。1 つ以上のデータベースアカウント名を手動で入力します。複数のアカウント名はコンマ (,) で区切ります。
列暗号化ルールの削除
[列の暗号化] タブで [暗号化ルールのリスト] をクリックし、削除するルールを見つけて、操作列の [削除] をクリックします。