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

AWS SDK를 사용하여 Amazon S3에서 AWS Key Management Service 지정

AWS SDK를 사용할 때 Amazon S3가 AWS Key Management Service(AWS KMS) 관리형 암호화 키를 사용하도록 요청할 수 있습니다. 이 단원에서는 Java 및 .NET용 AWS SDK를 사용한 예제를 제공합니다. 다른 SDK에 대한 자세한 내용은 Sample Code and Libraries 단원을 참조하십시오.

Java용 AWS SDK

이 단원에서는 Java용 AWS SDK를 사용하는 다양한 Amazon S3 작업과 AWS KMS 관리형 암호화 키를 사용하는 방법을 설명합니다.

PUT 작업

Java용 AWS SDK를 사용하여 객체를 업로드할 때, 다음 요청에 표시된 바와 같이 SSEAwsKeyManagementParams 속성을 추가하여 Amazon S3가 AWS KMS 관리형 암호화 키를 사용하도록 요청할 수 있습니다.

Copy
PutObjectRequest putRequest = new PutObjectRequest(bucketName, keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams());

이 사례에서는 Amazon S3가 기본 마스터 키를 사용합니다(AWS KMS 관리형 키(SSE-KMS)를 사용하는 서버 측 암호화로 데이터 보호 참조). 자체 키를 생성하여 요청에서 지정할 수도 있습니다.

Copy
PutObjectRequest putRequest = new PutObjectRequest(bucketName, keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams(keyID));

키를 생성하는 방법에 대한 자세한 내용은 AWS Key Management Service Developer GuideProgramming the AWS KMS API 단원을 참조하십시오.

객체를 업로드하는 사용 가능한 코드 예제는 다음 주제를 참조하십시오. 코드 예제를 업데이트하고 이전 코드 조각에서 표시된 바와 같이 암호화 정보를 제공해야 합니다.

Copy 작업

객체를 복사할 때 동일한 요청 속성(ServerSideEncryptionMethodServerSideEncryptionKeyManagementServiceKeyId)을 추가하여 Amazon S3가 AWS KMS 관리형 암호화 키를 사용하도록 요청합니다. 객체 복사에 대한 자세한 내용은 객체 복사 단원을 참조하십시오.

미리 서명된 URL

AWS KMS 관리형 암호화 키를 사용하여 암호화된 객체에 대해 미리 서명된 URL을 생성하려면 서명 버전 4를 명시적으로 지정해야 합니다.

Copy
ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setSignerOverride("AWSS3V4SignerType"); AmazonS3Client s3client = new AmazonS3Client( new ProfileCredentialsProvider(), clientConfiguration); ...

코드에 대한 예는 AWS SDK for Java를 사용하여 미리 서명된 객체 URL 생성 단원을 참조하십시오.

.NET용 AWS SDK

이 단원에서는 .NET용 AWS SDK를 사용하는 다양한 Amazon S3 작업과 AWS KMS 관리형 암호화 키를 사용하는 방법을 설명합니다.

PUT 작업

.NET용 AWS SDK를 사용하여 객체를 업로드할 때, 다음 요청에 표시된 바와 같이 ServerSideEncryptionMethod 속성을 추가하여 Amazon S3가 AWS KMS 관리형 암호화 키를 사용하도록 요청할 수 있습니다.

Copy
PutObjectRequest putRequest = new PutObjectRequest { BucketName = bucketName, Key = keyName, // other properties. ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS };

이 사례에서는 Amazon S3가 기본 마스터 키를 사용합니다(AWS KMS 관리형 키(SSE-KMS)를 사용하는 서버 측 암호화로 데이터 보호 참조). 자체 키를 생성하여 요청에서 지정할 수도 있습니다.

Copy
PutObjectRequest putRequest1 = new PutObjectRequest { BucketName = bucketName, Key = keyName, // other properties. ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS, ServerSideEncryptionKeyManagementServiceKeyId = keyId };

키를 생성하는 방법에 대한 자세한 내용은 AWS Key Management Service Developer GuideProgramming the AWS KMS API 단원을 참조하십시오.

객체를 업로드하는 사용 가능한 코드 예제는 다음 주제를 참조하십시오. 코드 예제를 업데이트하고 이전 코드 조각에서 표시된 바와 같이 암호화 정보를 제공해야 합니다.

Copy 작업

객체를 복사할 때 동일한 요청 속성(ServerSideEncryptionMethodServerSideEncryptionKeyManagementServiceKeyId)을 추가하여 Amazon S3가 AWS KMS 관리형 암호화 키를 사용하도록 요청합니다. 객체 복사에 대한 자세한 내용은 객체 복사 단원을 참조하십시오.

미리 서명된 URL

AWS KMS 관리형 암호화 키를 사용하여 암호화된 객체에 대해 미리 서명된 URL을 생성하려면 서명 버전 4를 명시적으로 지정해야 합니다.

Copy
AWSConfigs.S3Config.UseSignatureVersion4 = true;

코드에 대한 예는 .NET용 AWS SDK를 사용하여 미리 서명된 객체 URL 생성 단원을 참조하십시오.

이 페이지에서: