このトピックでは、PolarProxyが提供するPolarDB Always Encrypted機能について説明します。でPolarDB.
前提条件
PolarDBのPolarProxyバージョンは2.8.36以降です。 PolarProxyのバージョンを表示または更新する方法については、「マイナーバージョンの更新」をご参照ください。
背景情報
今日の規制要件と産業標準は、データのライフサイクル全体に及ぶ堅牢なセキュリティ対策の採用を必要としています。従来のサードパーティのセキュリティ強化とクライアントベースの暗号化は、コスト、アーキテクチャの適応、およびデータベースのパフォーマンスの不足により、もはや十分ではありません。 これに関連して、エンドツーエンドの暗号化をサポートするデータベースが業界全体で人気を集めています。 PolarDBは、このような要件に対する答えとしてPolarDB Always Encryptedも提供します。
この機能は、次のシナリオで最も効果を発揮します。
信頼できない環境にデータを保存する: これらのシナリオには、クラウドまたは顧客のオンプレミスのデータセンターにデータを保存することが含まれます。これにより、クラウドサービスプロバイダー、組織および顧客のO&M担当者による不正アクセスが発生する可能性があります。
サードパーティプロバイダーによるデータ管理サービスの使用: ビジネスシークレットがサービスプロバイダーに公開される場合があります。 データに個人識別情報や遺伝子データなどの機密データが含まれている場合、これは特に危険です。
データの他の組織との共有: これらのシナリオには、関連する組織がデータコンプライアンス要件によって制限され、平文データを直接共有できない、共同リスク管理と国際サービス提供が含まれます。 また、他の企業とマーケティングを行い、競争関係のためにデータを保護したいというシナリオも含まれています。
機能
-
すべての SQL 演算子をサポートし、アプリケーションに対して透過的です。最小限の設定変更で EncJDBC ドライバーに切り替えることができ、ビジネスコードの変更は不要です。EncJDBC の統合
-
クエリ結果は暗号化されて返されるため、侵害されたデータベースアカウントからのデータ盗難や、運用保守担当者による不正アクセスを防ぐことができます。暗号化ルールを設定して、保護が必要な機密データを指定します。データベースはお客様のキーで機密データを暗号化します。キーの所有者のみが復号してプレーンテキストを閲覧できます。
-
信頼できる Key Management Service (KMS) またはサードパーティの KMS のカスタムマスターキーをサポートしています。キーを機密クライアントに動的に渡すことで、お客様のみがキーを保持することを保証します。実行時、キーは安全な配布メカニズムを通じてクエリ処理に使用され、サービス終了時に自動的に破棄されます。
-
パフォーマンスは、標準的な非暗号化データベースに匹敵します。影響は暗号化されたフィールドの数に比例します。TPC-C テストでは、フィールドの暗号化率が 20%、50%、100% の場合に、それぞれプレーンテキストのパフォーマンスの 93%、86%、79% を達成しました。完全暗号化データベースのパフォーマンス・テスト・レポート
シナリオ
PolarDB Always Encryptedは、データの機密性と整合性を確保する機能を備えた次世代のデータベースフレームワークと製品を提供するために開発しました。 最適な設計により、データベースは、高いパフォーマンス、安定性、およびコスト効率を確保しながら、セキュリティ機能を提供できます。
PolarDB Always Encryptedの典型的なシナリオは次のとおりです。
アプリケーションからデータベースに送信するデータの暗号化
ほとんどの場合、アプリケーションプロバイダーはデータの所有者であり、データベースサービスとそのO&M担当者がビジネスデータにアクセスできないようにしたいと考えています。
ユーザーからアプリケーションに送信するデータの暗号化
個人的な使用のためのいくつかのアプリケーションでは、健康および金融に関連するものなどのデータの一部は、データを管理および分析するときにアプリケーションが平文でデータ自体にアクセスできないことを一般的に期待するユーザによって所有される。
暗号化されたデータを安全で信頼できる方法で共有する
暗号化に使用されるキーは、データ所有者のみが使用できます。 データ所有者が他の人とデータを共有する必要がある場合、キーを公開せずにデータを共有したいため、コンプライアンス要件を満たします。
制限事項
暗号化ルールは、プライマリエンドポイントでは有効になりません。 クラスターエンドポイントまたはカスタムクラスターエンドポイントを使用する必要があります。
PolarDB Always Encrypted機能は、
COM_QUERYコマンドのみをサポートします。COM_STMT_PREPAREなどの他のコマンドタイプはサポートされていません。 EncJDBCはテキストプロトコルのみをサポートします。 バイナリプロトコルはサポートされていません。 準備されたステートメントを活用する操作は、常にテキストプロトコルのクエリで完了します。PolarDB常に暗号化と動的マスキングを同時に有効にすることはできません。
動的マスキングルールが存在する場合、PolarDB Always Encryptedを有効にするには、既存のマスキングルールをすべて削除し、タイプが暗号化の新しいルールを作成する必要があります。
CMKは、指定後に変更できません。 クラスター全体で同じCMKを使用します。
SecureGWをバイパスしてネイティブMySQLカーネルに直接接続すると、暗号化機能は有効になりません。 これを避けることをお勧めします。 不正アクセスの影響を最小限に抑えるために、ログ監査などの他のセキュリティ機能も有効にすることをお勧めします。
使用法
詳細については、「マンジ暗号化ルール」をご参照ください。