Windows Azure プラットフォーム用の Web アプリケーションを開発中です。
考慮事項の 1 つは、コンテンツの暗号化です。ここに含まれるコンテンツには、BLOB ストレージ内のファイル、テーブル ストレージ内の一部の 2 次元データ、SQL Azure 内のアプリケーション データが含まれます。
ここで従うことができる特定のベスト プラクティスまたは既存の暗号化モデルがあるかどうかを確認したいと思います。
Windows Azure プラットフォーム用の Web アプリケーションを開発中です。
考慮事項の 1 つは、コンテンツの暗号化です。ここに含まれるコンテンツには、BLOB ストレージ内のファイル、テーブル ストレージ内の一部の 2 次元データ、SQL Azure 内のアプリケーション データが含まれます。
ここで従うことができる特定のベスト プラクティスまたは既存の暗号化モデルがあるかどうかを確認したいと思います。
トランスポート暗号化のために「無料」で入手できる 2 つの基本的なこと:
Microsoft は、http または https を介したストレージ アクセスを提供します。当然、https を選択する必要があります。これにより、Azure テーブルや BLOB 間のトランスポート層が保護されます。
SQL Azure DB は、接続の暗号化もサポートしています (.NET の SQLConnection オブジェクトを使用)。これにより、API/アプリと SQL Azure データベース間の通信が暗号化されます。SQL Azure データベースには IP フィルタリングが含まれているため、開発ボックスへのアクセスと内部 Azure データ センターのみへのアクセスをロックダウンできます。
Azure でのデータの永続化のためにコンテンツの暗号化を自分で行う必要があります (これは変更される可能性があり、MS がデータを内部的に暗号化する場合でも、暗号化されていないと想定する必要があります)。
SQL Azure DB は、TDE (転送データ暗号化) も SQL 暗号化のより高度な機能もサポートしていません。それを行う場合は、VM (Azure IaaS) で専用の SQL Server を実行して、自分で機能を構成する必要があります。理論的には、API レイヤーですべてを暗号化 (暗号化/復号化) できますが、それは非常に遅くなり、インデックス作成などの SQL DB 固有の機能を利用できません。
キーと値のペアを介してデータにアクセスできる場合、コンテンツの暗号化には Azure Table Storage が適しています。何千もの行ではなく、単一のキーに基づいて単一の「値」または「列のセット」のみを実行するため、コンテンツを自分で暗号化でき、より管理しやすくなります。ブロブ ストレージについても同様です。
Web ロールにインストールされたドメイン証明書を使用して、Azure 構成設定とその他のコンテンツを暗号化/復号化します。ブログに完全な例を投稿しました:エンタープライズ展開のための Azure ServiceConfiguration 値のセキュリティ保護。