

# 클라이언트측 암호화를 사용하여 데이터 보호
<a name="UsingClientSideEncryption"></a>

*클라이언트측 암호화는* 전송 및 저장 시 보안을 보장하기 위해 로컬에서 데이터를 암호화하는 작업입니다. Amazon S3에 전송하기 전에 객체를 암호화하려면 Amazon S3 암호화 클라이언트를 사용하십시오. 이 방식으로 객체를 암호화하면 AWS를 포함한 제3자에게 객체가 노출되지 않습니다. Amazon S3는 이미 암호화된 객체를 수신하며, Amazon S3는 객체를 암호화하거나 해독하는 역할을 하지 않습니다. Amazon S3 암호화 클라이언트와 [서버 측 암호화를](serv-side-encryption.md) 모두 사용하여 데이터를 암호화할 수 있습니다. 암호화된 객체를 Amazon S3에 전송할 때 Amazon S3는 해당 객체를 암호화된 것으로 인식하지 않고 일반적인 객체만 탐지합니다.

Amazon S3 암호화 클라이언트는 사용자와 Amazon S3 사이의 중개자 역할을 합니다. Amazon S3 암호화 클라이언트를 인스턴스화하고 나면 Amazon S3 `PutObject` 및 `GetObject` 요청의 일부로 객체가 자동으로 암호화되고 해독됩니다. 객체는 모두 고유한 데이터 키로 암호화됩니다. Amazon S3 암호화 클라이언트는 KMS 키를 래핑 키로 지정하더라도 버킷 키를 사용하거나 버킷 키와 상호 작용하지 않습니다.

*Amazon S3 암호화 클라이언트 개발자 안내서*는 Amazon S3 암호화 클라이언트 버전 3.0 이상을 중점적으로 다루고 있습니다. 자세한 내용은 **Amazon S3 암호화 클라이언트 개발자 안내서에서 [Amazon S3 암호화 클라이언트란 무엇인가요?](https://docs.aws.amazon.com//amazon-s3-encryption-client/latest/developerguide/what-is-s3-encryption-client.html)를 참조하십시오.

Amazon S3 Encryption 클라이언트의 이전 버전에 대한 자세한 내용은 해당 프로그래밍 언어의 AWS SDK 개발자 안내서를 참조하십시오.
+ [AWS SDK for Java](https://docs.aws.amazon.com//sdk-for-java/v1/developer-guide/examples-crypto.html)
+ [AWS SDK for .NET](https://docs.aws.amazon.com//sdk-for-net/v3/developer-guide/kms-keys-s3-encryption.html)
+ [AWS SDK for Go](https://docs.aws.amazon.com//sdk-for-go/v1/developer-guide/welcome.html)
+ [AWS SDK for PHP](https://docs.aws.amazon.com//sdk-for-php/v3/developer-guide/s3-encryption-client.html)
+ [AWS SDK for Ruby](https://docs.aws.amazon.com//sdk-for-ruby/v3/api/Aws/S3/Encryption.html)
+ [AWS SDK for C\$1\$1](https://docs.aws.amazon.com//sdk-for-cpp/v1/developer-guide/welcome.html)