[AWS] CloudShellで簡単にS3署名付きURLを発行する


CloudShell

マネジメントコンソールの上部から実行できる、Amazon Linux2ベースのシェルプロンプトです。
EC2インスタンスをわざわざたてなくても、ボタン一つで、マネジメントコンソールからAWS Cliを実行したり、簡単なLinuxコマンドを実行したり、あるいは1GBのスーペースがあるのでちょっとしたツールのインストールも可能だったりします。
リージョン内に10個のCloudShellを同時実行できて、料金も無料です。
AWS Cliをインストールしていない端末かの操作や、ちょっとしたことを試すだけなら、EC2インスタンスがなくてもできてしまうので、結構使い道はあります。

起動方法

マネジメントコンソールの上部にあるボタンをポチっと押してください。それだけです。

すると、下のようなモーダル画面が表示されます。今後表示したくない場合は、「DO not show again」をチェックして画面をCloseしてください。

少したつと、シェルが使えるようになります。

できること

右上の[Actions]を開くと、以下のようなことができることがわかります。

ファイルのアップロードやダウンロードもできます。
コマンドラインで、S3へのPUTや、CloudFormationのスタック作成などを確認したい場合などに使えますね。
さらに、その隣の歯車のアイコンからは、CloudShellの設定もできます。

フォントのサイズや、テーマカラー、あと複数行コマンド貼り付け時の確認の有無などがあります。

ではさっそく署名付きURLを発行してみます

アップロード

まずは、S3にファイルをアップロードします。この時、マネジメントコンソールからアップロードしてもよいですし、クライアントからAWS Cliを叩いてもOKです。
せっかくなんで、CloudShellにファイルアップロードしてCloudShellを叩いてみる、でももちろんOKです。

S3のURI確認

マネジメントコンソールで、アップロードしたファイルの画面をみてみましょう。
オブジェクト概要欄に「S3 URI」という欄があるので、これをコピーしておきます。

署名付きURLの発行

aws s3 presign [S3 URI] --expires-in 有効期間(秒)

すると、署名の付いたURLが表示されます。このURLでアクセスすると、認証なしでファイルにアクセスすることが可能となります。