AWS S3 署名付きURLの生成

snow
2019-09-30
snow
2019-09-30

初めに

署名付きURLとは、一定時間内で、S3上のデータにできるためのURLを発行する機能です。
今回は、AWS CLI を使って発行する方法を説明させていただきます。

AWS CLI

  • 概要
```
aws s3 presign <S3Uri>[--expires-in <value>]
```
  • オプション
--expires-in (integer) 有効時間を指定します。
デフォルトは1時間です。

実例

AWS CLI 環境設定
```
# aws configure
AWS Access Key ID [None]: 
AWS Secret Access Key [None]: 
Default region name [None]: ap-northeast-1
Default output format [None]: json
```

署名付きURL生成
```
# aws s3 presign s3://labtest/test.txt
https://s3.ap-northeast-1.amazonaws.com/[packet-name]/index.html?AWSAccessKeyId=[ID]&Expires=[timestamp]&Signature=[Signature]
```

確認
```
# curl https://s3.ap-northeast-1.amazonaws.com/[packet-name]/index.html?AWSAccessKeyId=[ID]&Expires=[timestamp]&Signature=[Signature]
ファイル内容が表示されます
```

まとめ

この機能は
webサーバ経由せず、ファイルの保存・操作
IAMユーザ生成せず、社内ファイルストレージ
一時的なファイル公開
などのシーンで、役に立ちます。