フロントエンド(SPA)からユーザーが直接S3に動画ファイルをアップロードする機能を実装します。要件は以下の3つです。 ①AWS認証情報をブラウザに配布しない。 ②アップロード先のキーとContent-Typeを固定し、最大ファイルサイズを10MBに制限する。 ③署名は有効期限付きにする。 最も適切な実装はどれですか。
S3の署名付きPOST(createPresignedPost)はPOSTポリシーのConditionsでアップロードを細かく制約できます。キーのプレフィックスやContent-Type、そしてcontent-length-rangeによるファイルサイズの上下限を指定でき、有効期限も設定できます。サーバー側で生成しブラウザに返すため認証情報も配布しません。すべての要件を満たします。 選択肢BのPUT署名付きURLはキーやContent-Typeは固定できるが、content-length-rangeに相当するファイルサイズ制限を署名で強制できない。 選択肢CのIdentity Pool直接付与は認証情報(一時クレデンシャル)をブラウザに渡すことになり、サイズ・キー制限も難しい。 選択肢Dの公開書き込みは重大なセキュリティリスクで論外。