blog.bouzuya.net

2017-05-18 CloudFront の署名付き URL を避けた

S3 と同じ調子で CloudFront の署名付き URL を使おうと思ったのだけど、ルートアカウントでのキーペア作成や 90 日更新が要求されていたので使うのをやめた。

Amazon S3 では事前に指定したポリシーで署名付きの URL を発行できる。たとえば、一定期間だけその URL を知るユーザーに特定のキーへ特定サイズのファイルの書き込みを許可できる。要するに S3 に直接ファイルをアップロードしてもらうことができる。同様に一時的な参照も許可できる。

S3 で十分なことが多いのだけど、キャッシュもそうだし、独自ドメインでの https にしようとすると CloudFront 経由にする必要が出てくる。

CloudFront 経由にすると URL が変わってしまうので、試していないが、署名付きの URL はおそらくうまく動作しない。そこでより外側の CloudFront の段階で署名付き URL を発行したくなる……。

理由は知らないが、 CloudFront の署名付き URL は S3 のものとは異なり、ルートアカウントでのキーペアの作成が必要だ。一般的に AWS は権限を絞った IAM ユーザーで操作する。ルートアカウントで事故が起きると大惨事になる。可能な限り避けたい。

今回はもう妥協して、推測しづらいキーで S3 には保存し、不要なら削除する対応へと切り替えることにした。