AWS S3 署名付きURL

こんにちは。先日お仕事でS3の署名付きURLを使用しましたので内容をまとめておきたいと思います。

 

署名付きURLとは?

S3ではバケット単位やIAMユーザ単位でアクセス制御ができますが、署名付きURLは、有効期限内だけ使用できるURLになります。これによりバケットのポリシーは非公開のまま、中にあるファイルを一時的にユーザーに公開する、もしくはユーザーがファイルをアップロードするといったことができます。

 

プログラミング

S3でバケット作成し画像を配置します。今回はバケット名「test-signedurl」、ファイル「sample.jpg」で作成しました。

この段階でURLでアクセスしてみます。当然アクセス拒否されます。

 

Pythonのboto3を使用することで署名付きURLを作成するプログラムができます。

 

Lambdaで実行します。署名付きURLが作成されました。

これをブラウザのURLに貼り付けて移動すると表示されました。

上記のプログラムでは有効期限を600秒に設定しました。その時間を過ぎてアクセスすると有効期限切れのエラーとなります。

おわりに

今回はS3の署名付きURLを使用してGETでファイルを表示する実装を行いました。ユーザーにファイルをダウンロードさせる時などに有効な手段だと思います。

参考URL:

https://dev.classmethod.jp/cloud/aws/generate-pre-signed-url-for-s3-with-boto3/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です