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

PolarDB:概要

最終更新日:Jun 04, 2024

このトピックでは、PolarProxyが提供するPolarDB Always Encrypted機能について説明します。PolarDB.

前提条件

PolarDBのPolarProxyバージョンは2.8.36以降です。 PolarProxyのバージョンを表示または更新する方法については、「マイナーバージョンの更新」をご参照ください。

背景情報

今日の規制要件と産業標準は、データのライフサイクル全体に及ぶ堅牢なセキュリティ対策の採用を必要としています。従来のサードパーティのセキュリティ強化とクライアントベースの暗号化は、コスト、アーキテクチャの適応、およびデータベースのパフォーマンスの不足により、もはや十分ではありません。 これに関連して、エンドツーエンドの暗号化をサポートするデータベースが業界全体で人気を集めています。 PolarDBは、このような要件に対する答えとしてPolarDB Always Encryptedも提供します。  

この機能は、次のシナリオで最も効果を発揮します。

  • 信頼できない環境にデータを保存する: これらのシナリオには、クラウドまたは顧客のオンプレミスのデータセンターにデータを保存することが含まれます。これにより、クラウドサービスプロバイダー、組織および顧客のO&M担当者による不正アクセスが発生する可能性があります。  

  • サードパーティプロバイダーによるデータ管理サービスの使用: ビジネスシークレットがサービスプロバイダーに公開される場合があります。 データに個人識別情報や遺伝子データなどの機密データが含まれている場合、これは特に危険です。  

  • データの他の組織との共有: これらのシナリオには、関連する組織がデータコンプライアンス要件によって制限され、平文データを直接共有できない、共同リスク管理と国際サービス提供が含まれます。 また、他の企業とマーケティングを行い、競争関係のためにデータを保護したいというシナリオも含まれています。

特徴

  • すべてのSQL演算子がサポートされています。 コードを変更することなく、アプリケーションをこの機能に適合させることができます。 アプリケーションのビジネスコードを変更せずに、EncJDBCに切り替えるために必要な設定はわずかです。 詳細については、「EncJDBCの統合」をご参照ください。

  • アプリケーションがAPI操作を通じてこの機能を活用するためのSDKが提供されています。 詳細については、「EncDB SDKの統合」をご参照ください。

  • クエリ結果は暗号化され、データベースアカウントとビジネスデータのセキュリティが確保されます。 特定のデータのみを暗号化するようにルールを設定できます。 PolarDB Always Encryptedが指定されたデータをクエリすると、カスタムマスターキー (CMK) を使用して暗号化が実行されるため、データはキーを持っているユーザーにのみ表示されます。 このように、データベースアカウントが漏洩した場合でも、侵入者はクエリ結果のデータを見ることができません。 データベースの開発担当者およびO&M担当者でさえ、クエリ結果を平文で取得することはできません。

  • データの暗号化に使用するCMKを指定できます。 独自またはサードパーティのキー管理サービスを使用して、データベースクライアントにキーを動的に渡すことができます。 許可されたユーザにのみ利用可能なキーは、安全な配布メカニズムを介してクエリで有効になり、使用後に自動的に取り消され、盗まれる可能性を防ぎます。

  • PolarDB Always Encryptedを有効にすると、パフォーマンスはわずかに低下します。 PolarDB Always Encryptedを有効にしたデータ処理のパフォーマンスは、暗号化されるデータ列の数に反比例します。 クエリに含まれる暗号化データが多いほど、パフォーマンスは低くなります。 TPC-Cのテストでは、列の20% 、50% 、100% が暗号化されている場合、PolarDB Always encryptedが有効になっていない場合のパフォーマンスはそれぞれ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カーネルに直接接続すると、暗号化機能は有効になりません。 これを避けることをお勧めします。 不正アクセスの影響を最小限に抑えるために、ログ監査などの他のセキュリティ機能も有効にすることをお勧めします。

使用法

詳細については、「マンジ暗号化ルール」をご参照ください。