先週、私の顧客の1人が、AmazonEC2AWSに本番環境のMongoDBインスタンスを安全にデプロイするためのアーキテクチャの推奨事項を求めました。これは私にトピックについて考えさせました、そしてこのブログ投稿は結果です。より良いオプションがある場合、非常に多くの企業が自社の本番MongoDBデータベースをインターネット上に公開しています。セキュリティのルール#1は、データベースサーバーへの物理的なアクセスを制限することです。資格情報が侵害された場合でも、攻撃者がサーバーにアクセスできない場合の影響は大幅に軽減されます。
詳細に入る前に、少し前に戻って、ITスタッフがAmazonAWS以前の世界でデータベースをデプロイするために使用した方法を思い出してみましょう。いくつかの異なる構成を思い出すことができます:
1。デュアルファイアウォールDMZ(非武装地帯)の構成
この構成では、フロントティアサーバーとミッドティアサーバーがDMZにデプロイされ、データベースサーバーは2番目のファイアウォールの背後にあります。フロントファイアウォールはWebポートでの接続を許可し、バックファイアウォールはデータベースポートでの接続のみを許可します。
2。 VLAN –デュアルファイアウォールDMZよりも人気が低い
データベースサーバーとフロントエンドサーバーは別々のVLAN上にあります。 2つのVLAN間のトランク相互接続ではデータベースポートのみが許可されます。
技術的には、それ以来何も変わっていません。ただし、現在は手法が異なります。 DMZとファイアウォールについて話すのではなく、VPCとセキュリティグループについて話します。 ITスタッフがいる大企業の場合、私は間違いなくAmazonVPCを調べます。これにより、レイヤー3ネットワークを細かく制御でき、データベースをプライベートサブネットに配置して、インターネットに公開しないようにすることができます。ただし、これは別のブログ投稿でははるかに長いトピックです。すでにVPCをセットアップしていて、VPCでMongoDBをセットアップしたい場合は、こちらのブログ投稿で手順を説明します–AmazonVPCへのMongoDBのデプロイ。
この投稿の残りの部分では、EC2-classicに集中します。
AWSでデュアルファイアウォールDMZを設定する3つの手順
1。 MongoDBサーバーのセキュリティグループを作成する
セキュリティグループはリージョン全体にまたがることができます。したがって、レプリカセットがある場合でも、レプリカをリージョン内のアベイラビリティーゾーンに分散し、同じセキュリティグループに含めることができます。 。 MongoDBサーバーのセキュリティグループを作成し、すべてのmongoサーバーをこのセキュリティグループにのみ追加します。
2。ミッド/フロントティアサーバーのセキュリティグループを作成する
ミッドティアおよび/またはフロントティアのMongoDBサーバー用に追加のセキュリティグループを作成します。
3。 MongoDBセキュリティグループアクセスを構成する
MongoDBセキュリティグループを構成して、MongoDBポートでのみフロントティアサーバーにアクセスできるようにします。インターネットへのWebポートを開くようにフロントエンドセキュリティグループを構成します。
ScaleGridを介してAWSでデュアルファイアウォールDMZを構成する
1。 AWSでセキュリティグループを作成する
Amazonコンソールにログインし、ミッドティア/フロントティアサーバーのセキュリティグループを作成します。セキュリティグループを「AppServerSG」と呼びましょう。必要に応じてhttp/httpsポートを開くようにこのセキュリティグループを構成します。このセキュリティグループに中間層サーバーと最前線サーバーを配置します。
2。 ScaleGridAWSクラウドプロファイルを作成する
ScaleGridコンソールにログインし、[マシンプール]タブをクリックします。独自のカスタムマシンプールを作成して、独自のAWSアカウントでmongoインスタンスをデプロイおよび管理できるようにします。 [マシンプール]タブで、[作成]ボタンをクリックします。 Amazon APIキーとシークレットキーを入力し、[次へ]を押します:
3。 MongoDBのAWSリージョンを選択してください
MongoDBをデプロイするために選択したAWSリージョンを選択してください:
4。アクセスポリシーを構成する
これは、セキュリティ構成のメインステップです。特定のセキュリティグループ内のマシンのみがMongoDBサーバーにアクセスできるようにするオプションを選択します。次に、アクセスを提供するセキュリティグループを選択します。マシンプールの名前を入力し、[次へ]をクリックします:
5。 MongoDBクラスターを作成する
メインコンソールのMongoDBデプロイメントページに戻ります。 [作成]をクリックして、新しいMongoDBクラスターを作成します。 [マシンプール]の選択で、作成したばかりのマシンプールを選択し、クラスターを作成します。
これは、AWSでのMongoDBデプロイを保護するための手法の1つにすぎません。他に提案がある場合は、コメントセクションを使用してフィードバックを提供してください。より詳細なセキュリティ慣行については、10genのセキュリティ慣行を参照してください。ご不明な点がございましたら、[email protected]までメールでお問い合わせください。