画像CDNと署名付きURLの活用術

企業のデジタルコンテンツ管理において、「画像の無断使用が気になる」「社内限定コンテンツを安全に共有したい」などの課題を抱えていませんか。
この記事では、画像配信のセキュリティ対策として注目される「署名付きURL」を画像CDNと組み合わせる利点や、その活用方法について解説します。
また、画像CDN「ImageFlux」の特徴や導入事例を交えながら、効率的で安全な画像配信を実現する方法をご紹介します。
画像CDNの活用
現代のデジタルコンテンツは、年々リッチ化が進み、画像や動画の容量が大きくなる傾向があります。高解像度化やインタラクティブなコンテンツの普及により、私たちが日常的に利用するコンテンツの質は向上する一方で、読み込み速度の低下やデータ転送量の増加といった課題は避けられません。こうしたなか、画像の最適化をするために画像CDNの活用が、ユーザー体験の向上やコスト削減において欠かせない手段となっています。
画像CDNとは画像の最適化と画像の高速配信に特化したサービスです。画像CDNを利用することでWebサイトの読み込み速度が向上し、トラフィックを削減できます。Webサイトの容量の多くを占める画像を最適化することは、顧客体験の観点でとくに重要です。
さくらインターネットでは、ピクシブ株式会社と共同開発した画像CDN「ImageFlux」を提供しています。1枚のオリジナル画像をもとにURLを書き換えるだけで、デバイスにあわせた画像の動的リサイズやフォーマット変換など、さまざまな画像変換が可能です。
さくらインターネットが提供するクラウド型の画像変換・キャッシュ配信サービス「ImageFlux」
サービスの詳細を見る
署名付きURLとは

一方で、画像CDNの利便性に伴うセキュリティリスクも存在します。 たとえば、リサイズされた画像のURLに対し第三者がURLパラメータを不正に書き換えることで、元の高解像度の画像を取得される危険があります。これにより、オリジナル画像が盗用されるリスクが生じます。
こうしたリスクを回避するために導入されるのが署名付きURLです。
署名付きURLとは、URLに特別な署名パラメータを付与することで、アクセスを制限する仕組みです。この署名は暗号化された文字列で、正しい署名がないとコンテンツにアクセスできません。
署名付きURLは、利便性とセキュリティのバランスを保ちながら、安心して画像CDNを活用できる環境を提供します。
署名付きURLとウォーターマークを組み合わせたユースケース
近年、著作権の保護や改ざん・悪用の防止を実現する手段として「ウォーターマーク(透かし)」が注目されています。
企業の商品画像などにウォーターマークを入れる場合、ImageFluxのオーバーレイ機能を使えば、オリジナル画像にロゴを重ねて簡単に透かしを付与することができます。ウォーターマーク用として1枚ロゴ画像を用意しておけば、URLを生成するだけで簡単に画像にロゴを重ねることができるので、1枚1枚画像を加工する必要はありません。
さらに、署名付きURLを組み合わせることで、第三者によるURLの改ざんを防止できます。オリジナル画像の盗難を防ぎ、著作権保護を強化できます。
たとえば、集英社ではオーバーレイ機能を利用してロゴを画像に重ねることで、掲載画像の無断利用を防止し、著作権保護に成功しています。
ウォーターマークについては、以下のホワイトペーパーにてくわしく解説していますのでご参考ください。
ウォーターマークを用いたコンテンツ保護のリスクと対策

コンテンツの著作権の保護や改ざん・悪用の防止を実現する手段として「 ウォーターマーク 」が注目されています。
本資料では、 ウォーターマークやImageFluxを活用した事例についてわかりやすく解説しています。
ImageFluxにおける署名付きURLの実装

ImageFluxは、画像配信に特化したクラウドサービスとして、独自の署名付きURL技術を実装しており、「HMAC-SHA-256」という暗号化方式を採用しています。
署名の生成には、Base64エンコードを使用して安全なURLを作成します。特殊文字によるトラブルを回避しながら、高いセキュリティレベルを維持することが可能です。
署名付きURLの設定手順
ImageFluxで署名付きURLを設定する手順を、ImageFluxのドキュメント「URL署名」に沿って説明します。
1.オリジン設定で署名付きURLを有効化
- URL署名機能はオリジンごとに設定します。オリジン設定画面でEnable Signed URLのオプションにチェックをいれると、署名付きURL機能が有効化されます。
- この機能が有効なオリジンに対して署名パラメータを含まないリクエストを送ると、エラー(403 Forbidden)が返されます。

2.署名用の秘密鍵を設定
- 署名用の秘密鍵(Signing Secret)を設定します。この秘密鍵は、署名の生成に使用される情報なので、安全に保管しておきましょう。

3.署名パラメータを指定
- URL署名のパラメータは以下です。
Key | sig |
---|---|
Value Type | string |
Default | なし |
Description | シグネチャ |
- URL署名機能では「sig」パラメータにシグネチャを指定してリクエストを送ります。
- また、sig パラメータの代わりに、HTTPリクエストヘッダー X-ImageFlux-Signatureフィールドでシグネチャを指定することも可能です。詳細は開発者ドキュメントを参照ください。
設定例
たとえば、画像の幅を200ピクセルに変更する場合、元のURL「https://p1-47e91401.imageflux.jp/c/w=200/images/1.jpg」に対して署名を生成しましょう。
署名パラメータは、「sig=」というプレフィックスで追加され、最終的なURLは「https://p1-47e91401.imageflux.jp/c/sig=[生成された署名],w=200/images/1.jpg」という形式になります。
画像変換パラメータと sigパラメータは任意の順で指定できますが、ほかのパラメータの順序は署名計算時と同じにする必要があります。
設定例1
元のURL | https://p1-47e91401.imageflux.jp/c/w=200/images/1.jpg |
---|---|
Signing Secret | testsigningsecret |
シグネチャ | 1.tiKX5u2kw6wp9zDgl1tLiOIi8IsoRIBw8fVgVc0yrNg= |
URL | https://p1-47e91401.imageflux.jp/c/sig=1.tiKX5u2kw6wp9zDgl1tLiOIi8IsoRIBw8fVgVc0yrNg=,w=200/images/1.jpg |
設定例2
元のURL | https://p1-47e91401.imageflux.jp/images/1.jpg |
---|---|
Signing Secret | testsigningsecret |
シグネチャ | 1.-Yd8m-5pXPihiZdlDATcwkkgjzPIC9gFHmmZ3JMxwS0= |
URL | https://p1-47e91401.imageflux.jp/c/sig=1.-Yd8m-5pXPihiZdlDATcwkkgjzPIC9gFHmmZ3JMxwS0=/images/1.jpg |
ImageFluxの開発者向けドキュメントでは、PHP・Ruby・Goのサンプルコードもご紹介しています。
まとめ
画像CDNと署名付きURLを活用することで、デジタルコンテンツ配信を効率的に配信しつつ画像の盗難といったリスクも抑えられます。。ImageFluxのようなサービスを活用すれば、動的リサイズやウォーターマーク追加といった柔軟な画像処理が可能になり、画像に関連する運用業務のコストダウンも実現します。
とくに、大量の画像を取り扱うECサイトやメディアサイト、ユーザー投稿型サイトなどを運営しておりコンテンツ配信の効率化を目指す企業にとって、ImageFluxは最適な選択肢となるでしょう。
画像CDNの導入をご検討の方は、ぜひImageFluxの最大2ヶ月間の無料トライアルをお試しください。
ImageFluxチーム
さくらインターネットとピクシブで共同開発・提供している、クラウド画像変換サービス・ライブ配信エンジンサービス「ImageFlux」のチームです。