web-dev-qa-db-ja.com

Mongoによる暗号化

次の目標を達成するにはどうすればよいですか?

  • すべてのコンピューティングとストレージはクラウドに配置されます。
  • WebノードとMongoDBを実行しているdbノード間ですべてのデータを転送中に暗号化します。
    • トンネルを設定するには?どのプロトコル/ツール?
  • MongoDBに保存されている残りのすべてのデータの暗号化。
  • すべてのデータは頻繁に(クラウドにも)バックアップされます。
    • バックアップは転送中および保存時に暗号化されます。
  • 暗号化とキー管理の問題はすべて、アプリケーションではなくインフラストラクチャで処理されます。
    • アプリケーションコードを変更する必要はありません。
  • 保管時のすべての暗号化の鍵は定期的にローテーションできます。
    • キーローテーションプロセスは、シンプルで、スクリプト化可能で、自動化できます。
    • 過去に保存されたデータは、任意に何度もキーをローテーションした後でも、いつでも取得できるはずです。
    • バックアップは一定期間取得可能である必要があります。それらは、少なくとも1つのキーローテーションに耐える必要があります。

部分的な回答または1つの箇条書きに対する回答しかない場合でも投稿してください。 1つのサブゴールのソリューションは、全体的なゴールのソリューションの一部です。

回答ありがとうございます!

11
yfeldblum

要件はクラウド固有ではありません。これと同じソリューションは、従来のホスティングで機能します。クラウドコンピューティングの特徴は、必要なときにのみVMを起動することによる動的なリソース消費です。

1)私の知る限り MongoDBはSSLをサポートしていません 。 MongoDBに安全に接続するには、VPNを使用して安全なトンネルを作成する必要があります。

2)ほとんどの場合、データベースに挿入する前にデータを暗号化することをお勧めします。セキュリティの観点から見ると、データベースが暗号化を処理している場合はキーが必要であり、データベースが危険にさらされていると、暗号化されたデータも危険にさらされます。これはアプリケーションで処理する必要があります。また、ストリーム暗号は小さなメッセージを生成し、スペースを節約することにも注意してください。ストリーム暗号は、適切に使用すれば安全です(メッセージごとに一意のIV)。

3)暗号化を使用する多くのバックアップサービスがあります。自分で開発している場合は、オープンソースプロジェクト Bacula の使用をお勧めします。

7
rook

MongoDBは、あなたが尋ねていることとの関連が1/10程度だと思います。基本的に、データと関連するキーをクラウドに安全に保存する方法を知りたいと考えています。これについて書かれた本全体があります... :)

質問が多すぎて合理的な回答を提供できないかもしれませんが、他の人がもっと上手にできるかもしれません。

そうは言っても、Microsoftが クラウドアプリケーションのセキュリティ保護 について書いたすばらしいパターンと実践ガイドがあります。ただし、これはAzure固有です。

3
Steve