サーバサイド暗号化
本サービスではオブジェクトの暗号化機能を提供しています。
リクエストで指定された暗号化用の鍵(以後、暗号化キー)を用い、256ビットの高度暗号化規格(AES-256)を使用してオブジェクトを暗号化します。
暗号化アルゴリズムは現時点ではAES-256のみです。今後、変更、追加される可能性があります。 |
暗号化したオブジェクトを取得する際は、暗号化に用いた暗号化キーを指定する必要があります。
暗号化キーは本サービス内に保存されません。暗号化実施後に破棄します。暗号化キーはお客様が管理する必要があります。 暗号化キーが不明となった場合、オブジェクトの取得が出来なくなります。 |
暗号化したオブジェクトの暗号化キーをあとから変更することは出来ません。 PUT Object - copyを行うこと異なる暗号化キーで再度暗号化することが出来ます。 |
サーバサイド暗号化の特徴
サーバサイド暗号化の特徴は次の通りです。
- httpsで通信する必要がありますhttpで通信で本機能を利用した場合、そのリクエストはエラー(ステータスコード400)を応答します。
- PUT Object、PUT Object - copyで返却されるETagは暗号化前オブジェクトのETagと一致しません正しくオブジェクトがサービスに格納されたか確認が必要な場合は、リクエストにContent-MD5をセットしてください。
- 暗号化キーの管理は お客様に実施していただく必要があります
個々のオブジェクトと対応する暗号化キーの関連付けは、お客様にて管理いただく必要があります。 暗号化キーが不明となったオブジェクトは取得できなくなります。ご注意ください。 なお、前述の通り暗号化キーはサービス側で保存していません。 弊社側で暗号化を解除することはできません。 |
サーバサイド暗号化の使用方法
暗号化ヘッダ
サーバサイド暗号化を利用するためには、リクエストに以下のヘッダをセットする必要があります。
名前 | 説明 |
---|---|
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のダイジェスト生成と同じ方法です。 |