AWS S3 パブリックアクセス禁止のオブジェクトに署名して一時的にアクセス可能なURLを生成する

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

スポンサードリンク

S3のオブジェクトは署名を付与することで、署名が有効な期間内中はアクセス可能にすることができます。


署名の作成

以下の例ではPython boto3を利用して署名付URLを作成しています。

48 * 60 * 60 (48時間)内でオブジェクトの取得可能なURLを生成。

s3 = boto3.client('s3')
url = s3.generate_presigned_url(
  ClientMethod = 'get_object',
  Params = {'Bucket': 'yourBucketName', 'Key': 'targetFile'},
  ExpiresIn = 48 * 60 * 60,
  HttpMethod = 'GET'
)

生成された署名付URLでブラウザアクセスすると対象のオブジェクトがパブリックアクセス禁止の場合でも署名期限内であればオブジェクトを取得することが出来る。