経緯
?「非公開S3バケットのデータを期間限定で公開したい」
俺「aws-cli叩いてpresign発行したら?」
?「コマンド叩きたくないでござる」
俺「・・・あ!マネコンから開いたら5分限定で見れたはず!」
?「ネ申!」
俺「・・コマンド叩いたら良いのに」
という流れがあったので、S3署名付きURL発行の手抜き版です。
前提
- すでにS3バケットは非公開で作成済み
- S3触れるIAMアカウントでデータも保存されている
- そのアカウントの持ち主はコマンド嫌い
手順①:メニューから開く
S3のマネジメントコンソールにて当該ファイルを選んで、アクションメニューから「開く」を選択
手順②:見れた!
手順③:URL共有
この閲覧時のURLが実は5分限定で見れるという。。
(めちゃくちゃURL長い・・・汗)
aws cliで設定する場合
コンソールでコマンド叩いて設定するならaws cliなら以下のように叩きます。
aws s3 presign --exipres-in 秒数 s3://バケット名/データ名
例) ウルトラマンのように3分間戦うなら!
aws s3 presign --expires-in 180 s3://handson-bucketname-origin/test.txt
↓
https://handson-bucketname-origin.s3.amazonaws.com/test.txt?AWSAccessKeyId=xxxxxxxxxx&Signature=xxxxxxxxxxxxxxxxxxx%3D&Expires=16080xxxxx
一部マスクしてます。
備考
AWS CloudShellが2020/12/16に発表されましたが、そこならaws cli入っているので環境準備も楽だと思います。
参考
AWS CLI コマンドリファレンス
【小ネタ】AWS CLIでS3のPre-Signed URLを生成できるようになっていました!