S3の事前署名付きURLで何ができる?メリットは?

 

前提知識

S3はデフォルトで全てのオブジェクトはプライベートでしか利用はできない仕様となっていて、

オブジェクト所有者だけがこれらのオブジェクトにアクセスする権限を持っています。

ただし、オブジェクト所有者は、オプションで、自分のセキュリティ資格情報を使用して事前署名されたURLを作成し、オブジェクトをダウンロードする時間制限付きの権限を付与することで、他のユーザーとオブジェクトを共有できます。

 

S3の事前署名付きURLとは?

事前署名付きURLとは、S3のオブジェクトに対して、URLを知っていれば誰でもダウンロードできる機能です。

 

事前署名付きURL の作成者が対象となるオブジェクトへのアクセス許可を持っている場合、事前署名付きURL を使用して、URLで識別されるオブジェクトにアクセスすることができます。

つまり、オブジェクトをアップロードするための事前署名付き URL を受け取った場合、オブジェクトをアップロードすることができるのは、事前署名付き URL の作成者がそのオブジェクトをアップロードするのに必要な権限を持っている場合のみです。

 

デフォルトでは、すべてのオブジェクトおよびバケットは公開されていない状態です。

事前署名付きURLでは、ユーザー(顧客)が特定のオブジェクトをバケットにアップロードできるようにする必要があります。

これはAWS セキュリティ認証情報、またはアクセス許可を持たせたくない場合に有用です。

事前署名付きURLで何ができる?メリットは?

署名付きURLを設定することでオブジェクトのリンク利用を署名を有しているユーザーに限定することができます。

 

ユースケース

サイト訪問者にパブリックドメインとなっている画像データを提供するアプリケーションを開発・運用していて、

画像データはS3に蓄積されており、ユーザーの要求に応じて一時的に表示させる仕組みにしたいと考えていて、

この画像のリンクを無断に利用されないように保護する場合など。

 

事前署名付き URL の作成

事前署名付き URL を作成するときは、セキュリティ認証情報を提供する必要があります。

次にバケット名、オブジェクトキー、HTTP メソッド (オブジェクトのアップロードの PUT)、

および有効期限の日時を指定する必要があります。

また、署名付きURL は、指定した期間のみ有効です。