web-dev-qa-db-ja.com

任意のIPアドレスからアクセスできるawsRDSインスタンスでのSQLDBのセキュリティ

AwsのRDSインスタンスにsqldbがあります。 SQLデータベースにアクセスできるEC2でホストされているWebアプリケーションがあります。また、オフィスからこのデータベースにアクセスします。オフィス用の独自の静的IPがないため、このインスタンスに接続して作業できるように、任意のIPアドレスからRDSインスタンスにアクセスできるようにする必要がありました。静的IPがあれば、IPへのアクセスのみを許可します。

ここでの質問は、このデータベースが安全であり、セキュリティの脅威に耐えられないことをどのように確認できるかということです。オフィス用の静的IPを購入せずにこれを保護する方法はありますか?どうやら、世界中のどこからでもアクセスできるデータベースは攻撃にさらされています。
グーグルで解決策を見つけるために1週間を費やしましたが、まだ成功していません。

1
shravan bardwa

何をするにしても、本番データベースをインターネット「0.0.0.0/0」に公開しないでください。データの漏洩、盗難、悪用などに自分自身を開放しているだけです。

これを行う最も簡単な方法は、RDSインスタンスを「パブリックアクセス可能」にすることですが、固定IPアドレスの非常に短いリストからです。

それがうまくいかない場合は、SSHトンネリングを使用してSQL接続を保護できます。 「0.0.0.0/0」からアクセスする必要がある場合は、SQLよりもSSHの方が優れています。

以下をせよ:

  1. RDSインスタンスをVPCのprivateサブネットに配置します。これにより、RDSインスタンスがインターネットから隠されます。この場合、RDSインスタンスはnotパブリックアクセス可能です。
  2. WebアプリケーションはDNS名を介してRDSインスタンスにアクセスします(これはprivateIPアドレスに解決されるはずです)。
  3. sshdを実行しているパブリックサブネットで要塞EC2インスタンスを起動します。
  4. ユーザーがローカルネットワークからSQLデータベースにアクセスする必要がある場合は、SSH経由で要塞EC2インスタンスに接続し、SSH接続経由でSQL接続をRDSインスタンスにトンネリングしてもらいます。

WebアプリケーションはプライベートIPアドレスでSQLサーバーにアクセスしているため、データトラフィック料金は発生しません(パブリックIPアドレスでアクセスする場合は発生します)。

参照:

1
Matt Houser

組織にとって最も簡単で最も安価なオプションは、ISPが追加料金で静的IPアドレスを提供するかどうかを確認するか、それを実行できる新しいISPを見つけることです。

それ以外の場合は、サイトとAWS VPCの間にVPNを設定し、VPNを介してRDSインスタンスに接続することをお勧めします。このソリューションは、組織にネットワークの専門知識があるかどうかに依存します。残念ながら、これは迅速で簡単な修正ではありません。 ここ は、AWSが提供するさまざまなVPNオプションについて学ぶための出発点です。

私が見た他の解決策は醜い回避策です。ここに2つあります:

  • ISPのCIDRを調べて、全範囲へのアクセスを許可します。 (少なくともこの方法では、インターネット全体ではなく、ISPを使用して他のユーザーへのアクセスを制限しています。)

  • IPアドレスがいつ変更されたかを検出するスクリプトを作成し、RDSセキュリティグループルールを新しいIPアドレスで更新します。

IPアドレスは頻繁に変更されると思います。 (それ以外の場合は、必要に応じてセキュリティグループを手動で更新できます。..不便ですが、世界に公開したままにするよりも安全です。)

VPNの設定を調査したい場合は、ここから始めてください: AWS VPN接続オプション

0
vjones