はじめに
AWS S3 で、AWS CLI を使って署名付きURL を生成してみる備忘録です。署名付きURL は AWS マネージメントコンソールでは生成できないので、AWS CLI や SDK 経由で生成が必要です。
署名付きURL を生成
S3 上にファイルが格納されている状態です。cloudfronttest-sugi01
という名前の Bucket に、test.html というオブジェクトがアップロードされています。
AWS CLI で見るとこんな感じです。
> aws s3 ls s3://cloudfronttest-sugi01
2021-01-04 07:57:18 117 test.html
AWS CLI で署名付きURLを生成します。expires-in
は、署名付きURLの有効期限を秒数で指定します。次のコマンドだと、60秒間のみアクセスできる指定方法です。
aws s3 presign s3://cloudfronttest-sugi01/test.html --expires-in 60
実行例
> aws s3 presign s3://cloudfronttest-sugi01/test.html --expires-in 60
https://cloudfronttest-sugi01.s3.ap-northeast-1.amazonaws.com/test.html?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAX3NQZCLY73NLWR7G%2F20210104%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20210104T130707Z&X-Amz-Expires=60&X-Amz-SignedHeaders=host&X-Amz-Signature=89b8f48a581dd84e6552378607a30052a99c790bf7075b021409a30a1304f54b
アクセスしてみると、HTMLファイルが表示されています (CloudFront はこの記事では関係ないので、無視してください)
60 秒後再度アクセスすると、有効期限が切れてアクセスできなくなります
参考URL