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

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

AWS SDK for Ruby を使用してオブジェクトをアップロードするときに、#write インスタンスメソッドのオプションハッシュ server_side_encryption を指定することで、保管するオブジェクトを暗号化するよう指定できます。オブジェクトは、読み戻すときに自動的に復号されます。

次の Ruby スクリプト例は、Amazon S3 にアップロードするファイルを保管時に暗号化するよう指定する方法を示しています。

Copy
# Upload a file and set server-side encryption. key_name = File.basename(file_name) s3.buckets[bucket_name].objects[key_name].write(:file => file_name, :server_side_encryption => :aes256)

オブジェクトのアップロード方法を示す動作例については、AWS SDK for Ruby を使用したオブジェクトのアップロード を参照してください。

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

保管中のオブジェクトデータに使用された暗号化アルゴリズムを確認するには、S3Object インスタンスの #server_side_encryption メソッドを使用します。次のコード例は、既存のオブジェクトの暗号化状態を判定する方法を示しています。

Copy
# Determine server-side encryption of an object. enc = s3.buckets[bucket_name].objects[key_name].server_side_encryption enc_state = (enc != nil) ? enc : "not set" puts "Encryption of #{key_name} is #{enc_state}."

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

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

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

Copy
s3 = AWS::S3.new # Upload a file and set server-side encryption. bucket1 = s3.buckets[source_bucket] bucket2 = s3.buckets[target_bucket] obj1 = bucket1.objects[source_key] obj2 = bucket2.objects[target_key] obj1.copy_to(obj2, :server_side_encryption => :aes256)

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