S3 と SimpleDB でビルド アーティファクトと対応するメタデータをそれぞれ管理するプロジェクトに取り組んでいます。
S3 バケットにアップロードされたビルド アーティファクトを暗号化するためのさまざまな戦略についてフィードバックをお願いします。
保存する前にファイルを対称的に暗号化します。
- ファイルからシークレットを読み取ります。
- このシークレットをキーとして、S3 に保存するファイルを直接 AES256 暗号化します。
- 暗号化されたファイルを S3 にアップロードします。
- 復号化は、S3 からファイルをダウンロードし、同じキーで復号化することによって行われます。
ファイルをランダムな文字列で暗号化します。文字列を対称的に暗号化してファイルに保存します。
- ファイルからシークレットを読み取ります。
- ランダムな文字列を生成します。ランダムな文字列でファイルを暗号化します。
- ランダムな文字列を暗号化します。
- 暗号化されたランダム文字列を SimpleDB に保存します。復号化は、S3 からオブジェクトをダウンロードし、SimpleDB から文字列をダウンロードすることによって実行されます。シークレットを使用して暗号化された文字列を復号化し、暗号化されていない文字列を使用してファイルを復号化します。
SimpleDB に保存されている文字列を新しいシークレットで再暗号化することにより、暗号化キーをローテーションする機能を提供するため、私は後者に傾いています。
この問題に取り組み、各戦略の長所と短所についてコメントできる人はいますか?