期限付きURL今回の要件としては、URLを時限式でexpireさせる事で、URLを叩けばいくらでもアクセス出来るのを防ぐ事を目的としています。CloudFront事前準備CloudFrontのOriginをS3に向けてあり、S3とCloudFrontのURLどちらを叩いても同じ内容が表示されている状態にしてあります。7に標準で入ってる画像をアップロードしてあるので、アクセスしてみましょう。きのURLをEC2から発行し、CloudFrontを経由してS3からコンテンツを取得し配信する。Distributionパターンというやつらしいです。今はただアクセスするだけで表示されてしまうので、設定を変更し、署名付きのURLでないとアクセスが出来ないように、AWSコンソールから各設定の変更を行います。基本設定を変更します。動作設定を変更します。今回のキモとなる設定です。これを「Yes」にすると、新しい設定項目が出てきます。Accountsに変更するシーンってどんなのだろう?大規模で他社が絡む開発とか?何かしらの政治的な理由?うーむ・・・とりあえず、同一アカウントから署名付きURLを発行するので、Selfとして設定完了です。反映されるまで、少し時間がかかるようです。CloudFrontの表示を更新して、署名キーが無いため表示されない事を確認。CloudFrontの方はこれで設定完了です。S3S3の方はまだ見られる状態なので、いくらCloudFront経由のアクセスに制限がかけられても、S3に直でアクセスされたら普通に表示されてしまうためアウトです。開かれて、JSON形式の設定情報が表示されます。14行目以下が、CloudFrontの設定変更により自動で付け加えられた設定でしょう。上位優先でアクセスの許可が下りてしまい、まだ表示が可能のようですね。これで普通にアクセスするだけで表示する事は出来なくなりました。署名付きURLを作成するために、CloudFront用のキーペアを取得する必要があります。秘密鍵(pk-xxxx.pem)、公開鍵(rsa-xxxx.pem)共にダウンロードしておきましょう。公開鍵は別にダウンロードしなくてもいいのかな?以後登場しません。秘密鍵はEC2内のどこかに適当に配置しておきましょう。参考に開発を進めます。いっても、署名付きURLを作る、というための項目が既に用意されていますね。見て、下記の通り10行足らずで実装可能でした。すれば良いという感じでしょうか。key.phphttp://dxxxxxxxxxxxxh.cloudfront.net/Tulips.jpg?u=54b8b43a36d99&Expires=1421390966&Signature=Sr~Acz4PNzDrYjnys1xKsMCo-Q94jj3BkkzSyCqAR8p4P4qHfaJ9M3knlUk0l9WdnM2FFO5r2vqapLIbFqmwP8yUznXufPD15aCOdsf~aJS61YV4Y5DMVJaKfX1YBJJpohfXNYSZWGyNPDKFtEn3jWzgQvAPo283W41eh7DYxvD-s-XqBQp327ejcashvdJnAwWnSLVTAjvJViZafbJ-20yHpTq2nc-FFYxsQazkL47X7mQCIIvl8gFPBAoBma8RH~uP-GiPqBUdTFpX51AFCX1h2xOVFI5R9ZY-lISPTbw0E~EG-GlmpC~l0-fTGA677g4xTnNMiAhx51QyeD16sg__&Key-Pair-Id=AxxxxxxxxxxxxxxxxxxQなっがーいURLが出力されました。上記が署名&期限付きのURLとなります。アクセスしてみましょう。して、1分間の期限を設けていたので、1分待ってもう一度アクセスしてみましょう。うんうん、アクセス拒否のXMLが出力されました。期限付きURLはちゃんと機能していますね。余談CloudFrontの設定で、パラメータを無視してキャッシュを保存出来る機能ってあったような...?あれば、期限付きの毎回異なるURLを出力しながら、データの配信にはキャッシュを利用して負荷軽減が出来たりとかするのかな。これはこれで別で調べてみよう!元記事はこちらです。丈樹アイレット第一事業部のWebアプリ開発者。PHP、JavaScriptの案件がメイン。モノづくりは常に楽しみながらがモットー。面白いものを生み出して、管理までできるようになるのが目標。S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。cloudpack.。