メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

AWS SDK for Ruby を使用したサーバー側の暗号化の指定

AWS SDK for Ruby を使用してオブジェクトをアップロードするときは、サーバー側の暗号化 (SSE) により保管時にオブジェクトを暗号化して保存することを指定できます。オブジェクトは、読み戻すときに自動的に復号されます。

次の AWS SDK for Ruby – バージョン 2 のサンプルは、Amazon S3 にアップロードするファイルを保管時に暗号化するよう指定する方法を示しています。

Copy
require 'aws-sdk' s3 = Aws::S3::Resource.new(region:'us-west-2') obj = s3.bucket('my-bucket').object('key') obj.upload_file('local/path/to/file', :server_side_encryption => 'AES256')

SSE なしでオブジェクトをアップロードする方法を示すサンプルについては、「AWS SDK for Ruby を使用したオブジェクトのアップロード」を参照してください。

使用された暗号化アルゴリズムの確認

次のコード例は、既存のオブジェクトの暗号化状態を判定する方法を示しています。

Copy
# Determine server-side encryption of an object. require 'aws-sdk' s3 = Aws::S3::Resource.new(region:'us-west-2') enc = obj = s3.bucket('bucket-name').object('key').server_side_encryption enc_state = (enc != nil) ? enc : "not set" puts "Encryption state is #{enc_state}."

Amazon S3 に保存されたオブジェクトにサーバー側の暗号化が使用されていない場合、メソッドは null を返します。

既存のオブジェクトのサーバー側暗号化の変更(コピーオペレーション)

既存のオブジェクトの暗号化状態を変更するには、オブジェクトのコピーを作成し、コピー元オブジェクトを削除します。Ruby API の S3Object クラスの #copy_from メソッドと #copy_to メソッドを使用して、オブジェクトをコピーできます。デフォルトでは、明示的にサーバー側の暗号化を要求しない限り、コピーメソッドは対象を暗号化しません。次の Ruby コード例に示すように、オプションハッシュ引数に server_side_encryption を指定することで、対象オブジェクトの暗号化を要求できます。コード例は、#copy_to メソッドの使い方を示しています。

Copy
require 'aws-sdk' s3 = Aws::S3::Resource.new(region:'us-west-2') bucket1 = s3.bucket('source-bucket-name') bucket2 = s3.bucket('target-bucket-name') obj1 = bucket1.object('key') obj2 = bucket2.object('key') obj1.copy_to(obj2, :server_side_encryption => 'AES256')

暗号化せずにオブジェクトをコピーする方法を示すサンプルについては、「AWS SDK for Ruby を使用したオブジェクトのコピー」を参照してください。