GDPR、PCI DSS、またはHIPPAの時代には、データのセキュリティが非常に重要です。規制に準拠するには、データの保存方法と保護方法について細心の注意を払う必要があります。通常、データは保存中または転送中の場合があります。転送中のデータは、データベースとの間で転送されるデータです。クライアントまたはアプリケーションに送信されたクエリ結果、またはクラスターのノード間で複製されたデータは、データが転送中の場合の例です。 SSLまたはTLS(データベースノード間またはデータベースとクライアント間の暗号化された接続)を使用して、その状態のデータを保護する傾向があります。
スペクトルの反対側には、保存されているデータがあります。ほとんどのデータは、特定の瞬間に保存されていると言えます。ここでは、テーブルスペースのディスクに保存されているデータ、さまざまなデータ構造(gcacheバッファー、REDOログ)、およびログ(バイナリログとリレーログ)について説明します。 MariaDBでこのテーマに関する考慮事項を見てみましょう。
MariaDBで何を暗号化するか?
理想的には、すべてを暗号化する必要があります。上記のように、データベースはさまざまな場所とさまざまな方法でデータを保存します。最大のデータセットはテーブルスペースに格納されます。これは、データが格納される「最終的な」場所です。明らかに、テーブルスペースを暗号化することは可能です-そうでなければ、機能全体が無意味になります。 MariaDBは、データを1つの共有テーブルスペースに格納できます。それらのいくつか、またはすべてのテーブルを個別のテーブルスペースに格納できます。これらのシナリオはすべてサポートされています。ユーザーは、暗号化する対象を選択するときにある程度の柔軟性があります。すべて、個別のテーブル、または一部の個別のテーブルを除くすべてを暗号化できます。
MariaDBInnoDBREDOログ
MariaDBバイナリログ
バイナリログ(およびリレーログ)には、データを変更する実行済みクエリに関する情報が格納されます。含まれている情報により、変更された行の現在の状態を再構築できるため、これは保護および暗号化する必要がある別の形式のデータです。バイナリログとリレーログの両方をMariaDBで暗号化できます。
Galeraキャッシュ(gcache)は、実行された変更に関する情報を格納するGaleraClusterのディスク上のバッファーです。これは、ノード障害または一時的なネットワークの問題の場合に使用され、クラスターに参加するノードが欠落しているデータのみを使用して追いつくことができ、データセット全体の転送を回避します。バイナリログやREDOログと同様に、gcacheには変更のリストが含まれているため、データの一部を回復してまとめるために使用できます。コミュニティバージョンのMariaDBGaleraClusterでは、gcacheを暗号化できません。このようなオプションは、MariaDBGaleraClusterのエンタープライズバージョンで利用できるようになります。
MariaDBで暗号化できないものは何ですか?
MariaDBには、少なくとも現時点では、暗号化できないデータが表示される可能性のある場所がまだいくつかあります。まず、エラーログには、一部のデータを公開する可能性のあるクエリのサンプルが含まれている場合があります。エラーログを暗号化することはできませんが、エラーログをsyslogにリダイレクトし、MariaDBの外部に何らかの保護メカニズムを実装することは可能です。
Audit Pluginもログを生成します。このログには、データベースで実行された正確なクエリなどの機密情報が含まれている場合があります。このログを暗号化することはできませんが、syslogにリダイレクトしてそこで暗号化することはできます。
一般的なクエリログと遅いクエリログ-これらのログには、MariaDBによって実行されたクエリ(または少なくともそれらのサンプル)が含まれます。現在のところ、これらのログを暗号化することはできません。
InnoDBバッファープール
MariaDBに含まれている暗号化オプションについて説明したことに注意してください。暗号化の別のレイヤーを使用する可能性は常にあります。たとえば、ストレージ全体を暗号化すると、ディスクに物理的にアクセスできる人はログを読み取れなくなります。一方、システムにログインできる人からデータを保護することはできません。
このセクションでは、プロセスの詳細については説明しませんが、リソースや時間など、暗号化を計画する際に考慮すべきことについて説明します。プロセス中のI/Oアクティビティと同様に、CPU使用率も増加します。ユーザーの観点からは、すべては構成設定になり、ALTERコマンドを実行して既存のテーブルを再構築および暗号化します。大規模なデータベースの場合、これだけでも計画が必要な重要な課題になる可能性があります。スキーマの変更は深刻な負担になる可能性があるため、pt-online-schema-changeなどのツールを使用して、本番システムへの影響を減らし、プロセスをより適切に制御することをお勧めします。
前述のように、データはすべての組織にとって重要であり、データが安全で保護されていることを確認することが重要です。保存データの暗号化は、全体像の重要な要素の1つです。 MariaDBでの保存データの暗号化に関するご意見をお聞かせください。ご意見をお聞かせください。下にコメントを残してください。