ブラウザから直接 S3 へのマルチパート アップロードを実行しています。つまり、バックエンドをバイパスしています。
私の JS コードはハンドシェイク要求を S3 に送信し (POST)、ファイルを 5MB のチャンクでアップロードし (それぞれに PUT)、最終的にファイルをファイナライズします (POST)。
それはうまくいきます。ご想像のとおり、S3 への各リクエスト (ハンドシェイク、パーツのアップロード、ファイナライズ) には署名が必要です。もちろん、JS で署名を生成することは問題外です。AWS 秘密鍵が公開されるからです。
/sign?method=HTTPMethod&path=URLToSign
これまでに行ったことは次のとおりです。S3 への各リクエストの前に、署名文字列を返す自分のバックエンド (へ) にリクエストを送信します。このようにして、すべての AWS 資格情報はバックエンドにとどまります。
私の質問は次のとおりです。これは安全ですか?