9

Azure Blob Storage にテキストを格納するサイトを開発しています。テキストは機密情報である可能性があります (必ずしもパスワードではなく、個人情報)。テキストを Azure Blob Storage に保存する前に暗号化する必要があるかどうかを判断しようとしています。私の理解では、これにより、Azure キーとアカウント名が流出し、悪意のあるユーザーが BLOB をダウンロードした場合にデータが公開されるリスクが軽減される可能性があります。私の質問は次のとおりです。

  • Azure Blobは、Microsoft のディスクに配置されるときに既に暗号化されていますか? アカウント キーは暗号化キーとして使用されますか、それとも単なるアクセス トークンとして使用されますか?
  • .NET AES アルゴリズムを使用して Azure Web サイトでこれを行う場合、キーの生成に使用される暗号化キーまたはパスフレーズ/ソルトはどこに保存すればよいですか? (つまり、web.config はこれに適した場所ですか?)
4

2 に答える 2

15

Blob コンテンツは暗号化されません。そのステップは完全にあなた次第です。Blob アクセスは、アクセス キーによって厳密に制御されます (プライマリとセカンダリの 2​​ つのキーがあり、どちらも同等に機能します)。これについての私の考えは次のとおりです。

  • ストレージ アクセスがアプリ層専用である (つまり、キーがアプリの外部に公開されない) 場合、リスクはかなり低くなります (キーをデスクトップまたはモバイル アプリに埋め込むか、オンライン ストレージ ブラウザー サービスで使用する場合と比較して)。 . 誰かが何らかの方法であなたからキーを盗む必要があります (ソース/構成ファイルを盗むなど)。あなたは、RDP アクセスを提供しない Web サイトを使用して、実行中のコードをさらに保護すると述べました。
  • なんらかの理由でキーが侵害された場合は、新しいキーを生成してキーを無効にすることができます。これにより、古いキーを保持しているユーザーへのアクセスが即座に遮断されます。一般的なパターンとして、外部ツール (Cerebrata ツールなど) を使用するときは、常にセカンダリキーを使用し、アプリ用にプライマリキーを予約します。こうすることで、いつでも好きなだけセカンダリ キーを無効にすることができ、これらのツールがストレージにアクセスするのを防ぐことができますが、実行中のアプリに干渉することはありません。
  • 特定の BLOB を顧客に公開する必要がある場合は、2 つの方法があります。まず、BLOB を Web サーバーにダウンロードしてから、コンテンツをストリーミングします。2 番目: 特定の BLOB の共有アクセス署名 (SAS) を生成し、その結果の URI をユーザーに (たとえばhref<a>タグの として) 与えることができます。SAS を使用すると、プライベート BLOB へのアクセスを一定時間 (10 ~ 20 分など) 許可できます。誰かが SAS URL を取得してインターネットに投稿したとしても、指定した時間枠の間のみ有効です (ハッシュ化されているため、変更できません)。
  • 複数のアプリに対して (またはアプリごとに) 複数のストレージ アカウントを検討してください。このようにして、セキュリティ違反があった場合、被害は侵害された特定のストレージ アカウントに限定されます。

2016年4月編集

先ほど発表された保存データの Azure Storage Service 暗号化は現在プレビュー段階にあり、Azure Resource Manager (ARM) を介して作成されたすべてのストレージ アカウントで利用できます。「クラシック」ストレージ アカウントでは使用できません (上記の残りの回答は引き続き適用されます)。ストレージ アカウントに対して、ポータル経由で暗号化を有効または無効にすることができます。

ポータルでのストレージの暗号化

このサービスは、標準ストレージ アカウントとプレミアム ストレージ アカウントの両方の BLOB で利用できます。詳細については、この投稿を参照してください。

于 2013-06-18T13:43:32.880 に答える