「データベース」は2006年、サイトサービス指向の要にインターネットサービスの新基準(2/2 ページ)

» 2005年12月28日 10時01分 公開
[大澤文孝,ITmedia]
前のページへ 1|2       

 レガシーな操作方法は、暗号化対策のSSHでデータベースにログオンし、コマンドラインからデータベースを操作する方法である。この方法は、バックアップなどの作業なら問題ないが、例えば「特定のレコードだけを取り出したい」「特定のフィールドを書き換えたい」といった編集や保守、改良を加える際――特にWebアプリケーションの開発時におけるテーブル作成やテーブル編集など――には、コマンドラインでの操作は困難を極める。

 そこでMicrosoft Accessなどのデータベースソフトを使って、ホスティングサービス上のデータベースに接続して操作したくなってくるのだ。

 幸いMySQLやPostgreSQLでは、Windows用のODBCドライバが提供されている。そのためこれらのODBCドライバを使えば、Accessなどのデータベースソフトを使って、ホスティングサービスで提供されているデータベースを操作することができる。

 そうとはいえ、これを許容してしまうとインターネット上を暗号化されないデータベース情報が流れるため好ましいことではない。それに加え、悪意ある者がデータベースサーバを攻撃してくる可能性も高くなる。

 このような問題を解決するのが「SSHポートフォワーディング」だ。SSHポートフォワーディングは、クライアントPCとサーバとをSSHで通信して中継する一種のVPNを提供する(図2)。

 SSHポートフォワーディングを使うためには、基本的にはサーバ側がSSHに対応していればよい。ただし、一部のホスティングサービスでは、SSH自身は使えても、ポートフォワーディングを許さない設定になっていることもあるため、その確認が必要だ。

 SSHポートフォワーディングを用いる場合、クライアント側では、SSHのポートフォワード用のソフトを使う。Windowsの場合には、たとえば、「PortForwarder」がある(関連リンク)。また、SSHに対応したターミナルソフト「Poderosa」にもポートフォワーディングのためのツールが付属している(関連リンク)

 実際に接続するには、図2に示したように、クライアント側のアプリケーションは、自らのPC宛(localhost)に接続するようにする。すると転送が通信され、あたかもサーバに直接接続しているように見えるのだ。

 ここでは、SSHポートフォワーディングによるデータベース操作を説明したが、もしホスティングサービスが、SSL-VPNなどのVPN機能を提供しているのであれば、それらのVPN機能を使っても、同様なことができる。ただし、どのようなプロトコルに対応するのかは、VPNの種類に依存するため、データベースへの接続はできないこともあるので注意が必要だ。

図2■SSHポートフォワーディングでデータベースを操作する

安全のためにWebサーバとデータベースサーバを分ける

 データベースには重要なデータが格納されるので、万一、データベースサーバに侵入されれば、データが丸ごと盗まれてしまう可能性がある。

 そこで安全性を高める方法として、「Webサーバ」と「データベースサーバ」を分ける方法がある。これは、最近一般的となってきた運用手法だ(図3)。

 Webサーバとデータベースサーバを分ける場合、Webサーバに2枚のネットワークカードを装着し、Webサーバとデータベースサーバ間は、プライベートIPアドレスで構成する。そうすれば、インターネットから直接データベースサーバに接続できないようになる。このような構成を考慮して、近年のホスティングでは、「2台セットにして提供する」というサービスも見られるようになってきた。

 もちろん、インターネットから直接データベースサーバにアクセスできないようにすれば、いつでも安全を保てるというわけではない。なぜならば、もし、Webサーバに侵入されてしまったら、それを踏み台にしてデータベースサーバへ侵入できてしまうからだ。

 つまりWebサーバを適切に監視し、データベースサーバに侵入される前に異常に気づくかどうかが、被害を増大させないためのポイントだ。そこでWebサーバに、侵入検知サービスを導入するとよいだろう。

図3■Webサーバとデータベースサーバを分ける
前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ