私はネットワークのさまざまな部分を設計しています。将来のソフトウェアプロジェクトの設計に関する私の現在の考え:
DMZ内のWebサーバー。このWebサーバーには、すべてのデータ管理の内部にあるMSSQLデータベースと通信するために、ファイアウォール(SQLポート上)に穴が開けられています。
質問:ファイアウォールにデータベースサーバーと通信するための穴を設ける代わりに、DMZ内のアプリケーションが使用できるWebサービスをホストする内部Webサーバーを、Webサービスの背後にあるデータベースロジックとともに使用する方が適切/安全ですか(そのWebサーバーとのみ通信するために穴が開けられました。)
Webサービスの実装では、APIの変更を更新する場所は1つだけです。これが、私が検討している理由ですが、データベースやクエリへの直接アクセスよりも遅い可能性があります。
どちらが良いかについて何か考えはありますか?
編集:すべてのアプリケーション/ビジネスロジックをアプリケーション層に配置しない限り、SQL用のファイアウォールに穴を開ける必要があることに気づきました。API関数(「GetEmployeeByName」などのすべてのアプリケーションに影響するもの)専用のレイヤーを追加したいので、DMZからDBにアクセスする必要があります...
最良の答えに傾くのは次のとおりです。Webサービスをホストする内部WebサービスAPIサーバー-これらは、DMZ内のすべてのWebサーバー、またはDMZ内のプロキシサーバーのいずれかによって消費されます。(したがって、ファイアウォールを介したsslポートが必要なサーバーは1つだけです。)(もちろん、すべての内部サーバーがアクセスできます。)