サーバサイド暗号化

本サービスではオブジェクトの暗号化機能を提供しています。
リクエストで指定された暗号化用の鍵(以後、暗号化キー)を用い、256ビットの高度暗号化規格(AES-256)を使用してオブジェクトを暗号化します。

 

 

暗号化アルゴリズムは現時点ではAES-256のみです。今後、変更、追加される可能性があります。

 

暗号化したオブジェクトを取得する際は、暗号化に用いた暗号化キーを指定する必要があります。

暗号化キーは本サービス内に保存されません。暗号化実施後に破棄します。暗号化キーはお客様が管理する必要があります。
暗号化キーが不明となった場合、オブジェクトの取得が出来なくなります。

暗号化したオブジェクトの暗号化キーをあとから変更することは出来ません。 PUT Object - copyを行うこと異なる暗号化キーで再度暗号化することが出来ます。

 

 

サーバサイド暗号化の特徴

サーバサイド暗号化の特徴は次の通りです。

  1. httpsで通信する必要があります
    httpで通信で本機能を利用した場合、そのリクエストはエラー(ステータスコード400)を応答します。
  2. PUT Object、PUT Object - copyで返却されるETagは暗号化前オブジェクトのETagと一致しません
    正しくオブジェクトがサービスに格納されたか確認が必要な場合は、リクエストにContent-MD5をセットしてください。
  3. 暗号化キーの管理は お客様に実施していただく必要があります

 

個々のオブジェクトと対応する暗号化キーの関連付けは、お客様にて管理いただく必要があります。
暗号化キーが不明となったオブジェクトは取得できなくなります。ご注意ください。
なお、前述の通り暗号化キーはサービス側で保存していません。 弊社側で暗号化を解除することはできません。

 

サーバサイド暗号化の使用方法

暗号化ヘッダ

サーバサイド暗号化を利用するためには、リクエストに以下のヘッダをセットする必要があります。


表. サーバサイド暗号化 ヘッダ一覧

名前説明
x-iijgio-server-side-encryption-customer-algorithmサーバサイド暗号化で使用するアルゴリズムを指定します。値は”AES256”である必要があります。
x-iijgio-server-side-encryption-customer-keyサーバサイド暗号化で使用する256ビット長の暗号化キーを指定します。値はBase64でエンコードしてセットします。暗号化キーの長さは Base64エンコード前で256ビット である必要があります。
x-iijgio-server-side-encryption-customer-key-MD5暗号化キーのMD5値を設定します。暗号化キーをMD5(128bit)でダイジェストし、base64エンコードした値をセットします。RFC1321のダイジェスト生成と同じ方法です。

 

暗号化ヘッダを指定可能なAPI

コピー処理( PUT Object (Copy), Upload Part (Copy))の際にコピー元のオブジェクトが暗号化されている場合、追加で以下のヘッダの指定が必要になります。


表. サーバサイド暗号化 コピー用ヘッダ一覧

名前説明
x-iijgio-copy-source-server-side-encryption-customer-algorithmサーバサイド暗号化で使用するアルゴリズムを指定します。値は”AES256”である必要があります。
x-iijgio-copy-source-server-side-encryption-customer-keyコピー元オブジェクトの暗号化キー を指定します。暗号化キーの長さは256ビットである必要があります。値はBase64でエンコードしてセットします。
x-iijgio-copy-source-server-side-encryption-customer-key-MD5コピー元オブジェクトの暗号化キーのMD5値を設定します。暗号化キーをMD5(128bit)でダイジェストしbase64エンコードした値をセットします。RFC1321のダイジェスト生成と同じ方法です。