메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

Ruby용 AWS SDK를 사용하여 서버 측 암호화 지정

Ruby용 AWS SDK를 사용하여 객체를 업로드하는 경우, 객체가 서버 측 암호화(SSE)를 통해 암호화된 상태로 저장되도록 지정할 수 있습니다. 다시 객체를 읽으면 객체가 자동으로 복호화됩니다.

다음 Ruby용 AWS SDK - 버전 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')

Ruby용 AWS SDK를 사용하여 객체 업로드에서 SSE를 사용하지 않고 객체를 업로드하는 방법에 대한 예제를 참조할 수 있습니다.

사용된 암호화 알고리즘 확인

다음 코드 예제는 기존 객체의 암호화 상태를 확인하는 방법을 보여줍니다.

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')

암호화하지 않고 객체를 복사하는 방법에 대한 예제는 Ruby용 AWS SDK를 사용하여 객체 복사를 참조하십시오.