はじめに
こんにちは。TIG DXチームの村瀬です。
目新しい機能ではなくずいぶん前から存在するS3の署名付きURLについて新発見したので記載してみようと思います。
便利な署名付きURLですがインターネット上で検索する限り、URLを発行するにはAWS CLIを利用する、もしくはSDKを利用して簡単なプログラミングをするかしかないと思ってました。利用する人がITエンジニアであればそれでも良いかと思いますが、しかしながら世の中にはプログラミングが苦手だったり、操作が容易であったり様々な理由でマネジメントコンソールで操作している方も多いと思います。
今回はマネジメントコンソールで操作している方のお役に立てればと思います。
S3 署名付きURLとは
S3のオブジェクトに対して権限によらずURLさえ知りえれば誰でもダウンロードできる機能です。
正確にはダウンロードとアップロードの2種類あるのですが、今回の話はダウンロードに限った話です。
方法
1. S3バケットを表示し、署名付きURLで公開したいファイルをクリックする
2. 開けるボタンをクリックする
3. ファイルの中身が表示される
4. 上記3で表示されたURLをダウンロードさせたい相手に教える
https://samples3bucketname.s3.ap-northeast-1.amazonaws.com/test.txt?response-content-disposition=inline&X-Amz-Security-Token=xxxxxxxxxxx&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20200403T012759Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Credential=xxxxxxxxxxx&X-Amz-Signature=xxxxxxxxxxx |
※S3バケット名、Token等はマスクしています。
なんとこれだけで終わりです。実にお手軽!
制限事項
上記URLに含まれている通りダウンロード可能な時間は300秒(5分)です。
また、アップロードには対応していません。
さいごに
開けるボタンで表示した場合にはてっきりログインした状況でしか表示されないと思い込んでいたのですが、実は署名付きURLで公開されたものを閲覧していたに過ぎませんでした。
制限時間が300秒(5分)と少ないのでメールでのコミュニケーションには不向きですが、リアルタイムにチャットツールでやりとりしている際に(きっとみんなチャットツール使ってますよね? )、わざわざ自分でダウンロードしてから相手に渡さなくて済むのはお手軽で良いかと思います。
上記の通り使いどころは少ないですがマネジメントコンソールから署名付きURLが作成できることが確認できました。
また、注意点としては便利の裏返しで意図せず(短時間かつ推測困難なURLですが)全公開されているのでセキュリティを気にされる場合には開けるボタンの取り扱いにはお気を付けください。