年金加入者の個人情報が流出し、改めてセキュリティ対策の重要性が浮き彫りになってきました。みなさんのビジネスでも大きな話題となっていることと思いますが、いかがでしょうか? 今回はかなり運用上の問題点が指摘されているようですが、システムを構築する側としては、お客様のセキュリティの意識を高めていくことがより重要になっていると再認識しました。本当に気をつけないといけないですね。
さて、今回はシステムの重要な要素であるデータベースのセキュリティについて考えてみたいと思います。データベースは重要なデータをすべて保存していますので、暗号化を考えるときに一番最初に対象となってくるものです。しかし、やはり安易に暗号化してしまうといろいろな問題が起きてきます。というのもデータベースは24時間365日止まってはいけないというものが多く、セキュリティの中では可用性がもっとも重要視されてきました。このためクラスタやレプリケーションなど複数台を用いて可用性を高めることが通常は行なわれます。つまり、暗号化する場合、対象のサーバが複数になってしまうということです。
Amazon RDSも一応暗号化に対応していますが、使いやすいとは言えません。一番問題なのは現在利用中のRDSをそのまま暗号化できないということです。また、逆に一旦暗号化してしまうと元に戻すことができません。そもそもRDS自体がある程度ブラックボックス化しているので、カスタマイズの自由度が高いとは言えません。また、以前説明しました鍵管理、権限管理といった問題もEBS暗号化と同様ですので制約が多いと言えます。
実際、複数台のサーバを暗号化するとき、レプリケーションの場合はそんなに問題はありません。お互いが独立して暗号化しても通信プロトコルに変更はないので個別に暗号化すればよいということになります。しかし、DRBDなどのブロックデバイスの同期型のレプリケーションでは注意が必要です。なぜなら、この場合は暗号化された状態でデータのレプリケーションが行なわれるので、複数のサーバで同一の暗号鍵を使用する必要があります。いわゆる共有ディスク型のHAシステムも同様です。フェールオーバーして別のマシンが起動したときに同じ暗号鍵を使わないと復号化ができないからです。
弊社のLinux暗号化ソリューション「Server-GENERAL」は現在運用中のデータベースでも暗号化可能です。また、暗号化の停止もコマンド一つで簡単に運用できます。同期型のレプリケーションでも暗号鍵の共通化を指定できますので、柔軟なシステム構成に対応できます。